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