X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=doc%2Fsalome%2Fgui%2FSMESH%2Ftransforming_meshes.htm;h=1020cdf63682e6766e47a56b631dbec87a2e6f11;hb=57b43b4d010e2d0a1529d3c131bbb9d416e63258;hp=6d2ada4f1d772a5f4f8ed17eceaebb9f5cbb6a9e;hpb=6a3292e0719908b1e6ba7d3994fb314fa9fba71b;p=modules%2Fsmesh.git diff --git a/doc/salome/gui/SMESH/transforming_meshes.htm b/doc/salome/gui/SMESH/transforming_meshes.htm index 6d2ada4f1..1020cdf63 100755 --- a/doc/salome/gui/SMESH/transforming_meshes.htm +++ b/doc/salome/gui/SMESH/transforming_meshes.htm @@ -134,7 +134,7 @@ else

 

-

mport math

+

import math

mesh   = SMESH_mechanic.mesh

@@ -239,6 +239,203 @@ else

 

+

Merging Elements

+ +

import geompy

+ +

import smesh

+ +

import salome

+ +

import SMESH

+ +

 

+ +

# 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 2D mesh on the + face

+ +

trias = smesh.Mesh(face1, + "Face : 2D mesh")

+ +

 

+ +

algo = trias.Segment()

+ +

algo.NumberOfSegments(6)

+ +

 

+ +

algo = trias.Triangle()

+ +

algo.LengthFromEdges()

+ +

 

+ +

trias.Compute()

+ +

 

+ +

tri_mesh = trias.GetMesh()

+ +

 

+ +

# create a path mesh

+ +

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")

+ +

 

+ +

circlemesh = smesh.Mesh(circle, + "Path mesh")

+ +

 

+ +

algo = circlemesh.Segment()

+ +

algo.NumberOfSegments(10)

+ +

 

+ +

circlemesh.Compute()

+ +

 

+ +

# extrusion of the mesh

+ +

aMeshEditor = tri_mesh.GetMeshEditor()

+ +

aMeshEditor.ExtrusionAlongPathObject(tri_mesh, + circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))

+ +

 

+ +

# merge nodes

+ +

print "Number + of nodes before MergeNodes:", tri_mesh.NbNodes()

+ +

 

+ +

tolerance = 0.001

+ +

array_of_nodes_groups + = aMeshEditor.FindCoincidentNodes(tolerance)

+ +

aMeshEditor.MergeNodes(array_of_nodes_groups)

+ +

 

+ +

print "Number + of nodes after MergeNodes:", tri_mesh.NbNodes()

+ +

print ""

+ +

print "Number + of elements before MergeEqualElements:"

+ +

print "Edges +      : + ", tri_mesh.NbEdges()

+ +

print "Triangles +  : ", + tri_mesh.NbTriangles()

+ +

print "Quadrangles: + ", tri_mesh.NbQuadrangles()

+ +

print "Volumes +    : + ", tri_mesh.NbVolumes()

+ +

 

+ +

# merge elements

+ +

aMeshEditor.MergeEqualElements()

+ +

 

+ +

print "Number + of elements after MergeEqualElements:"

+ +

print "Edges +      : + ", tri_mesh.NbEdges()

+ +

print "Triangles +  : ", + tri_mesh.NbTriangles()

+ +

print "Quadrangles: + ", tri_mesh.NbQuadrangles()

+ +

print "Volumes +    : + ", tri_mesh.NbVolumes()

+ +

 

+ +

salome.sg.updateObjBrowser(1) +

+

Sewing Meshes

Sew Meshes Border to Border