Salome HOME
f94aafeda106e3e17794a49ea68a7028aa9ebe2b
[modules/smesh.git] / doc / salome / examples / transforming_meshes_ex11.py
1 # Duplicate nodes
2
3 import salome
4 import geompy
5 import smesh
6
7 # Create a box
8
9 box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
10
11 # Define hexa mesh on a box
12 mesh = smesh.Mesh(box, "Mesh")
13 mesh.Segment().NumberOfSegments(7)
14 mesh.Quadrangle()
15 mesh.Hexahedron()
16
17 # Compute mesh
18 mesh.Compute()
19
20 # Without the duplication of border elements
21
22 # Nodes to duplicate
23 nodes1 = mesh.CreateEmptyGroup( smesh.NODE, 'nodes1' )
24 nodes1.Add( [ 119, 125, 131, 137 ] )
25
26 # Group of faces to replace nodes with new ones 
27 faces1 = mesh.CreateEmptyGroup( smesh.FACE, 'faces1' )
28 faces1.Add( [ 144, 151, 158 ] )
29
30 # Duplicate nodes
31 print "\nMesh before the first nodes duplication:"
32 print "Nodes       : ", mesh.NbNodes()
33 print "Edges       : ", mesh.NbEdges()
34 print "Quadrangles : ", mesh.NbQuadrangles()
35
36 groupOfCreatedNodes = mesh.DoubleNodeGroup(nodes1, faces1, theMakeGroup=True)
37 print "New nodes:", groupOfCreatedNodes.GetIDs()
38
39 print "\nMesh after the first nodes duplication:"
40 print "Nodes       : ", mesh.NbNodes()
41 print "Edges       : ", mesh.NbEdges()
42 print "Quadrangles : ", mesh.NbQuadrangles()
43
44 # With the duplication of border elements
45
46 # Edges to duplicate
47 edges = mesh.CreateEmptyGroup( smesh.EDGE, 'edges' )
48 edges.Add( [ 32, 33, 34 ] )
49
50 # Nodes not to duplicate
51 nodes2 = mesh.CreateEmptyGroup( smesh.NODE, 'nodes2' )
52 nodes2.Add( [ 35, 38 ] )
53
54 # Group of faces to replace nodes with new ones 
55 faces2 = mesh.CreateEmptyGroup( smesh.FACE, 'faces2' )
56 faces2.Add( [ 141, 148, 155 ] )
57
58 # Duplicate nodes
59 print "\nMesh before the second nodes duplication:"
60 print "Nodes       : ", mesh.NbNodes()
61 print "Edges       : ", mesh.NbEdges()
62 print "Quadrangles : ", mesh.NbQuadrangles()
63
64 groupOfNewEdges = mesh.DoubleNodeElemGroup( edges, nodes2, faces2, theMakeGroup=True )
65 print "New edges:", groupOfNewEdges.GetIDs()
66
67 print "\nMesh after the second nodes duplication:"
68 print "Nodes       : ", mesh.NbNodes()
69 print "Edges       : ", mesh.NbEdges()
70 print "Quadrangles : ", mesh.NbQuadrangles()
71
72 # Update object browser
73 if salome.sg.hasDesktop():
74     salome.sg.updateObjBrowser(0)