X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FSMESH_SWIG%2FsmeshBuilder.py;h=74dddbd464b7979f2b3a790ea9bfd9f3cafc1728;hb=d06e689ac77d94233be447aed68bdaa54992baf0;hp=9bcac48d7a8735274fd1068257f3031a33cb9f6f;hpb=6c4a9f32ed7b4416d79e0d0d293919609a8eb178;p=modules%2Fsmesh.git diff --git a/src/SMESH_SWIG/smeshBuilder.py b/src/SMESH_SWIG/smeshBuilder.py index 9bcac48d7..74dddbd46 100644 --- a/src/SMESH_SWIG/smeshBuilder.py +++ b/src/SMESH_SWIG/smeshBuilder.py @@ -1247,7 +1247,6 @@ class Mesh: for attrName in dir(self): attr = getattr( self, attrName ) if isinstance( attr, algoCreator ): - #print "algoCreator ", attrName setattr( self, attrName, attr.copy( self )) pass pass @@ -3554,7 +3553,7 @@ class Mesh: faces = self._getIdSourceList( faces, SMESH.FACE, unRegister ) if isinstance( Axis, geomBuilder.GEOM._objref_GEOM_Object): - Axis = self.smeshpyD.GetDirStruct( Axis ) + Axis = self.smeshpyD.GetAxisStruct( Axis ) if isinstance( Axis, list ): Axis = SMESH.AxisStruct( *Axis ) @@ -3581,24 +3580,9 @@ class Mesh: # @ingroup l2_modif_extrurev def RotationSweep(self, IDsOfElements, Axis, AngleInRadians, NbOfSteps, Tolerance, MakeGroups=False, TotalAngle=False): - unRegister = genObjUnRegister() - if IDsOfElements == []: - IDsOfElements = self.mesh - if IDsOfElements and \ - isinstance( IDsOfElements, list ) and \ - isinstance( IDsOfElements[0], int ): - IDsOfElements = self.GetIDSource( IDsOfElements, SMESH.ALL ) - unRegister.set( IDsOfElements ) - if isinstance( Axis, geomBuilder.GEOM._objref_GEOM_Object): - Axis = self.smeshpyD.GetAxisStruct(Axis) - AngleInRadians,AngleParameters,hasVars = ParseAngles(AngleInRadians) - NbOfSteps,Tolerance,Parameters,hasVars = ParseParameters(NbOfSteps,Tolerance) - Parameters = Axis.parameters + var_separator + AngleParameters + var_separator + Parameters - self.mesh.SetParameters(Parameters) - if TotalAngle and NbOfSteps: - AngleInRadians /= NbOfSteps - return self.editor.RotationSweepObjects([],[IDsOfElements],[IDsOfElements], Axis, - AngleInRadians, NbOfSteps, Tolerance, MakeGroups) + return self.RotationSweepObjects([], IDsOfElements, IDsOfElements, Axis, + AngleInRadians, NbOfSteps, Tolerance, + MakeGroups, TotalAngle) ## Generates new elements by rotation of the elements of object around the axis # @param theObject object which elements should be sweeped. @@ -3614,18 +3598,9 @@ class Mesh: # @ingroup l2_modif_extrurev def RotationSweepObject(self, theObject, Axis, AngleInRadians, NbOfSteps, Tolerance, MakeGroups=False, TotalAngle=False): - if isinstance( theObject, Mesh ): - theObject = theObject.GetMesh() - if isinstance( Axis, geomBuilder.GEOM._objref_GEOM_Object): - Axis = self.smeshpyD.GetAxisStruct(Axis) - AngleInRadians,AngleParameters,hasVars = ParseAngles(AngleInRadians) - NbOfSteps,Tolerance,Parameters,hasVars = ParseParameters(NbOfSteps,Tolerance) - Parameters = Axis.parameters + var_separator + AngleParameters + var_separator + Parameters - self.mesh.SetParameters(Parameters) - if TotalAngle and NbOfSteps: - AngleInRadians /= NbOfSteps - return self.editor.RotationSweepObjects([],[theObject],[theObject], Axis, - AngleInRadians, NbOfSteps, Tolerance ) + return self.RotationSweepObjects( [], theObject, theObject, Axis, + AngleInRadians, NbOfSteps, Tolerance, + MakeGroups, TotalAngle ) ## Generates new elements by rotation of the elements of object around the axis # @param theObject object which elements should be sweeped. @@ -3641,18 +3616,9 @@ class Mesh: # @ingroup l2_modif_extrurev def RotationSweepObject1D(self, theObject, Axis, AngleInRadians, NbOfSteps, Tolerance, MakeGroups=False, TotalAngle=False): - if isinstance( theObject, Mesh ): - theObject = theObject.GetMesh() - if isinstance( Axis, geomBuilder.GEOM._objref_GEOM_Object): - Axis = self.smeshpyD.GetAxisStruct(Axis) - AngleInRadians,AngleParameters,hasVars = ParseAngles(AngleInRadians) - NbOfSteps,Tolerance,Parameters,hasVars = ParseParameters(NbOfSteps,Tolerance) - Parameters = Axis.parameters + var_separator + AngleParameters + var_separator + Parameters - self.mesh.SetParameters(Parameters) - if TotalAngle and NbOfSteps: - AngleInRadians /= NbOfSteps - return self.editor.RotationSweepObjects([],[theObject],[], Axis, - AngleInRadians, NbOfSteps, Tolerance) + return self.RotationSweepObjects([],theObject,[], Axis, + AngleInRadians, NbOfSteps, Tolerance, + MakeGroups, TotalAngle) ## Generates new elements by rotation of the elements of object around the axis # @param theObject object which elements should be sweeped. @@ -3668,18 +3634,8 @@ class Mesh: # @ingroup l2_modif_extrurev def RotationSweepObject2D(self, theObject, Axis, AngleInRadians, NbOfSteps, Tolerance, MakeGroups=False, TotalAngle=False): - if isinstance( theObject, Mesh ): - theObject = theObject.GetMesh() - if isinstance( Axis, geomBuilder.GEOM._objref_GEOM_Object): - Axis = self.smeshpyD.GetAxisStruct(Axis) - AngleInRadians,AngleParameters,hasVars = ParseAngles(AngleInRadians) - NbOfSteps,Tolerance,Parameters,hasVars = ParseParameters(NbOfSteps,Tolerance) - Parameters = Axis.parameters + var_separator + AngleParameters + var_separator + Parameters - self.mesh.SetParameters(Parameters) - if TotalAngle and NbOfSteps: - AngleInRadians /= NbOfSteps - return self.editor.RotationSweepObjects([],[],[theObject], Axis, AngleInRadians, - NbOfSteps, Tolerance) + return self.RotationSweepObjects([],[],theObject, Axis, AngleInRadians, + NbOfSteps, Tolerance, MakeGroups, TotalAngle) ## Generates new elements by extrusion of the given elements and nodes # @param nodes - nodes to extrude: a list including ids, groups, sub-meshes or a mesh @@ -3707,7 +3663,8 @@ class Mesh: Parameters = StepVector.PS.parameters + var_separator + Parameters self.mesh.SetParameters(Parameters) - return self.editor.ExtrusionSweepObjects( nodes, edges, faces, StepVector, NbOfSteps, MakeGroups) + return self.editor.ExtrusionSweepObjects( nodes, edges, faces, + StepVector, NbOfSteps, MakeGroups) ## Generates new elements by extrusion of the elements with given ids @@ -3721,25 +3678,10 @@ class Mesh: # @return the list of created groups (SMESH_GroupBase) if MakeGroups=True, empty list otherwise # @ingroup l2_modif_extrurev def ExtrusionSweep(self, IDsOfElements, StepVector, NbOfSteps, MakeGroups=False, IsNodes = False): - if IDsOfElements == []: - IDsOfElements = self.mesh - unRegister = genObjUnRegister() - if IDsOfElements and \ - isinstance( IDsOfElements, list ) and \ - isinstance( IDsOfElements[0], int ): - IDsOfElements = self.GetIDSource( IDsOfElements, SMESH.ALL ) - unRegister.set( IDsOfElements ) - if isinstance( StepVector, geomBuilder.GEOM._objref_GEOM_Object): - StepVector = self.smeshpyD.GetDirStruct(StepVector) - if isinstance( StepVector, list ): - StepVector = self.smeshpyD.MakeDirStruct(*StepVector) - NbOfSteps,Parameters,hasVars = ParseParameters(NbOfSteps) - Parameters = StepVector.PS.parameters + var_separator + Parameters - self.mesh.SetParameters(Parameters) n,e,f = [],[],[] - if IsNodes: n = [IDsOfElements] - else : e,f, = [IDsOfElements],[IDsOfElements] - return self.editor.ExtrusionSweepObjects(n,e,f, StepVector, NbOfSteps, MakeGroups) + if IsNodes: n = IDsOfElements + else : e,f, = IDsOfElements,IDsOfElements + return self.ExtrusionSweepObjects(n,e,f, StepVector, NbOfSteps, MakeGroups) ## Generates new elements by extrusion along the normal to a discretized surface or wire # @param Elements elements to extrude - a list including ids, groups, sub-meshes or a mesh @@ -3772,12 +3714,12 @@ class Mesh: if isinstance( Elements[0], int ): Elements = self.GetIDSource( Elements, SMESH.ALL ) unRegister.set( Elements ) - else: + if not isinstance( Elements, list ): Elements = [ Elements ] StepSize,NbOfSteps,Parameters,hasVars = ParseParameters(StepSize,NbOfSteps) self.mesh.SetParameters(Parameters) return self.editor.ExtrusionByNormal(Elements, StepSize, NbOfSteps, - UseInputElemsOnly, ByAverageNormal, MakeGroups, Dim) + ByAverageNormal, UseInputElemsOnly, MakeGroups, Dim) ## Generates new elements by extrusion of the elements which belong to the object # @param theObject the object which elements should be processed. @@ -3791,19 +3733,10 @@ class Mesh: # @return list of created groups (SMESH_GroupBase) if MakeGroups=True, empty list otherwise # @ingroup l2_modif_extrurev def ExtrusionSweepObject(self, theObject, StepVector, NbOfSteps, MakeGroups=False, IsNodes=False): - if isinstance( theObject, Mesh ): - theObject = theObject.GetMesh() - if isinstance( StepVector, geomBuilder.GEOM._objref_GEOM_Object): - StepVector = self.smeshpyD.GetDirStruct(StepVector) - if isinstance( StepVector, list ): - StepVector = self.smeshpyD.MakeDirStruct(*StepVector) - NbOfSteps,Parameters,hasVars = ParseParameters(NbOfSteps) - Parameters = StepVector.PS.parameters + var_separator + Parameters - self.mesh.SetParameters(Parameters) n,e,f = [],[],[] - if IsNodes: n = [theObject] - else : e,f, = [theObject],[theObject] - return self.editor.ExtrusionSweepObjects(n,e,f, StepVector, NbOfSteps, MakeGroups) + if IsNodes: n = theObject + else : e,f, = theObject,theObject + return self.ExtrusionSweepObjects(n,e,f, StepVector, NbOfSteps, MakeGroups) ## Generates new elements by extrusion of the elements which belong to the object # @param theObject object which elements should be processed. @@ -3816,17 +3749,7 @@ class Mesh: # @return list of created groups (SMESH_GroupBase) if MakeGroups=True, empty list otherwise # @ingroup l2_modif_extrurev def ExtrusionSweepObject1D(self, theObject, StepVector, NbOfSteps, MakeGroups=False): - if ( isinstance( theObject, Mesh )): - theObject = theObject.GetMesh() - if ( isinstance( StepVector, geomBuilder.GEOM._objref_GEOM_Object)): - StepVector = self.smeshpyD.GetDirStruct(StepVector) - if isinstance( StepVector, list ): - StepVector = self.smeshpyD.MakeDirStruct(*StepVector) - NbOfSteps,Parameters,hasVars = ParseParameters(NbOfSteps) - Parameters = StepVector.PS.parameters + var_separator + Parameters - self.mesh.SetParameters(Parameters) - return self.editor.ExtrusionSweepObjects([],[theObject],[], - StepVector, NbOfSteps, MakeGroups) + return self.ExtrusionSweepObjects([],theObject,[], StepVector, NbOfSteps, MakeGroups) ## Generates new elements by extrusion of the elements which belong to the object # @param theObject object which elements should be processed. @@ -3839,17 +3762,7 @@ class Mesh: # @return list of created groups (SMESH_GroupBase) if MakeGroups=True, empty list otherwise # @ingroup l2_modif_extrurev def ExtrusionSweepObject2D(self, theObject, StepVector, NbOfSteps, MakeGroups=False): - if ( isinstance( theObject, Mesh )): - theObject = theObject.GetMesh() - if ( isinstance( StepVector, geomBuilder.GEOM._objref_GEOM_Object)): - StepVector = self.smeshpyD.GetDirStruct(StepVector) - if isinstance( StepVector, list ): - StepVector = self.smeshpyD.MakeDirStruct(*StepVector) - NbOfSteps,Parameters,hasVars = ParseParameters(NbOfSteps) - Parameters = StepVector.PS.parameters + var_separator + Parameters - self.mesh.SetParameters(Parameters) - return self.editor.ExtrusionSweepObjects([],[],[theObject], - StepVector, NbOfSteps, MakeGroups) + return self.ExtrusionSweepObjects([],[],theObject, StepVector, NbOfSteps, MakeGroups) ## Generates new elements by extrusion of the elements with given ids # @param IDsOfElements is ids of elements @@ -3884,18 +3797,17 @@ class Mesh: # @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 LinearVariation forces the computation of rotation angles as linear + # variation of the given Angles along path steps # @param HasRefPoint allows using the reference point # @param RefPoint the point around which the shape is rotated (the mass center of the # shape by default). The User can specify any point as the Reference Point. # @param MakeGroups forces the generation of new groups from existing ones - # @param LinearVariation forces the computation of rotation angles as linear - # variation of the given Angles along path steps # @return list of created groups (SMESH_GroupBase) and SMESH::Extrusion_Error # @ingroup l2_modif_extrurev def ExtrusionAlongPathObjects(self, Nodes, Edges, Faces, PathMesh, PathShape=None, - NodeStart=1, HasAngles=False, Angles=[], - HasRefPoint=False, RefPoint=[0,0,0], - MakeGroups=False, LinearVariation=False): + NodeStart=1, HasAngles=False, Angles=[], LinearVariation=False, + HasRefPoint=False, RefPoint=[0,0,0], MakeGroups=False): unRegister = genObjUnRegister() Nodes = self._getIdSourceList( Nodes, SMESH.NODE, unRegister ) Edges = self._getIdSourceList( Edges, SMESH.EDGE, unRegister ) @@ -3938,41 +3850,15 @@ class Mesh: def ExtrusionAlongPathX(self, Base, Path, NodeStart, HasAngles, Angles, LinearVariation, HasRefPoint, RefPoint, MakeGroups, ElemType): - if isinstance( RefPoint, geomBuilder.GEOM._objref_GEOM_Object): - RefPoint = self.smeshpyD.GetPointStruct(RefPoint) - pass - elif isinstance( RefPoint, list ): - RefPoint = PointStruct(*RefPoint) - pass - Angles,AnglesParameters,hasVars = ParseAngles(Angles) - Parameters = AnglesParameters + var_separator + RefPoint.parameters - self.mesh.SetParameters(Parameters) - - if isinstance(Path, Mesh): Path = Path.GetMesh() - - unRegister = genObjUnRegister() - if isinstance(Base, list): - if Base: - Base = self.GetIDSource( Base, ElemType ) - unRegister.set( Base ) - else: - Base = self.mesh - else: - if isinstance(Base, Mesh): - Base = Base.GetMesh() - if isinstance(Base, SMESH._objref_SMESH_IDSource): - n,e,f = [],[],[] - if ElemType == SMESH.NODE: n = [Base] - if ElemType == SMESH.EDGE: e = [Base] - if ElemType == SMESH.FACE: f = [Base] - gr,er = self.editor.ExtrusionAlongPathObjects(n,e,f, Path, None, NodeStart, - HasAngles, Angles, LinearVariation, - HasRefPoint, RefPoint, MakeGroups) - if MakeGroups: return gr,er - return er - else: - raise RuntimeError, "Invalid Base for ExtrusionAlongPathX" - + n,e,f = [],[],[] + if ElemType == SMESH.NODE: n = Base + if ElemType == SMESH.EDGE: e = Base + if ElemType == SMESH.FACE: f = Base + gr,er = self.ExtrusionAlongPathObjects(n,e,f, Path, None, NodeStart, + HasAngles, Angles, LinearVariation, + HasRefPoint, RefPoint, MakeGroups) + if MakeGroups: return gr,er + return er ## Generates new elements by extrusion of the given elements # The path of extrusion must be a meshed edge. @@ -3995,21 +3881,11 @@ class Mesh: def ExtrusionAlongPath(self, IDsOfElements, PathMesh, PathShape, NodeStart, HasAngles, Angles, HasRefPoint, RefPoint, MakeGroups=False, LinearVariation=False): - if IDsOfElements == []: - IDsOfElements = self.GetElementsId() - if isinstance( RefPoint, geomBuilder.GEOM._objref_GEOM_Object): - RefPoint = self.smeshpyD.GetPointStruct(RefPoint) - pass - if isinstance( PathMesh, Mesh ): - PathMesh = PathMesh.GetMesh() - Angles,AnglesParameters,hasVars = ParseAngles(Angles) - Parameters = AnglesParameters + var_separator + RefPoint.parameters - self.mesh.SetParameters(Parameters) - n,e,f = [],[IDsOfElements],[IDsOfElements] - gr,er = self.editor.ExtrusionAlongPathObjects(n,e,f, PathMesh, PathShape, - NodeStart, HasAngles, Angles, - LinearVariation, - HasRefPoint, RefPoint, MakeGroups) + n,e,f = [],IDsOfElements,IDsOfElements + gr,er = self.ExtrusionAlongPathObjects(n,e,f, PathMesh, PathShape, + NodeStart, HasAngles, Angles, + LinearVariation, + HasRefPoint, RefPoint, MakeGroups) if MakeGroups: return gr,er return er @@ -4035,19 +3911,10 @@ class Mesh: 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, geomBuilder.GEOM._objref_GEOM_Object): - RefPoint = self.smeshpyD.GetPointStruct(RefPoint) - if isinstance( PathMesh, Mesh ): - PathMesh = PathMesh.GetMesh() - Angles,AnglesParameters,hasVars = ParseAngles(Angles) - Parameters = AnglesParameters + var_separator + RefPoint.parameters - self.mesh.SetParameters(Parameters) - n,e,f = [],[theObject],[theObject] - gr,er = self.editor.ExtrusionAlongPathObjects(n,e,f, PathMesh, PathShape, NodeStart, - HasAngles, Angles, LinearVariation, - HasRefPoint, RefPoint, MakeGroups) + n,e,f = [],theObject,theObject + gr,er = self.ExtrusionAlongPathObjects(n,e,f, PathMesh, PathShape, NodeStart, + HasAngles, Angles, LinearVariation, + HasRefPoint, RefPoint, MakeGroups) if MakeGroups: return gr,er return er @@ -4073,19 +3940,10 @@ class Mesh: def ExtrusionAlongPathObject1D(self, theObject, PathMesh, PathShape, NodeStart, HasAngles, Angles, HasRefPoint, RefPoint, MakeGroups=False, LinearVariation=False): - if isinstance( theObject, Mesh ): - theObject = theObject.GetMesh() - if isinstance( RefPoint, geomBuilder.GEOM._objref_GEOM_Object): - RefPoint = self.smeshpyD.GetPointStruct(RefPoint) - if isinstance( PathMesh, Mesh ): - PathMesh = PathMesh.GetMesh() - Angles,AnglesParameters,hasVars = ParseAngles(Angles) - Parameters = AnglesParameters + var_separator + RefPoint.parameters - self.mesh.SetParameters(Parameters) - n,e,f = [],[theObject],[] - gr,er = self.editor.ExtrusionAlongPathObjects(n,e,f, PathMesh, PathShape, NodeStart, - HasAngles, Angles, LinearVariation, - HasRefPoint, RefPoint, MakeGroups) + n,e,f = [],theObject,[] + gr,er = self.ExtrusionAlongPathObjects(n,e,f, PathMesh, PathShape, NodeStart, + HasAngles, Angles, LinearVariation, + HasRefPoint, RefPoint, MakeGroups) if MakeGroups: return gr,er return er @@ -4111,19 +3969,10 @@ class Mesh: def ExtrusionAlongPathObject2D(self, theObject, PathMesh, PathShape, NodeStart, HasAngles, Angles, HasRefPoint, RefPoint, MakeGroups=False, LinearVariation=False): - if ( isinstance( theObject, Mesh )): - theObject = theObject.GetMesh() - if ( isinstance( RefPoint, geomBuilder.GEOM._objref_GEOM_Object)): - RefPoint = self.smeshpyD.GetPointStruct(RefPoint) - if ( isinstance( PathMesh, Mesh )): - PathMesh = PathMesh.GetMesh() - Angles,AnglesParameters,hasVars = ParseAngles(Angles) - Parameters = AnglesParameters + var_separator + RefPoint.parameters - self.mesh.SetParameters(Parameters) - n,e,f = [],[],[theObject] - gr,er = self.editor.ExtrusionAlongPathObjects(n,e,f, PathMesh, PathShape, NodeStart, - HasAngles, Angles, LinearVariation, - HasRefPoint, RefPoint, MakeGroups) + n,e,f = [],[],theObject + gr,er = self.ExtrusionAlongPathObjects(n,e,f, PathMesh, PathShape, NodeStart, + HasAngles, Angles, LinearVariation, + HasRefPoint, RefPoint, MakeGroups) if MakeGroups: return gr,er return er @@ -4761,9 +4610,14 @@ class Mesh: self.functors[ funcType._v ] = fn return fn - def _valueFromFunctor(self, funcType, elemId): + ## Returns value of a functor for a given element + # @param funcType an item of SMESH.FunctorType enum + # @param elemId element or node ID + # @param isElem @a elemId is ID of element or node + # @return the functor value or zero in case of invalid arguments + def FunctorValue(self, funcType, elemId, isElem=True): fn = self._getFunctor( funcType ) - if fn.GetElementType() == self.GetElementType(elemId, True): + if fn.GetElementType() == self.GetElementType(elemId, isElem): val = fn.GetValue(elemId) else: val = 0 @@ -4778,7 +4632,7 @@ class Mesh: if elemId == None: length = self.smeshpyD.GetLength(self) else: - length = self._valueFromFunctor(SMESH.FT_Length, elemId) + length = self.FunctorValue(SMESH.FT_Length, elemId) return length ## Get area of 2D element or sum of areas of all 2D mesh elements @@ -4790,7 +4644,7 @@ class Mesh: if elemId == None: area = self.smeshpyD.GetArea(self) else: - area = self._valueFromFunctor(SMESH.FT_Area, elemId) + area = self.FunctorValue(SMESH.FT_Area, elemId) return area ## Get volume of 3D element or sum of volumes of all 3D mesh elements @@ -4802,7 +4656,7 @@ class Mesh: if elemId == None: volume = self.smeshpyD.GetVolume(self) else: - volume = self._valueFromFunctor(SMESH.FT_Volume3D, elemId) + volume = self.FunctorValue(SMESH.FT_Volume3D, elemId) return volume ## Get maximum element length. @@ -4814,7 +4668,7 @@ class Mesh: ftype = SMESH.FT_MaxElementLength3D else: ftype = SMESH.FT_MaxElementLength2D - return self._valueFromFunctor(ftype, elemId) + return self.FunctorValue(ftype, elemId) ## Get aspect ratio of 2D or 3D element. # @param elemId mesh element ID @@ -4825,35 +4679,35 @@ class Mesh: ftype = SMESH.FT_AspectRatio3D else: ftype = SMESH.FT_AspectRatio - return self._valueFromFunctor(ftype, elemId) + return self.FunctorValue(ftype, elemId) ## Get warping angle of 2D element. # @param elemId mesh element ID # @return element's warping angle value # @ingroup l1_measurements def GetWarping(self, elemId): - return self._valueFromFunctor(SMESH.FT_Warping, elemId) + return self.FunctorValue(SMESH.FT_Warping, elemId) ## Get minimum angle of 2D element. # @param elemId mesh element ID # @return element's minimum angle value # @ingroup l1_measurements def GetMinimumAngle(self, elemId): - return self._valueFromFunctor(SMESH.FT_MinimumAngle, elemId) + return self.FunctorValue(SMESH.FT_MinimumAngle, elemId) ## Get taper of 2D element. # @param elemId mesh element ID # @return element's taper value # @ingroup l1_measurements def GetTaper(self, elemId): - return self._valueFromFunctor(SMESH.FT_Taper, elemId) + return self.FunctorValue(SMESH.FT_Taper, elemId) ## Get skew of 2D element. # @param elemId mesh element ID # @return element's skew value # @ingroup l1_measurements def GetSkew(self, elemId): - return self._valueFromFunctor(SMESH.FT_Skew, elemId) + return self.FunctorValue(SMESH.FT_Skew, elemId) ## Return minimal and maximal value of a given functor. # @param funType a functor type, an item of SMESH.FunctorType enum @@ -4880,6 +4734,24 @@ class Mesh: pass # end of Mesh class +## class used to add to SMESH_MeshEditor methods removed from its CORBA API +# +class meshEditor(SMESH._objref_SMESH_MeshEditor): + def __init__(self): + SMESH._objref_SMESH_MeshEditor.__init__(self) + self.mesh = None + def __getattr__(self, name ): # method called if an attribute not found + if not self.mesh: # look for name() method in Mesh class + self.mesh = Mesh( None, None, SMESH._objref_SMESH_MeshEditor.GetMesh(self)) + if hasattr( self.mesh, name ): + return getattr( self.mesh, name ) + if name == "ExtrusionAlongPathObjX": + return getattr( self.mesh, "ExtrusionAlongPathX" ) + print name, "NOT FOUND" + return None + pass +omniORB.registerObjref(SMESH._objref_SMESH_MeshEditor._NP_RepositoryId, meshEditor) + ## Helper class for wrapping of SMESH.SMESH_Pattern CORBA class # class Pattern(SMESH._objref_SMESH_Pattern):