mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-31 03:40:34 +05:00
44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
|
# Moving Nodes
|
||
|
|
||
|
from geompy import *
|
||
|
from smesh import *
|
||
|
|
||
|
box = MakeBoxDXDYDZ(200, 200, 200)
|
||
|
|
||
|
mesh = Mesh( box )
|
||
|
mesh.Segment().AutomaticLength(0.1)
|
||
|
mesh.Quadrangle()
|
||
|
mesh.Compute()
|
||
|
|
||
|
# find node at (0,0,0)
|
||
|
node000 = None
|
||
|
for vId in SubShapeAllIDs( box, ShapeType["VERTEX"]):
|
||
|
if node000: break
|
||
|
nodeIds = mesh.GetSubMeshNodesId( vId, True )
|
||
|
for node in nodeIds:
|
||
|
xyz = mesh.GetNodeXYZ( node )
|
||
|
if xyz[0] == 0 and xyz[1] == 0 and xyz[2] == 0 :
|
||
|
node000 = node
|
||
|
pass
|
||
|
pass
|
||
|
pass
|
||
|
|
||
|
if not node000:
|
||
|
raise "node000 not found"
|
||
|
|
||
|
# find node000 using the tested function
|
||
|
n = mesh.FindNodeClosestTo( -1,-1,-1 )
|
||
|
if not n == node000:
|
||
|
raise "FindNodeClosestTo() returns " + str( n ) + " != " + str( node000 )
|
||
|
|
||
|
# move node000 to a new location
|
||
|
x,y,z = -10, -10, -10
|
||
|
n = mesh.MoveNode( n,x,y,z )
|
||
|
if not n:
|
||
|
raise "MoveNode() returns " + n
|
||
|
|
||
|
# check the coordinates of the node000
|
||
|
xyz = mesh.GetNodeXYZ( node000 )
|
||
|
if not ( xyz[0] == x and xyz[1] == y and xyz[2] == z) :
|
||
|
raise "Wrong coordinates: " + str( xyz ) + " != " + str( [x,y,z] )
|