# Private functions
# -----------------
+NO_NAME = "NoName"
+
def GetName(obj):
ior = salome.orb.object_to_string(obj)
sobj = salome.myStudy.FindObjectIOR(ior)
- attr = sobj.FindAttribute("AttributeName")[1]
- return attr.Value()
+ if sobj is None:
+ return NO_NAME
+ else:
+ attr = sobj.FindAttribute("AttributeName")[1]
+ return attr.Value()
def SetName(obj, name):
ior = salome.orb.object_to_string(obj)
name = GetName(piece)
else:
self.geom = geom
- name = geompy.SubShapeName(geom, piece)
- geompy.addToStudyInFather(piece, geom, name)
+ name = GetName(geom)
+ if name==NO_NAME:
+ name = geompy.SubShapeName(geom, piece)
+ geompy.addToStudyInFather(piece, geom, name)
self.subm = mesh.mesh.GetSubMesh(geom, hypo)
algo = smesh.CreateHypothesis(hypo, so)
hyp = self.Hypothesis("NumberOfSegments", [n])
else:
hyp = self.Hypothesis("NumberOfSegments", [n,s])
+ hyp.SetDistrType( 1 )
hyp.SetScaleFactor(s)
hyp.SetNumberOfSegments(n)
return hyp
"""
b = smesh.Compute(self.mesh, self.geom)
if salome.sg.hasDesktop():
+ smeshgui = salome.ImportComponentGUI("SMESH")
+ smeshgui.Init(salome.myStudyId)
+ smeshgui.SetMeshIcon( salome.ObjectToID( self.mesh ), b )
salome.sg.updateObjBrowser(1)
return b
Create a mesh group based on geometric object \a grp
and give a \a name, if this parameter is not defined
the name is the same as the geometric group name
- \param grp is a geometric group
+ \param grp is a geometric group, a vertex, an edge, a face or a solid
\param name is the name of the mesh group
"""
if name == "":
name = grp.GetName()
- tgeo = geompy.GetType(grp)
- if tgeo == geompy.ShapeType["VERTEX"]:
+
+ type = []
+ tgeo = str(grp.GetShapeType())
+ if tgeo == "VERTEX":
type = SMESH.NODE
- elif tgeo == geompy.ShapeType["EDGE"]:
+ elif tgeo == "EDGE":
type = SMESH.EDGE
- elif tgeo == geompy.ShapeType["FACE"]:
+ elif tgeo == "FACE":
type = SMESH.FACE
- elif tgeo == geompy.ShapeType["SOLID"]:
+ elif tgeo == "SOLID":
type = SMESH.VOLUME
- return self.mesh.CreateGroupFromGEOM(type, name, grp)
+ elif tgeo == "SHELL":
+ type = SMESH.VOLUME
+ elif tgeo == "COMPOUND":
+ tgeo = geompy.GetType(grp)
+ if tgeo == geompy.ShapeType["VERTEX"]:
+ type = SMESH.NODE
+ elif tgeo == geompy.ShapeType["EDGE"]:
+ type = SMESH.EDGE
+ elif tgeo == geompy.ShapeType["FACE"]:
+ type = SMESH.FACE
+ elif tgeo == geompy.ShapeType["SOLID"]:
+ type = SMESH.VOLUME
+
+ if type == []:
+ print "Mesh.Group: bad first argument: expected a group, a vertex, an edge, a face or a solid"
+ return 0
+ else:
+ return self.mesh.CreateGroupFromGEOM(type, name, grp)
def ExportToMED(self, f, version, opt=0):
"""