smesh/doc/salome/examples/transforming_meshes_ex11.py

82 lines
2.2 KiB
Python
Raw Normal View History

2013-02-12 20:37:44 +06:00
# Duplicate nodes
2013-02-12 20:37:44 +06:00
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
import SMESH, SALOMEDS
from salome.smesh import smeshBuilder
smesh = smeshBuilder.New(salome.myStudy)
2013-02-12 20:37:44 +06:00
2013-02-28 21:07:35 +06:00
# Create a box
box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
# Define hexa mesh on a box
mesh = smesh.Mesh(box, "Mesh")
mesh.Segment().NumberOfSegments(7)
mesh.Quadrangle()
mesh.Hexahedron()
2013-02-12 20:37:44 +06:00
# Compute mesh
mesh.Compute()
# Without the duplication of border elements
# Nodes to duplicate
nodes1 = mesh.CreateEmptyGroup( SMESH.NODE, 'nodes1' )
2013-02-28 21:07:35 +06:00
nodes1.Add( [ 119, 125, 131, 137 ] )
2013-02-12 20:37:44 +06:00
# Group of faces to replace nodes with new ones
faces1 = mesh.CreateEmptyGroup( SMESH.FACE, 'faces1' )
2013-02-28 21:07:35 +06:00
faces1.Add( [ 144, 151, 158 ] )
2013-02-12 20:37:44 +06:00
# Duplicate nodes
print "\nMesh before the first nodes duplication:"
2013-02-28 21:07:35 +06:00
print "Nodes : ", mesh.NbNodes()
print "Edges : ", mesh.NbEdges()
print "Quadrangles : ", mesh.NbQuadrangles()
2013-02-12 20:37:44 +06:00
groupOfCreatedNodes = mesh.DoubleNodeGroup(nodes1, faces1, theMakeGroup=True)
print "New nodes:", groupOfCreatedNodes.GetIDs()
print "\nMesh after the first nodes duplication:"
2013-02-28 21:07:35 +06:00
print "Nodes : ", mesh.NbNodes()
print "Edges : ", mesh.NbEdges()
print "Quadrangles : ", mesh.NbQuadrangles()
2013-02-12 20:37:44 +06:00
# With the duplication of border elements
# Edges to duplicate
edges = mesh.CreateEmptyGroup( SMESH.EDGE, 'edges' )
2013-02-28 21:07:35 +06:00
edges.Add( [ 32, 33, 34 ] )
2013-02-12 20:37:44 +06:00
# Nodes not to duplicate
nodes2 = mesh.CreateEmptyGroup( SMESH.NODE, 'nodes2' )
2013-02-28 21:07:35 +06:00
nodes2.Add( [ 35, 38 ] )
2013-02-12 20:37:44 +06:00
# Group of faces to replace nodes with new ones
faces2 = mesh.CreateEmptyGroup( SMESH.FACE, 'faces2' )
2013-02-28 21:07:35 +06:00
faces2.Add( [ 141, 148, 155 ] )
2013-02-12 20:37:44 +06:00
# Duplicate nodes
print "\nMesh before the second nodes duplication:"
2013-02-28 21:07:35 +06:00
print "Nodes : ", mesh.NbNodes()
print "Edges : ", mesh.NbEdges()
print "Quadrangles : ", mesh.NbQuadrangles()
2013-02-12 20:37:44 +06:00
groupOfNewEdges = mesh.DoubleNodeElemGroup( edges, nodes2, faces2, theMakeGroup=True )
print "New edges:", groupOfNewEdges.GetIDs()
print "\nMesh after the second nodes duplication:"
2013-02-28 21:07:35 +06:00
print "Nodes : ", mesh.NbNodes()
print "Edges : ", mesh.NbEdges()
print "Quadrangles : ", mesh.NbQuadrangles()
2013-02-12 20:37:44 +06:00
# Update object browser
if salome.sg.hasDesktop():
salome.sg.updateObjBrowser(0)