X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_SWIG%2FsmeshBuilder.py;h=2c7211828d54774216d8c8a6fbdb613a0d35b386;hp=fcb05ab6326e43a98a3027de6303fb2beaaa292f;hb=2283860a0ab840f0e47cf5df4f86b9ed8fbdc948;hpb=b24a2d1b7692bdb21cf037b026e0273ba547cef4 diff --git a/src/SMESH_SWIG/smeshBuilder.py b/src/SMESH_SWIG/smeshBuilder.py index fcb05ab63..2c7211828 100644 --- a/src/SMESH_SWIG/smeshBuilder.py +++ b/src/SMESH_SWIG/smeshBuilder.py @@ -1653,17 +1653,17 @@ class Mesh(metaclass = MeshMeta): if self.geom: self.geompyD = None try: - so = salome.ObjectToSObject( self.geom ) - comp = so.GetFatherComponent() - if comp.ComponentDataType() == "SHAPERSTUDY": - import shaperBuilder - self.geompyD = shaperBuilder.New() + if salome.sg.hasDesktop(): + so = salome.ObjectToSObject( self.geom ) + comp = so.GetFatherComponent() + if comp.ComponentDataType() == "SHAPERSTUDY": + import shaperBuilder + self.geompyD = shaperBuilder.New() except: pass if not self.geompyD: self.geompyD = self.geom.GetGen() pass - pass def GetMesh(self): """ @@ -2653,7 +2653,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] )