return aMeshes, aStatus
## Creates a Mesh object importing data from the given GMF file.
- # GMF files have .mesh extension for the ASCII format and .meshb for
- # the bynary format.
+ # GMF files must have .mesh extension for the ASCII format and .meshb for
+ # the binary format.
# @return [ an instance of Mesh class, SMESH.ComputeError ]
# @ingroup l2_impexp
def CreateMeshesFromGMF( self, theFileName ):
aMeasurements.UnRegister()
return result
+ ## Get sum of lengths of all 1D elements in the mesh object.
+ # @param elemId obj mesh, submesh or group
+ # @return sum of lengths of all 1D elements
+ # @ingroup l1_measurements
+ def GetLength(self, obj):
+ if isinstance(obj, Mesh): obj = obj.mesh
+ if isinstance(obj, Mesh_Algorithm): obj = obj.GetSubMesh()
+ aMeasurements = self.CreateMeasurements()
+ value = aMeasurements.Length(obj)
+ aMeasurements.UnRegister()
+ return value
+
+ ## Get sum of areas of all 2D elements in the mesh object.
+ # @param elemId obj mesh, submesh or group
+ # @return sum of areas of all 2D elements
+ # @ingroup l1_measurements
+ def GetArea(self, obj):
+ if isinstance(obj, Mesh): obj = obj.mesh
+ if isinstance(obj, Mesh_Algorithm): obj = obj.GetSubMesh()
+ aMeasurements = self.CreateMeasurements()
+ value = aMeasurements.Area(obj)
+ aMeasurements.UnRegister()
+ return value
+
+ ## Get sum of volumes of all 3D elements in the mesh object.
+ # @param elemId obj mesh, submesh or group
+ # @return sum of volumes of all 3D elements
+ # @ingroup l1_measurements
+ def GetVolume(self, obj):
+ if isinstance(obj, Mesh): obj = obj.mesh
+ if isinstance(obj, Mesh_Algorithm): obj = obj.GetSubMesh()
+ aMeasurements = self.CreateMeasurements()
+ value = aMeasurements.Volume(obj)
+ aMeasurements.UnRegister()
+ return value
+
+ pass # end of class smeshBuilder
+
import omniORB
#Registering the new proxy for SMESH_Gen
omniORB.registerObjref(SMESH._objref_SMESH_Gen._NP_RepositoryId, smeshBuilder)
else:
geo_name = "%s_%s to mesh"%(self.geom.GetShapeType(), id(self.geom)%100)
geompyD.addToStudy( self.geom, geo_name )
- self.mesh = self.smeshpyD.CreateMesh(self.geom)
+ self.SetMesh( self.smeshpyD.CreateMesh(self.geom) )
elif isinstance(obj, SMESH._objref_SMESH_Mesh):
self.SetMesh(obj)
else:
- self.mesh = self.smeshpyD.CreateEmptyMesh()
+ self.SetMesh( self.smeshpyD.CreateEmptyMesh() )
if name:
self.smeshpyD.SetName(self.mesh, name)
elif objHasName:
if isinstance( attr, algoCreator ):
#print "algoCreator ", attrName
setattr( self, attrName, attr.copy( self ))
+ pass
+ pass
+ pass
+ ## Destructor. Clean-up resources
+ def __del__(self):
+ if self.mesh:
+ #self.mesh.UnRegister()
+ pass
+ pass
+
## Initializes the Mesh object from an instance of SMESH_Mesh interface
# @param theMesh a SMESH_Mesh object
# @ingroup l2_construct
def SetMesh(self, theMesh):
- if self.mesh: self.mesh.UnRegister()
+ # do not call Register() as this prevents mesh servant deletion at closing study
+ #if self.mesh: self.mesh.UnRegister()
self.mesh = theMesh
if self.mesh:
- self.mesh.Register()
+ #self.mesh.Register()
self.geom = self.mesh.GetShapeToMesh()
+ pass
## Returns the mesh, that is an instance of SMESH_Mesh interface
# @return a SMESH_Mesh object
# the new mesh else only boundary elements will be copied into the new mesh
# @param toCopyExistingBondary - if true, not only new but also pre-existing
# boundary elements will be copied into the new mesh
- # @return tuple (mesh, group) where bondary elements were added to
+ # @return tuple (mesh, group) where boundary elements were added to
# @ingroup l2_modif_edit
def MakeBoundaryMesh(self, elements, dimension=SMESH.BND_2DFROM3D, groupName="", meshName="",
toCopyElements=False, toCopyExistingBondary=False):
val = 0
return val
- ## Get length of 1D element.
- # @param elemId mesh element ID
- # @return element's length value
+ ## Get length of 1D element or sum of lengths of all 1D mesh elements
+ # @param elemId mesh element ID (if not defined - sum of length of all 1D elements will be calculated)
+ # @return element's length value if \a elemId is specified or sum of all 1D mesh elements' lengths otherwise
# @ingroup l1_measurements
- def GetLength(self, elemId):
- return self._valueFromFunctor(SMESH.FT_Length, elemId)
+ def GetLength(self, elemId=None):
+ length = 0
+ if elemId == None:
+ length = self.smeshpyD.GetLength(self)
+ else:
+ length = self._valueFromFunctor(SMESH.FT_Length, elemId)
+ return length
- ## Get area of 2D element.
- # @param elemId mesh element ID
- # @return element's area value
+ ## Get area of 2D element or sum of areas of all 2D mesh elements
+ # @param elemId mesh element ID (if not defined - sum of areas of all 2D elements will be calculated)
+ # @return element's area value if \a elemId is specified or sum of all 2D mesh elements' areas otherwise
# @ingroup l1_measurements
- def GetArea(self, elemId):
- return self._valueFromFunctor(SMESH.FT_Area, elemId)
+ def GetArea(self, elemId=None):
+ area = 0
+ if elemId == None:
+ area = self.smeshpyD.GetArea(self)
+ else:
+ area = self._valueFromFunctor(SMESH.FT_Area, elemId)
+ return area
- ## Get volume of 3D element.
- # @param elemId mesh element ID
- # @return element's volume value
+ ## Get volume of 3D element or sum of volumes of all 3D mesh elements
+ # @param elemId mesh element ID (if not defined - sum of volumes of all 3D elements will be calculated)
+ # @return element's volume value if \a elemId is specified or sum of all 3D mesh elements' volumes otherwise
# @ingroup l1_measurements
- def GetVolume(self, elemId):
- return self._valueFromFunctor(SMESH.FT_Volume3D, elemId)
+ def GetVolume(self, elemId=None):
+ volume = 0
+ if elemId == None:
+ volume = self.smeshpyD.GetVolume(self)
+ else:
+ volume = self._valueFromFunctor(SMESH.FT_Volume3D, elemId)
+ return volume
## Get maximum element length.
# @param elemId mesh element ID