Salome HOME
Update GUI and TUI documentation for Mesh module
[modules/smesh.git] / doc / salome / gui / SMESH / transforming_meshes.htm
index 6d2ada4f1d772a5f4f8ed17eceaebb9f5cbb6a9e..078ea190b295748185b190d2b4c80ab1ed5a84e5 100755 (executable)
@@ -45,43 +45,48 @@ onerror = null;
 <style type="text/css">\r
 <!--\r
 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
+p.WebHelpNavBar { text-align:right; }\r
 -->\r
 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
 <script type="text/javascript" language="javascript" src="whver.js"></script>\r
 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
-</head>\r
-<body><script type="text/javascript" language="javascript1.2">\r
+<script type="text/javascript" language="javascript1.2">\r
 <!--\r
 if (window.gbWhTopic)\r
 {\r
-       if (window.addTocInfo)\r
+       if (window.setRelStartPage)\r
        {\r
        addTocInfo("MESH module\nTUI Scripts\nTransforming Meshes");\r
-addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
+addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
+addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
 \r
        }\r
-       if (window.writeBtnStyle)\r
-               writeBtnStyle();\r
 \r
-       if (window.writeIntopicBar)\r
-               writeIntopicBar(1);\r
 \r
        if (window.setRelStartPage)\r
        {\r
-       setRelStartPage("smesh.htm");\r
+       setRelStartPage("index.htm");\r
 \r
                autoSync(1);\r
                sendSyncInfo();\r
                sendAveInfoOut();\r
        }\r
+\r
 }\r
 else\r
        if (window.gbIE4)\r
                document.location.reload();\r
 //-->\r
 </script>\r
+</head>\r
+<body><script type="text/javascript" language="javascript1.2">\r
+<!--\r
+if (window.writeIntopicBar)\r
+       writeIntopicBar(4);\r
+//-->\r
+</script>\r
 <h1>Transforming Meshes</h1>\r
 \r
 <h3 class="whs1">Transforming Meshes</h3>\r
@@ -134,7 +139,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 +244,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