A quick-fix for the #19221 smeshBuilder Mesh.Group(group) does not work on SHAPERSTUDY groups

This commit is contained in:
mpv 2020-06-03 17:10:45 +03:00
parent 593c663f2d
commit b9ebe1deb0

View File

@ -2636,7 +2636,15 @@ class Mesh(metaclass = MeshMeta):
elif tgeo == "SOLID" or tgeo == "COMPSOLID":
typ = VOLUME
elif tgeo == "COMPOUND":
sub = self.geompyD.SubShapeAll( shape, self.geompyD.ShapeType["SHAPE"])
try:
sub = self.geompyD.SubShapeAll( shape, self.geompyD.ShapeType["SHAPE"])
except:
# try to get the SHAPERSTUDY engine directly, because GetGen does not work because of
# simplification of access in geomBuilder: omniORB.registerObjref
from SHAPERSTUDY_utils import getEngine
gen = getEngine()
if gen:
sub = gen.GetIShapesOperations().ExtractSubShapes(shape, self.geompyD.ShapeType["SHAPE"], False)
if not sub:
raise ValueError("_groupTypeFromShape(): empty geometric group or compound '%s'" % GetName(shape))
return self._groupTypeFromShape( sub[0] )