Salome HOME
Merge V9_dev branch into master
[modules/smesh.git] / src / Tools / MacMesh / MacMesh / PublishGroups.py
index 7b768d84f78b32a0a72669cf0bc2647e140ddcf8..304724e4897dc6c779e07c72654f25419a6c3c8d 100644 (file)
@@ -53,27 +53,49 @@ def PublishGroups ():
 
         # Geometric groups definition
         TempGEOList = []
-        TempNames = []
-        for MacroObj in Config.ListObj :
-            if group in MacroObj.GroupNames :
-                Occurences = IndexMultiOcc(MacroObj.GroupNames, group)
-                for Occ in Occurences :
-                    TempGEOList += MacroObj.GetBorder(Occ)
-        GroupGEO.append(geompy.MakeCompound(TempGEOList))
-        geompy.addToStudyInFather(FinalCompound,GroupGEO[-1],'GR_'+group)
-
-        # Mesh groups definition
-        Criterion = smesh.GetCriterion(SMESH.EDGE, SMESH.FT_BelongToGeom,'=',GroupGEO[-1],Tolerance=1e-06)
-        #Criterion = smesh.Filter.Criterion(18,39,0,'GR_'+group,'GR_'+group,39,39,1e-06,smesh.EDGE,7)
-        MeshCompound.MakeGroupByCriterion(group,Criterion)
-
-    StudyBuilder = Config.theStudy.NewBuilder()
-    for MeshObj in TempMESHList:
-        SO = Config.theStudy.FindObjectIOR(Config.theStudy.ConvertObjectToIOR(MeshObj))
-        if SO is not None: StudyBuilder.RemoveObjectWithChildren(SO)
-
-    return MeshCompound
+        aFilterManager = smesh.CreateFilterManager()
 
+        # Building geometric and mesh compounds and  groups ##############################################
+        if Config.debug : print("Searching for geometric groups and publishing final compound")
+        
+        TempGEOList = []
+        TempMESHList = []
+        
+        for MacroObj in Config.ListObj : 
+                TempGEOList += MacroObj.GeoChildren
+                TempMESHList += MacroObj.Mesh
+                
+        FinalCompound = geompy.MakeCompound(TempGEOList)
+        geompy.addToStudy (FinalCompound,Config.StudyName)
+        MeshCompound = smesh.Concatenate(TempMESHList, 1, 1, 1e-5)
+        MeshCompound.SetName(Config.StudyName)
+        
+        GroupGEO = []
+        for group in Config.Groups :
+        
+                # Geometric groups definition
+                TempGEOList = []
+                TempNames = []
+                for MacroObj in Config.ListObj :
+                        if group in MacroObj.GroupNames :
+                                Occurrences = IndexMultiOcc(MacroObj.GroupNames, group)
+                                for Occ in Occurrences :
+                                        TempGEOList += MacroObj.GetBorder(Occ)
+                GroupGEO.append(geompy.MakeCompound(TempGEOList))
+                geompy.addToStudyInFather(FinalCompound,GroupGEO[-1],'GR_'+group)
+                
+                # Mesh groups definition
+                Criterion = smesh.GetCriterion(SMESH.EDGE, SMESH.FT_BelongToGeom,'=',GroupGEO[-1],Tolerance=1e-06)
+                #Criterion = smesh.Filter.Criterion(18,39,0,'GR_'+group,'GR_'+group,39,39,1e-06,smesh.EDGE,7)
+                MeshCompound.MakeGroupByCriterion(group,Criterion)
+        
+        StudyBuilder = Config.theStudy.NewBuilder()
+        for MeshObj in TempMESHList:
+                SO = Config.theStudy.FindObjectIOR(Config.theStudy.ConvertObjectToIOR(MeshObj))
+                if SO is not None: StudyBuilder.RemoveObjectWithChildren(SO)
+        
+        return MeshCompound        
+                
 
 def IndexMultiOcc (Array,Element) :
     """