Salome HOME
23440: [CEA 2093] : Merge nodes failed (test case bug_1796_mergenodes)
[modules/smesh.git] / doc / salome / examples / transforming_meshes_ex06.py
1 # Merging Elements
2
3
4 import salome
5 salome.salome_init()
6 import GEOM
7 from salome.geom import geomBuilder
8 geompy = geomBuilder.New(salome.myStudy)
9
10 import SMESH, SALOMEDS
11 from salome.smesh import smeshBuilder
12 smesh =  smeshBuilder.New(salome.myStudy)
13
14 # create a face to be meshed
15 px = geompy.MakeVertex(100., 0.  , 0.  )
16 py = geompy.MakeVertex(0.  , 100., 0.  )
17 pz = geompy.MakeVertex(0.  , 0.  , 100.)
18
19 vxy = geompy.MakeVector(px, py)
20 arc = geompy.MakeArc(py, pz, px)
21
22 wire = geompy.MakeWire([vxy, arc])
23 isPlanarFace = 1
24
25 face1 = geompy.MakeFace(wire, isPlanarFace)
26 id_face1 = geompy.addToStudy(face1, "Face1")
27
28 # create a circle to be an extrusion path
29 px1 = geompy.MakeVertex( 100.,  100.,  0.)
30 py1 = geompy.MakeVertex(-100., -100.,  0.)
31 pz1 = geompy.MakeVertex(   0.,    0., 50.)
32
33 circle = geompy.MakeCircleThreePnt(py1, pz1, px1)
34 id_circle = geompy.addToStudy(circle, "Path")
35  
36 # create a 2D mesh on the face
37 trias = smesh.Mesh(face1, "Face : 2D mesh")
38
39 algo1D = trias.Segment()
40 algo1D.NumberOfSegments(6)
41 algo2D = trias.Triangle()
42 algo2D.LengthFromEdges()
43
44 trias.Compute()
45
46 # create a path mesh
47 circlemesh = smesh.Mesh(circle, "Path mesh")
48 algo = circlemesh.Segment()
49 algo.NumberOfSegments(10)
50 circlemesh.Compute()
51
52 # extrusion of the mesh
53 trias.ExtrusionAlongPath([], circlemesh, circle,
54                          1, 0, [], 0, SMESH.PointStruct(0, 0, 0))
55
56 # merge nodes
57 print "Number of nodes before MergeNodes:", 
58 trias.NbNodes()
59 tolerance = 0.001
60 array_of_nodes_groups = trias.FindCoincidentNodes(tolerance)
61
62 trias.MergeNodes(array_of_nodes_groups)
63
64 print "Number of nodes after MergeNodes:", trias.NbNodes()
65 print ""
66 print "Number of elements before MergeEqualElements:"
67 print "Edges      : ", trias.NbEdges()
68 print "Triangles  : ", trias.NbTriangles()
69 print "Quadrangles: ", trias.NbQuadrangles()
70 print "Volumes    : ", trias.NbVolumes()
71
72 # merge elements
73 trias.MergeEqualElements()
74 print "Number of elements after MergeEqualElements:"
75 print "Edges      : ", trias.NbEdges()
76 print "Triangles  : ", trias.NbTriangles()
77 print "Quadrangles: ", trias.NbQuadrangles()
78 print "Volumes    : ", trias.NbVolumes()
79
80 salome.sg.updateObjBrowser(True)