Salome HOME
CMake:
[modules/smesh.git] / doc / salome / examples / modifying_meshes_ex15.py
1 # Moving 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 import salome_notebook
14
15
16 box = geompy.MakeBoxDXDYDZ(200, 200, 200)
17
18 mesh = smesh.Mesh( box )
19 mesh.Segment().AutomaticLength(0.1)
20 mesh.Quadrangle()
21 mesh.Compute()
22
23 # find node at (0,0,0)
24 node000 = None
25 for vId in geompy.SubShapeAllIDs( box, geompy.ShapeType["VERTEX"]):
26     if node000: break
27     nodeIds = mesh.GetSubMeshNodesId( vId, True )
28     for node in nodeIds:
29         xyz = mesh.GetNodeXYZ( node )
30         if xyz[0] == 0 and xyz[1] == 0 and xyz[2] == 0 :
31             node000 = node
32             pass
33         pass
34     pass
35
36 if not node000:
37     raise "node000 not found"
38
39 # find node000 using the tested function 
40 n = mesh.FindNodeClosestTo( -1,-1,-1 )
41 if not n == node000:
42     raise "FindNodeClosestTo() returns " + str( n ) + " != " + str( node000 )
43
44 # move node000 to a new location
45 x,y,z = -10, -10, -10
46 n = mesh.MoveNode( n,x,y,z )
47 if not n:
48     raise "MoveNode() returns " + n
49
50 # check the coordinates of the node000
51 xyz = mesh.GetNodeXYZ( node000 )
52 if not ( xyz[0] == x and xyz[1] == y and xyz[2] == z) :
53     raise "Wrong coordinates: " + str( xyz ) + " != " + str( [x,y,z] )