smesh/doc/salome/examples/transforming_meshes_ex06.py

81 lines
2.1 KiB
Python
Raw Normal View History

2013-02-12 20:37:44 +06:00
# Merging Elements
2013-02-12 20:37:44 +06:00
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
2017-06-13 15:01:10 +05:00
geompy = geomBuilder.New()
import SMESH, SALOMEDS
from salome.smesh import smeshBuilder
2017-06-13 15:01:10 +05:00
smesh = smeshBuilder.New()
2013-02-12 20:37:44 +06:00
# create a face to be meshed
px = geompy.MakeVertex(100., 0. , 0. )
py = geompy.MakeVertex(0. , 100., 0. )
pz = geompy.MakeVertex(0. , 0. , 100.)
vxy = geompy.MakeVector(px, py)
arc = geompy.MakeArc(py, pz, px)
wire = geompy.MakeWire([vxy, arc])
isPlanarFace = 1
face1 = geompy.MakeFace(wire, isPlanarFace)
id_face1 = geompy.addToStudy(face1, "Face1")
# create a circle to be an extrusion path
px1 = geompy.MakeVertex( 100., 100., 0.)
py1 = geompy.MakeVertex(-100., -100., 0.)
pz1 = geompy.MakeVertex( 0., 0., 50.)
circle = geompy.MakeCircleThreePnt(py1, pz1, px1)
id_circle = geompy.addToStudy(circle, "Path")
# create a 2D mesh on the face
trias = smesh.Mesh(face1, "Face : 2D mesh")
algo1D = trias.Segment()
algo1D.NumberOfSegments(6)
algo2D = trias.Triangle()
algo2D.LengthFromEdges()
trias.Compute()
# create a path mesh
circlemesh = smesh.Mesh(circle, "Path mesh")
algo = circlemesh.Segment()
algo.NumberOfSegments(10)
circlemesh.Compute()
# extrusion of the mesh
trias.ExtrusionAlongPath([], circlemesh, circle,
1, 0, [], 0, SMESH.PointStruct(0, 0, 0))
2013-02-12 20:37:44 +06:00
# merge nodes
2017-03-20 17:27:30 +05:00
print("Number of nodes before MergeNodes:", end=' ')
2013-02-12 20:37:44 +06:00
trias.NbNodes()
tolerance = 0.001
array_of_nodes_groups = trias.FindCoincidentNodes(tolerance)
trias.MergeNodes(array_of_nodes_groups)
2017-03-20 17:27:30 +05:00
print("Number of nodes after MergeNodes:", trias.NbNodes())
print("")
print("Number of elements before MergeEqualElements:")
print("Edges : ", trias.NbEdges())
print("Triangles : ", trias.NbTriangles())
print("Quadrangles: ", trias.NbQuadrangles())
print("Volumes : ", trias.NbVolumes())
2013-02-12 20:37:44 +06:00
# merge elements
trias.MergeEqualElements()
2017-03-20 17:27:30 +05:00
print("Number of elements after MergeEqualElements:")
print("Edges : ", trias.NbEdges())
print("Triangles : ", trias.NbTriangles())
print("Quadrangles: ", trias.NbQuadrangles())
print("Volumes : ", trias.NbVolumes())
2013-02-12 20:37:44 +06:00
2017-06-13 15:01:10 +05:00
salome.sg.updateObjBrowser()