+ ## Generate new elements by extrusion of the given elements
+ # A path of extrusion must be a meshed edge.
+ # @param IDsOfElements is ids of elements
+ # @param PathMesh mesh containing a 1D sub-mesh on the edge, along which proceeds the extrusion
+ # @param PathShape is shape(edge); as the mesh can be complex, the edge is used to define the sub-mesh for the path
+ # @param NodeStart the first or the last node on the edge. It is used to define the direction of extrusion
+ # @param HasAngles allows the shape to be rotated around the path to get the resulting mesh in a helical fashion
+ # @param Angles list of angles
+ # @param HasRefPoint allows to use base point
+ # @param RefPoint point around which the shape is rotated(the mass center of the shape by default).
+ # User can specify any point as the Base Point and the shape will be rotated with respect to this point.
+ # @param MakeGroups to generate new groups from existing ones
+ # @param LinearVariation makes compute rotation angles as linear variation of given Angles along path steps
+ def ExtrusionAlongPath(self, IDsOfElements, PathMesh, PathShape, NodeStart,
+ HasAngles, Angles, HasRefPoint, RefPoint,
+ MakeGroups=False, LinearVariation=False):
+ if IDsOfElements == []:
+ IDsOfElements = self.GetElementsId()
+ if ( isinstance( RefPoint, geompyDC.GEOM._objref_GEOM_Object)):
+ RefPoint = self.smeshpyD.GetPointStruct(RefPoint)
+ pass
+ if MakeGroups:
+ return self.editor.ExtrusionAlongPathMakeGroups(IDsOfElements, PathMesh.GetMesh(),
+ PathShape, NodeStart, HasAngles,
+ Angles, HasRefPoint, RefPoint)
+ return self.editor.ExtrusionAlongPath(IDsOfElements, PathMesh.GetMesh(), PathShape,
+ NodeStart, HasAngles, Angles, HasRefPoint, RefPoint)
+
+ ## Generate new elements by extrusion of the elements belong to object
+ # A path of extrusion must be a meshed edge.
+ # @param IDsOfElements is ids of elements
+ # @param PathMesh mesh containing a 1D sub-mesh on the edge, along which proceeds the extrusion
+ # @param PathShape is shape(edge); as the mesh can be complex, the edge is used to define the sub-mesh for the path
+ # @param NodeStart the first or the last node on the edge. It is used to define the direction of extrusion
+ # @param HasAngles allows the shape to be rotated around the path to get the resulting mesh in a helical fashion
+ # @param Angles list of angles
+ # @param HasRefPoint allows to use base point
+ # @param RefPoint point around which the shape is rotated(the mass center of the shape by default).
+ # User can specify any point as the Base Point and the shape will be rotated with respect to this point.
+ # @param MakeGroups to generate new groups from existing ones
+ # @param LinearVariation makes compute rotation angles as linear variation of given Angles along path steps
+ def ExtrusionAlongPathObject(self, theObject, PathMesh, PathShape, NodeStart,
+ HasAngles, Angles, HasRefPoint, RefPoint,
+ MakeGroups=False, LinearVariation=False):
+ if ( isinstance( theObject, Mesh )):
+ theObject = theObject.GetMesh()
+ if ( isinstance( RefPoint, geompyDC.GEOM._objref_GEOM_Object)):
+ RefPoint = self.smeshpyD.GetPointStruct(RefPoint)
+ if MakeGroups:
+ return self.editor.ExtrusionAlongPathObjectMakeGroups(theObject, PathMesh.GetMesh(),
+ PathShape, NodeStart, HasAngles,
+ Angles, HasRefPoint, RefPoint)
+ return self.editor.ExtrusionAlongPathObject(theObject, PathMesh.GetMesh(), PathShape,
+ NodeStart, HasAngles, Angles, HasRefPoint,
+ RefPoint)
+
+ ## Symmetrical copy of mesh elements
+ # @param IDsOfElements list of elements ids
+ # @param Mirror is AxisStruct or geom object(point, line, plane)
+ # @param theMirrorType is POINT, AXIS or PLANE
+ # If the Mirror is geom object this parameter is unnecessary
+ # @param Copy allows to copy element(Copy is 1) or to replace with its mirroring(Copy is 0)
+ # @param MakeGroups to generate new groups from existing ones (if Copy)
+ def Mirror(self, IDsOfElements, Mirror, theMirrorType, Copy=0, MakeGroups=False):
+ if IDsOfElements == []:
+ IDsOfElements = self.GetElementsId()
+ if ( isinstance( Mirror, geompyDC.GEOM._objref_GEOM_Object)):
+ Mirror = self.smeshpyD.GetAxisStruct(Mirror)
+ if Copy and MakeGroups:
+ return self.editor.MirrorMakeGroups(IDsOfElements, Mirror, theMirrorType)
+ self.editor.Mirror(IDsOfElements, Mirror, theMirrorType, Copy)
+ return []
+
+ ## Create a new mesh by symmetrical copy of mesh elements
+ # @param IDsOfElements list of elements ids
+ # @param Mirror is AxisStruct or geom object(point, line, plane)
+ # @param theMirrorType is POINT, AXIS or PLANE
+ # If the Mirror is geom object this parameter is unnecessary
+ # @param MakeGroups to generate new groups from existing ones
+ # @param NewMeshName is a name of new mesh to create
+ def MirrorMakeMesh(self, IDsOfElements, Mirror, theMirrorType, MakeGroups=0, NewMeshName=""):
+ if IDsOfElements == []:
+ IDsOfElements = self.GetElementsId()
+ if ( isinstance( Mirror, geompyDC.GEOM._objref_GEOM_Object)):
+ Mirror = self.smeshpyD.GetAxisStruct(Mirror)
+ mesh = self.editor.MirrorMakeMesh(IDsOfElements, Mirror, theMirrorType,
+ MakeGroups, NewMeshName)
+ return Mesh(self.smeshpyD,self.geompyD,mesh)