0020594: EDF 1166 SMESH: Creation of a group of elements from a compound in TUI

fix GroupOnGeom() for the case of a compound which is not a GEOM group.
This commit is contained in:
eap 2009-11-20 13:03:18 +00:00
parent f46a7af424
commit 235f0b122d

View File

@ -1393,19 +1393,37 @@ class Mesh:
elif tgeo == "SHELL": elif tgeo == "SHELL":
typ = VOLUME typ = VOLUME
elif tgeo == "COMPOUND": elif tgeo == "COMPOUND":
if len( self.geompyD.GetObjectIDs( grp )) == 0: try: # it raises on a compound of compounds
print "Mesh.Group: empty geometric group", GetName( grp ) if len( self.geompyD.GetObjectIDs( grp )) == 0:
return 0 print "Mesh.Group: empty geometric group", GetName( grp )
tgeo = self.geompyD.GetType(grp) return 0
if tgeo == geompyDC.ShapeType["VERTEX"]: pass
typ = NODE except:
elif tgeo == geompyDC.ShapeType["EDGE"]: pass
typ = EDGE if grp.GetType() == 37: # GEOMImpl_Types.hxx: #define GEOM_GROUP 37
elif tgeo == geompyDC.ShapeType["FACE"]: # group
typ = FACE tgeo = self.geompyD.GetType(grp)
elif tgeo == geompyDC.ShapeType["SOLID"]: if tgeo == geompyDC.ShapeType["VERTEX"]:
typ = VOLUME typ = NODE
elif tgeo == geompyDC.ShapeType["EDGE"]:
typ = EDGE
elif tgeo == geompyDC.ShapeType["FACE"]:
typ = FACE
elif tgeo == geompyDC.ShapeType["SOLID"]:
typ = VOLUME
pass
pass
else:
# just a compound
for elemType, shapeType in [[VOLUME,"SOLID"],[FACE,"FACE"],
[EDGE,"EDGE"],[NODE,"VERTEX"]]:
if self.geompyD.SubShapeAll(grp,geompyDC.ShapeType[shapeType]):
typ = elemType
break
pass
pass
pass
pass
if typ == None: if typ == None:
print "Mesh.Group: bad first argument: expected a group, a vertex, an edge, a face or a solid" print "Mesh.Group: bad first argument: expected a group, a vertex, an edge, a face or a solid"
return 0 return 0