Salome HOME
bos #26454 [EDF] (2021) SMESH: interactive mesh modification
[modules/smesh.git] / doc / salome / examples / modifying_meshes_cut_triangles.py
1 # Cutting Triangles
2
3 import salome
4 salome.salome_init_without_session()
5 from salome.smesh import smeshBuilder
6 smesh = smeshBuilder.New()
7
8 # create 3 triangles and 1 segment all sharing edge 1-2
9 mesh = smesh.Mesh()
10 n1 = mesh.AddNode( 0, 0, 0)
11 n2 = mesh.AddNode( 0, 0, -10)
12 n3 = mesh.AddNode( 10, 0, 0)
13 n4 = mesh.AddNode( 0, 10, 0)
14 n5 = mesh.AddNode( 0, -10, 0)
15 mesh.AddFace([ n1, n2, n3])
16 mesh.AddFace([ n1, n2, n4])
17 mesh.AddFace([ n1, n2, n5])
18 mesh.AddEdge([ n1, n2] )
19
20 # ===========================================================================
21 # cut all the triangles and the segment by setting a new node on the segment
22 # ===========================================================================
23
24 mesh.AddNodeOnSegment( n1, n2, 0.6 )
25 assert mesh.NbNodes() == 6     # one new node created
26 assert mesh.NbTriangles() == 6 # each of the 3 triangles is split into two
27 assert mesh.NbEdges() == 2     # a segment is split into two
28
29 # ===============================================================
30 # cut a triangle into three by adding a new node on the triangle
31 # ===============================================================
32
33 triangleID = 1
34 mesh.AddNodeOnFace( triangleID, 2, 0, -6 )
35 assert mesh.NbNodes() == 7     # one new node created
36 assert mesh.NbTriangles() == 8 # the triangles is split into three