X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_SWIG%2FsmeshBuilder.py;h=6cf59af32446d9313fbb24532da89aaf26fd6d8b;hp=dfb2248c9c1fd0b1def1b7f38cb7ae83b19edbdb;hb=1dd2f82c6d43d470c088288248edea674d583eec;hpb=24fe0efaab9725fa5e51ec24bb653ec526df5445 diff --git a/src/SMESH_SWIG/smeshBuilder.py b/src/SMESH_SWIG/smeshBuilder.py index dfb2248c9..6cf59af32 100644 --- a/src/SMESH_SWIG/smeshBuilder.py +++ b/src/SMESH_SWIG/smeshBuilder.py @@ -235,7 +235,7 @@ def TreatHypoStatus(status, hypName, geomName, isAlgo, mesh): elif status == HYP_BAD_SUBSHAPE : reason = "the shape is neither the main one, nor its sub-shape, nor a valid group" elif status == HYP_BAD_GEOMETRY: - reason = "geometry mismatches the expectation of the algorithm" + reason = "the algorithm is not applicable to this geometry" elif status == HYP_HIDDEN_ALGO: reason = "it is hidden by an algorithm of an upper dimension, which generates elements of all dimensions" elif status == HYP_HIDING_ALGO: @@ -929,7 +929,7 @@ class smeshBuilder(object, SMESH._objref_SMESH_Gen): ## Creates a numerical functor by its type # @param theCriterion functor type - an item of SMESH.FunctorType enumeration. # Type SMESH.FunctorType._items in the Python Console to see all items. - # Note that not all items corresponds to numerical functors. + # Note that not all items correspond to numerical functors. # @return SMESH_NumericalFunctor # @ingroup l1_controls def GetFunctor(self,theCriterion): @@ -1591,13 +1591,13 @@ class Mesh: return groups ## Return sub-mesh objects list in meshing order - # @return list of list of submesh objects + # @return list of list of sub-meshes # @ingroup l2_construct def GetMeshOrder(self): return self.mesh.GetMeshOrder() ## Set order in which concurrent sub-meshes sould be meshed - # @param list of sub-meshes + # @param submeshes list of sub-meshes # @ingroup l2_construct def SetMeshOrder(self, submeshes): return self.mesh.SetMeshOrder(submeshes) @@ -3172,9 +3172,9 @@ class Mesh: ## Fuses the neighbouring triangles into quadrangles. # @param IDsOfElements The triangles to be fused. # @param theCriterion a numerical functor, in terms of enum SMESH.FunctorType, used to - # choose a neighbour to fuse with. + # applied to possible quadrangles to choose a neighbour to fuse with. # Type SMESH.FunctorType._items in the Python Console to see all items. - # Note that not all items corresponds to numerical functors. + # Note that not all items correspond to numerical functors. # @param MaxAngle is the maximum angle between element normals at which the fusion # is still performed; theMaxAngle is mesured in radians. # Also it could be a name of variable which defines angle in degrees. @@ -3190,10 +3190,10 @@ class Mesh: ## Fuses the neighbouring triangles of the object into quadrangles # @param theObject is mesh, submesh or group - # @param theCriterion is a numerical functor, in terms of enum SMESH.FunctorType, used to - # choose a neighbour to fuse with. + # @param theCriterion is a numerical functor, in terms of enum SMESH.FunctorType, + # applied to possible quadrangles to choose a neighbour to fuse with. # Type SMESH.FunctorType._items in the Python Console to see all items. - # Note that not all items corresponds to numerical functors. + # Note that not all items correspond to numerical functors. # @param MaxAngle a max angle between element normals at which the fusion # is still performed; theMaxAngle is mesured in radians. # @return TRUE in case of success, FALSE otherwise. @@ -3208,11 +3208,11 @@ class Mesh: ## Splits quadrangles into triangles. # @param IDsOfElements the faces to be splitted. - # @param theCriterion is a numerical functor, in terms of enum SMESH.FunctorType, used to + # @param theCriterion is a numerical functor, in terms of enum SMESH.FunctorType, used to # choose a diagonal for splitting. If @a theCriterion is None, which is a default # value, then quadrangles will be split by the smallest diagonal. # Type SMESH.FunctorType._items in the Python Console to see all items. - # Note that not all items corresponds to numerical functors. + # Note that not all items correspond to numerical functors. # @return TRUE in case of success, FALSE otherwise. # @ingroup l2_modif_cutquadr def QuadToTri (self, IDsOfElements, theCriterion = None): @@ -3230,7 +3230,7 @@ class Mesh: # choose a diagonal for splitting. If @a theCriterion is None, which is a default # value, then quadrangles will be split by the smallest diagonal. # Type SMESH.FunctorType._items in the Python Console to see all items. - # Note that not all items corresponds to numerical functors. + # Note that not all items correspond to numerical functors. # @return TRUE in case of success, FALSE otherwise. # @ingroup l2_modif_cutquadr def QuadToTriObject (self, theObject, theCriterion = None): @@ -3283,7 +3283,7 @@ class Mesh: # @param theCriterion is a numerical functor, in terms of enum SMESH.FunctorType, used to # choose a diagonal for splitting. # Type SMESH.FunctorType._items in the Python Console to see all items. - # Note that not all items corresponds to numerical functors. + # Note that not all items correspond to numerical functors. # @return 1 if 1-3 diagonal is better, 2 if 2-4 # diagonal is better, 0 if error occurs. # @ingroup l2_modif_cutquadr @@ -3619,8 +3619,8 @@ class Mesh: ## Creates 2D mesh as skin on boundary faces of a 3D mesh # @return TRUE if operation has been completed successfully, FALSE otherwise # @ingroup l2_modif_edit - def Make2DMeshFrom3D(self): - return self.editor. Make2DMeshFrom3D() + def Make2DMeshFrom3D(self): + return self.editor.Make2DMeshFrom3D() ## Creates missing boundary elements # @param elements - elements whose boundary is to be checked: @@ -3839,7 +3839,7 @@ class Mesh: ## Generates new elements by extrusion of the elements with given ids - # @param IDsOfElements the list of elements ids for extrusion + # @param IDsOfElements the list of ids of elements or nodes for extrusion # @param StepVector vector or DirStruct or 3 vector components, defining # the direction and value of extrusion for one step (the total extrusion # length will be NbOfSteps * ||StepVector||) @@ -3855,8 +3855,8 @@ class Mesh: 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 - # Only faces can be extruded so far. Sub-mesh should be a sub-mesh on geom faces. + # @param Elements elements to extrude - a list including ids, groups, sub-meshes or a mesh. + # Only faces can be extruded so far. A sub-mesh should be a sub-mesh on geom faces. # @param StepSize length of one extrusion step (the total extrusion # length will be \a NbOfSteps * \a StepSize ). # @param NbOfSteps number of extrusion steps. @@ -3892,15 +3892,15 @@ class Mesh: return self.editor.ExtrusionByNormal(Elements, StepSize, NbOfSteps, 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. - # It can be a mesh, a sub mesh or a group. + ## Generates new elements by extrusion of the elements or nodes which belong to the object + # @param theObject the object whose elements or nodes should be processed. + # It can be a mesh, a sub-mesh or a group. # @param StepVector vector or DirStruct or 3 vector components, defining # the direction and value of extrusion for one step (the total extrusion # length will be NbOfSteps * ||StepVector||) # @param NbOfSteps the number of steps # @param MakeGroups forces the generation of new groups from existing ones - # @param IsNodes is True if elements to extrude are nodes + # @param IsNodes is True if elements to extrude are nodes # @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): @@ -3909,9 +3909,9 @@ class Mesh: 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. - # It can be a mesh, a sub mesh or a group. + ## Generates new elements by extrusion of edges which belong to the object + # @param theObject object whose 1D elements should be processed. + # It can be a mesh, a sub-mesh or a group. # @param StepVector vector or DirStruct or 3 vector components, defining # the direction and value of extrusion for one step (the total extrusion # length will be NbOfSteps * ||StepVector||) @@ -3922,9 +3922,9 @@ class Mesh: def ExtrusionSweepObject1D(self, theObject, StepVector, NbOfSteps, MakeGroups=False): 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. - # It can be a mesh, a sub mesh or a group. + ## Generates new elements by extrusion of faces which belong to the object + # @param theObject object whose 2D elements should be processed. + # It can be a mesh, a sub-mesh or a group. # @param StepVector vector or DirStruct or 3 vector components, defining # the direction and value of extrusion for one step (the total extrusion # length will be NbOfSteps * ||StepVector||) @@ -4000,7 +4000,7 @@ class Mesh: ## Generates new elements by extrusion of the given elements # The path of extrusion must be a meshed edge. - # @param Base mesh or group, or submesh, or list of ids of elements for extrusion + # @param Base mesh or group, or sub-mesh, or list of ids of elements for extrusion # @param Path - 1D mesh or 1D sub-mesh, along which proceeds the extrusion # @param NodeStart the start node from Path. Defines the direction of extrusion # @param HasAngles allows the shape to be rotated around the path @@ -4062,7 +4062,7 @@ class Mesh: ## Generates new elements by extrusion of the elements which belong to the object # The path of extrusion must be a meshed edge. - # @param theObject the object which elements should be processed. + # @param theObject the object whose elements should be processed. # It can be a mesh, a sub-mesh or a group. # @param PathMesh mesh containing a 1D sub-mesh on the edge, along which the extrusion proceeds # @param PathShape shape(edge) defines the sub-mesh for the path @@ -4089,10 +4089,10 @@ class Mesh: if MakeGroups: return gr,er return er - ## Generates new elements by extrusion of the elements which belong to the object + ## Generates new elements by extrusion of mesh segments which belong to the object # The path of extrusion must be a meshed edge. - # @param theObject the object which elements should be processed. - # It can be a mesh, a sub mesh or a group. + # @param theObject the object whose 1D elements should be processed. + # It can be a mesh, a sub-mesh or a group. # @param PathMesh mesh containing a 1D sub-mesh on the edge, along which the extrusion proceeds # @param PathShape shape(edge) defines the sub-mesh for the path # @param NodeStart the first or the last node on the edge. Defines the direction of extrusion @@ -4118,10 +4118,10 @@ class Mesh: if MakeGroups: return gr,er return er - ## Generates new elements by extrusion of the elements which belong to the object + ## Generates new elements by extrusion of faces which belong to the object # The path of extrusion must be a meshed edge. - # @param theObject the object which elements should be processed. - # It can be a mesh, a sub mesh or a group. + # @param theObject the object whose 2D elements should be processed. + # It can be a mesh, a sub-mesh or a group. # @param PathMesh mesh containing a 1D sub-mesh on the edge, along which the extrusion proceeds # @param PathShape shape(edge) defines the sub-mesh for the path # @param NodeStart the first or the last node on the edge. Defines the direction of extrusion @@ -4796,6 +4796,7 @@ class Mesh: ## Returns value of a functor for a given element # @param funcType an item of SMESH.FunctorType enum + # Type "SMESH.FunctorType._items" in the Python Console to see all items. # @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 @@ -4909,6 +4910,8 @@ class Mesh: fun = self._getFunctor( funType ) if fun: if meshPart: + if hasattr( meshPart, "SetMesh" ): + meshPart.SetMesh( self.mesh ) # set mesh to filter hist = fun.GetLocalHistogram( 1, False, meshPart ) else: hist = fun.GetHistogram( 1, False ) @@ -4918,7 +4921,25 @@ class Mesh: pass # end of Mesh class -## class used to add to SMESH_MeshEditor methods removed from its CORBA API + +## class used to compensate change of CORBA API of SMESH_Mesh for backward compatibility +# with old dump scripts which call SMESH_Mesh directly and not via smeshBuilder.Mesh +# +class meshProxy(SMESH._objref_SMESH_Mesh): + def __init__(self): + SMESH._objref_SMESH_Mesh.__init__(self) + def __deepcopy__(self, memo=None): + new = self.__class__() + return new + def CreateDimGroup(self,*args): # 2 args added: nbCommonNodes, underlyingOnly + if len( args ) == 3: + args += SMESH.ALL_NODES, True + return SMESH._objref_SMESH_Mesh.CreateDimGroup( self, *args ) + pass +omniORB.registerObjref(SMESH._objref_SMESH_Mesh._NP_RepositoryId, meshProxy) + +## class used to compensate change of CORBA API of SMESH_MeshEditor for backward compatibility +# with old dump scripts which call SMESH_MeshEditor directly and not via smeshBuilder.Mesh # class meshEditor(SMESH._objref_SMESH_MeshEditor): def __init__(self): @@ -4937,12 +4958,10 @@ class meshEditor(SMESH._objref_SMESH_MeshEditor): new = self.__class__() return new def FindCoincidentNodes(self,*args): # a 2nd arg added (SeparateCornerAndMediumNodes) - if len( args ) == 1: - return SMESH._objref_SMESH_MeshEditor.FindCoincidentNodes( self, args[0], False ) + if len( args ) == 1: args += False, return SMESH._objref_SMESH_MeshEditor.FindCoincidentNodes( self, *args ) def FindCoincidentNodesOnPart(self,*args): # a 3d arg added (SeparateCornerAndMediumNodes) - if len( args ) == 2: - args += False, + if len( args ) == 2: args += False, return SMESH._objref_SMESH_MeshEditor.FindCoincidentNodesOnPart( self, *args ) def MergeNodes(self,*args): # a 2nd arg added (NodesToKeep) if len( args ) == 1: