Salome HOME
Precise doc on sub-mesh priority
[modules/smesh.git] / doc / salome / examples / transforming_meshes_ex06.py
index c9c8353d8a62676593bceafc67eeb15bb3b007b1..433ae192878939726ebd9455d36fe8e1c06bbdc1 100644 (file)
@@ -3,13 +3,12 @@
 
 import salome
 salome.salome_init()
-import GEOM
 from salome.geom import geomBuilder
-geompy = geomBuilder.New(salome.myStudy)
+geompy = geomBuilder.New()
 
-import SMESH, SALOMEDS
+import SMESH
 from salome.smesh import smeshBuilder
-smesh =  smeshBuilder.New(salome.myStudy)
+smesh =  smeshBuilder.New()
 
 # create a face to be meshed
 px = geompy.MakeVertex(100., 0.  , 0.  )
@@ -43,6 +42,9 @@ algo2D.LengthFromEdges()
 
 trias.Compute()
 
+# create a group of all triangles currently present in the mesh
+faceTriGroup = trias.Group( face1, "face triangles" )
+
 # create a path mesh
 circlemesh = smesh.Mesh(circle, "Path mesh")
 algo = circlemesh.Segment()
@@ -50,31 +52,35 @@ algo.NumberOfSegments(10)
 circlemesh.Compute()
 
 # extrusion of the mesh
-trias.ExtrusionAlongPath([], circlemesh, circle,
-                         1, 0, [], 0, SMESH.PointStruct(0, 0, 0))
+trias.ExtrusionAlongPath([], circlemesh, circle, 1, MakeGroups=True )
+
+# get a group "opposite" to faceTriGroup within the generated prismatic mesh
+oppositeGroup = trias.GetGroupByName( faceTriGroup.GetName() + "_top" )[0]
+
+# get edges of the groups
+edgeGroup = trias.CreateDimGroup([ faceTriGroup, oppositeGroup ], SMESH.EDGE, "face edges")
 
-# merge nodes
-print "Number of nodes before MergeNodes:", 
+# merge nodes of the groups only
+print("Number of nodes before MergeNodes:", end=' ') 
 trias.NbNodes()
 tolerance = 0.001
-array_of_nodes_groups = trias.FindCoincidentNodes(tolerance)
+array_of_nodes_groups = trias.FindCoincidentNodesOnPart([faceTriGroup, oppositeGroup], tolerance)
 
 trias.MergeNodes(array_of_nodes_groups)
 
-print "Number of nodes after MergeNodes:", trias.NbNodes()
-print ""
-print "Number of elements before MergeEqualElements:"
-print "Edges      : ", trias.NbEdges()
-print "Triangles  : ", trias.NbTriangles()
-print "Quadrangles: ", trias.NbQuadrangles()
-print "Volumes    : ", trias.NbVolumes()
-
-# merge elements
-trias.MergeEqualElements()
-print "Number of elements after MergeEqualElements:"
-print "Edges      : ", trias.NbEdges()
-print "Triangles  : ", trias.NbTriangles()
-print "Quadrangles: ", trias.NbQuadrangles()
-print "Volumes    : ", trias.NbVolumes()
-
-salome.sg.updateObjBrowser(1)
+print("Number of nodes after MergeNodes:", trias.NbNodes())
+print("")
+print("Number of elements before MergeEqualElements:")
+print("Edges      : ", trias.NbEdges())
+print("Faces      : ", trias.NbFaces())
+print("Volumes    : ", trias.NbVolumes())
+
+# merge elements of the groups
+equalFaces = trias.FindEqualElements( [faceTriGroup, oppositeGroup, edgeGroup] )
+trias.MergeElements( equalFaces )
+print("Number of elements after MergeEqualElements:")
+print("Edges      : ", trias.NbEdges())
+print("Faces      : ", trias.NbFaces())
+print("Volumes    : ", trias.NbVolumes())
+
+salome.sg.updateObjBrowser()