]> SALOME platform Git repositories - modules/smesh.git/blobdiff - doc/examples/transforming_meshes_ex09.py
Salome HOME
bos #29171 Refactor testing procedure
[modules/smesh.git] / doc / examples / transforming_meshes_ex09.py
diff --git a/doc/examples/transforming_meshes_ex09.py b/doc/examples/transforming_meshes_ex09.py
new file mode 100644 (file)
index 0000000..19ab5ed
--- /dev/null
@@ -0,0 +1,47 @@
+# Sew Free Borders
+
+import salome
+salome.salome_init_without_session()
+
+from salome.geom import geomBuilder
+from salome.smesh import smeshBuilder
+
+geom_builder = geomBuilder.New()
+smesh_builder = smeshBuilder.New()
+
+# make two not sewed quadranges
+OY0 = geom_builder.MakeVectorDXDYDZ(0, 1, 0)
+OY1 = geom_builder.MakeTranslation( OY0, 1, 0, 0, theName="OY1" )
+OY2 = geom_builder.MakeTranslation( OY0, 1.01, 0, 0, theName="OY2" )
+OY3 = geom_builder.MakeTranslation( OY0, 2, 0, 0 )
+q1  = geom_builder.MakeQuad2Edges( OY0, OY1 )
+q2  = geom_builder.MakeQuad2Edges( OY2, OY3 )
+
+shape = geom_builder.MakeCompound( [q1,q2], theName='shape' )
+
+# make a non-uniform quadrangle mesh on two faces
+mesh = smesh_builder.Mesh(shape, "Two faces : quadrangle mesh")
+mesh.Segment().Arithmetic1D( 0.1, 0.4 )
+mesh.Segment(q1).NumberOfSegments( 5 )
+mesh.Quadrangle()
+mesh.Compute()
+
+# sew free borders
+
+segs1 = mesh.GetSubMeshElementsId( OY1 ) # mesh segments generated on borders
+segs2 = mesh.GetSubMeshElementsId( OY2 )
+
+FirstNodeID1  = mesh.GetElemNode( segs1[0], 0 )
+SecondNodeID1 = mesh.GetElemNode( segs1[0], 1 )
+LastNodeID1   = mesh.GetElemNode( segs1[-1], 1 )
+FirstNodeID2  = mesh.GetElemNode( segs2[0], 0 )
+SecondNodeID2 = mesh.GetElemNode( segs2[0], 1 )
+LastNodeID2   = mesh.GetElemNode( segs2[-1], 1 )
+CreatePolygons = True
+CreatePolyedrs = False
+
+res = mesh.SewFreeBorders(FirstNodeID1, SecondNodeID1, LastNodeID1,
+                          FirstNodeID2, SecondNodeID2, LastNodeID2,
+                          CreatePolygons, CreatePolyedrs )
+print(res)
+print("nb polygons:", mesh.NbPolygons())