Salome HOME
[bos #23982] EDF 22984 - aspect ratio of hexa
[modules/smesh.git] / doc / salome / examples / transforming_meshes_ex05.py
index f99d50b6a97cc551004bbdd475db9c7996c46eb2..0adf0247cf6de7fb956c1e49c825ae76a76d9b9c 100644 (file)
@@ -1,10 +1,24 @@
 # Merging Nodes
 
-import SMESH_mechanic
-mesh = SMESH_mechanic.mesh
+import SMESH_mechanic, SMESH
+mesh  = SMESH_mechanic.mesh
+smesh = SMESH_mechanic.smesh
 
-# merge nodes
-Tolerance = 25.0
+# criterion of coincidence
+Tolerance = 4.0
 
-GroupsOfNodes =  mesh.FindCoincidentNodes(Tolerance)
-mesh.MergeNodes(GroupsOfNodes)  
+# find close nodes of triangle elements only
+triangleFilter = smesh.GetFilter( SMESH.FACE, SMESH.FT_ElemGeomType,'=', SMESH.Geom_TRIANGLE )
+GroupsOfNodesOfTriangles = mesh.FindCoincidentNodesOnPart([triangleFilter],Tolerance)
+
+# prevent nodes located on geom edges from removal during merge:
+# create a group including all nodes on edges
+allSegs = mesh.MakeGroup( "all segments", SMESH.EDGE, SMESH.FT_ElemGeomType,'=', SMESH.Geom_EDGE )
+
+mesh.MergeNodes(GroupsOfNodesOfTriangles, NodesToKeep=allSegs)
+
+
+# find close nodes in the whole mesh
+GroupsOfNodes = mesh.FindCoincidentNodes(Tolerance)
+
+mesh.MergeNodes(GroupsOfNodes, NodesToKeep=allSegs)