Salome HOME
Join modifications from branch OCC_debug_for_3_2_0b1
[modules/smesh.git] / doc / salome / gui / SMESH / transforming_meshes.htm
index 6d2ada4f1d772a5f4f8ed17eceaebb9f5cbb6a9e..1020cdf63682e6766e47a56b631dbec87a2e6f11 100755 (executable)
@@ -134,7 +134,7 @@ else
 \r
 <p class="whs3">&nbsp;</p>\r
 \r
-<p class="whs3">mport math</p>\r
+<p class="whs3">import math</p>\r
 \r
 <p class="whs3">mesh &nbsp;&nbsp;= \r
  SMESH_mechanic.mesh</p>\r
@@ -239,6 +239,203 @@ else
 \r
 <p class="whs4">&nbsp;</p>\r
 \r
+<h4><a name=bookmark8>Merging Elements</a></h4>\r
+\r
+<p class="whs5">import geompy</p>\r
+\r
+<p class="whs5">import smesh</p>\r
+\r
+<p class="whs5">import salome</p>\r
+\r
+<p class="whs5">import SMESH</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># create a face to be meshed</p>\r
+\r
+<p class="whs5">px = geompy.MakeVertex(100., \r
+ 0. &nbsp;, 0. \r
+ &nbsp;)</p>\r
+\r
+<p class="whs5">py = geompy.MakeVertex(0. \r
+ &nbsp;, 100., \r
+ 0. &nbsp;)</p>\r
+\r
+<p class="whs5">pz = geompy.MakeVertex(0. \r
+ &nbsp;, 0. &nbsp;, \r
+ 100.)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">vxy = geompy.MakeVector(px, \r
+ py)</p>\r
+\r
+<p class="whs5">arc = geompy.MakeArc(py, \r
+ pz, px)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">wire = geompy.MakeWire([vxy, \r
+ arc])</p>\r
+\r
+<p class="whs5">isPlanarFace = 1</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">face1 = geompy.MakeFace(wire, \r
+ isPlanarFace)</p>\r
+\r
+<p class="whs5">id_face1 = geompy.addToStudy(face1, \r
+ &quot;Face1&quot;)</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># create a 2D mesh on the \r
+ face</p>\r
+\r
+<p class="whs5">trias = smesh.Mesh(face1, \r
+ &quot;Face : 2D mesh&quot;)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">algo = trias.Segment()</p>\r
+\r
+<p class="whs5">algo.NumberOfSegments(6)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">algo = trias.Triangle()</p>\r
+\r
+<p class="whs5">algo.LengthFromEdges()</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">trias.Compute()</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">tri_mesh = trias.GetMesh()</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># create a path mesh</p>\r
+\r
+<p class="whs5">px1 = geompy.MakeVertex(100., \r
+ 100. &nbsp;, \r
+ 0. &nbsp;)</p>\r
+\r
+<p class="whs5">py1 = geompy.MakeVertex(-100. \r
+ &nbsp;, -100., \r
+ 0. &nbsp;)</p>\r
+\r
+<p class="whs5">pz1 = geompy.MakeVertex(0. \r
+ &nbsp;, 0. &nbsp;, \r
+ 50.)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">circle = geompy.MakeCircleThreePnt(py1, \r
+ pz1, px1)</p>\r
+\r
+<p class="whs5">id_circle = geompy.addToStudy(circle, \r
+ &quot;Path&quot;)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">circlemesh = smesh.Mesh(circle, \r
+ &quot;Path mesh&quot;)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">algo = circlemesh.Segment()</p>\r
+\r
+<p class="whs5">algo.NumberOfSegments(10)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">circlemesh.Compute()</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># extrusion of the mesh</p>\r
+\r
+<p class="whs5">aMeshEditor = tri_mesh.GetMeshEditor()</p>\r
+\r
+<p class="whs5">aMeshEditor.ExtrusionAlongPathObject(tri_mesh, \r
+ circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># merge nodes</p>\r
+\r
+<p class="whs5">print &quot;Number \r
+ of nodes before MergeNodes:&quot;, tri_mesh.NbNodes()</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">tolerance = 0.001</p>\r
+\r
+<p class="whs5">array_of_nodes_groups \r
+ = aMeshEditor.FindCoincidentNodes(tolerance)</p>\r
+\r
+<p class="whs5">aMeshEditor.MergeNodes(array_of_nodes_groups)</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">print &quot;Number \r
+ of nodes after MergeNodes:&quot;, tri_mesh.NbNodes()</p>\r
+\r
+<p class="whs5">print &quot;&quot;</p>\r
+\r
+<p class="whs5">print &quot;Number \r
+ of elements before MergeEqualElements:&quot;</p>\r
+\r
+<p class="whs5">print &quot;Edges \r
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: \r
+ &quot;, tri_mesh.NbEdges()</p>\r
+\r
+<p class="whs5">print &quot;Triangles \r
+ &nbsp;: &quot;, \r
+ tri_mesh.NbTriangles()</p>\r
+\r
+<p class="whs5">print &quot;Quadrangles: \r
+ &quot;, tri_mesh.NbQuadrangles()</p>\r
+\r
+<p class="whs5">print &quot;Volumes \r
+ &nbsp;&nbsp;&nbsp;: \r
+ &quot;, tri_mesh.NbVolumes()</p>\r
+\r
+<p class="whs4">&nbsp;</p>\r
+\r
+<p class="whs4"># merge elements</p>\r
+\r
+<p class="whs5">aMeshEditor.MergeEqualElements()</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs5">print &quot;Number \r
+ of elements after MergeEqualElements:&quot;</p>\r
+\r
+<p class="whs5">print &quot;Edges \r
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: \r
+ &quot;, tri_mesh.NbEdges()</p>\r
+\r
+<p class="whs5">print &quot;Triangles \r
+ &nbsp;: &quot;, \r
+ tri_mesh.NbTriangles()</p>\r
+\r
+<p class="whs5">print &quot;Quadrangles: \r
+ &quot;, tri_mesh.NbQuadrangles()</p>\r
+\r
+<p class="whs5">print &quot;Volumes \r
+ &nbsp;&nbsp;&nbsp;: \r
+ &quot;, tri_mesh.NbVolumes()</p>\r
+\r
+<p class="whs5">&nbsp;</p>\r
+\r
+<p class="whs4"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+ </p>\r
+\r
 <h3>Sewing Meshes</h3>\r
 \r
 <h4><a name=bookmark4>Sew Meshes Border to Border</a></h4>\r