Salome HOME
Merging from V3_2_6pre4
[modules/smesh.git] / doc / salome / gui / SMESH / modifying_meshes.htm
index 7ed7089df751fe972eee3c48acd08c5971bc81f5..e33ea8c4ba0d7966ec5c34d6d02fc8270124bbf7 100755 (executable)
@@ -18,13 +18,14 @@ p.whs3 { margin-top:0pt; margin-bottom:0pt; }
 h4.whs4 { margin-top:0pt; margin-bottom:0pt; }
 p.whs5 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
 p.whs6 { margin-top:0.5pt; margin-bottom:0pt; }
-p.whs7 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
-p.whs8 { font-family:'Lucida Console' , monospace; }
-p.whs9 { font-family:'Times New Roman' , serif; }
-p.whs10 { margin-left:36px; font-family:'Lucida Console' , monospace; }
-p.whs11 { margin-left:36px; }
-p.whs12 { margin-left:0px; font-family:'Times New Roman' , serif; }
-p.whs13 { font-family:'Lucida Console' , monospace; margin-left:0px; }
+p.whs7 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; font-weight:bold; font-size:13.5pt; }
+p.whs8 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
+p.whs9 { font-family:'Lucida Console' , monospace; }
+p.whs10 { font-family:'Times New Roman' , serif; }
+p.whs11 { margin-left:36px; font-family:'Lucida Console' , monospace; }
+p.whs12 { margin-left:36px; }
+p.whs13 { margin-left:0px; font-family:'Times New Roman' , serif; }
+p.whs14 { font-family:'Lucida Console' , monospace; margin-left:0px; }
 -->
 </style><script type="text/javascript" language="JavaScript">
 <!--
@@ -38,8 +39,9 @@ if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
   strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
   strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
   strNSS += "p.whs7 {margin-top:1pt;margin-bottom:1pt; }";
-  strNSS += "p.whs12 {margin-left:1pt; }";
+  strNSS += "p.whs8 {margin-top:1pt;margin-bottom:1pt; }";
   strNSS += "p.whs13 {margin-left:1pt; }";
+  strNSS += "p.whs14 {margin-left:1pt; }";
   strNSS +="</style>";
   document.write(strNSS);
 }
@@ -652,8 +654,135 @@ if (window.writeIntopicBar)
 <p class="whs1">mesh.MoveNode(38, 
  20., 10., 0.) </p>
 
+<p class="whs1">&nbsp;</p>
+
+<p class="whs2">&nbsp;</p>
+
+<p class="whs7"><a name=bookmark14
+                                                                       style="font-weight: bold; font-size: 13.5pt;">Mesh 
+ through point</a></p>
+
 <p class="whs3">&nbsp;</p>
 
+<p class="whs1">from geompy import 
+ *</p>
+
+<p class="whs1">from smesh import 
+ *</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">box = MakeBoxDXDYDZ(200, 
+ 200, 200)</p>
+
+<p class="whs1">&nbsp;</p>
+
+<p class="whs1">mesh = Mesh( box 
+ )</p>
+
+<p class="whs1">mesh.Segment().AutomaticLength(0.1)</p>
+
+<p class="whs1">mesh.Quadrangle()</p>
+
+<p class="whs1">mesh.Compute()</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"># find node at (0,0,0)</p>
+
+<p class="whs1">node000 = None</p>
+
+<p class="whs1">for vId in SubShapeAllIDs( 
+ box, ShapeType[&quot;VERTEX&quot;]):</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;if 
+ node000: break</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;nodeIds 
+ = mesh.GetSubMeshNodesId( vId, True )</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;for 
+ node in nodeIds:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xyz 
+ = mesh.GetNodeXYZ( node )</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if 
+ xyz[0] == 0 and xyz[1] == 0 and xyz[2] == 0 :</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node000 
+ = node</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;pass</p>
+
+<p class="whs1">if not node000:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
+ &quot;node000 not found&quot;</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"># find node000 using the 
+ tested function </p>
+
+<p class="whs1">n = mesh.FindNodeClosestTo( 
+ -1,-1,-1 )</p>
+
+<p class="whs1">if not n == node000:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
+ &quot;FindNodeClosestTo() returns &quot; + str( n ) + &quot; != &quot; 
+ + str( node000 )</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"># check if any node will 
+ be found for a point inside a box</p>
+
+<p class="whs1">n = mesh.FindNodeClosestTo( 
+ 100, 100, 100 )</p>
+
+<p class="whs1">if not n &gt; 0:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
+ &quot;FindNodeClosestTo( 100, 100, 100 ) fails&quot;</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"># move node000 to a new 
+ location</p>
+
+<p class="whs1">x,y,z = -10, -10, 
+ -10</p>
+
+<p class="whs1">n = mesh.MeshToPassThroughAPoint( 
+ x,y,z )</p>
+
+<p class="whs1">if not n == node000:</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
+ &quot;FindNodeClosestTo() returns &quot; + str( n ) + &quot; != &quot; 
+ + str( node000 )</p>
+
+<p class="whs3">&nbsp;</p>
+
+<p class="whs3"># check the coordinates 
+ of the node000</p>
+
+<p class="whs1">xyz = mesh.GetNodeXYZ( 
+ node000 )</p>
+
+<p class="whs1">if not ( xyz[0] 
+ == x and xyz[1] == y and xyz[2] == z) :</p>
+
+<p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;raise 
+ &quot;Wrong coordinates: &quot; + str( xyz ) + &quot; != &quot; + str( 
+ [x,y,z] )</p>
+
 <h3><a name=bookmark4>Diagonal Inversion</a></h3>
 
 <p class="whs5">import salome</p>
@@ -662,7 +791,7 @@ if (window.writeIntopicBar)
 
 <p class="whs5">&nbsp;</p>
 
-<p class="whs7"># create an empty mesh 
+<p class="whs8"># create an empty mesh 
  structure</p>
 
 <p class="whs5">mesh = smesh.Mesh() 
@@ -670,7 +799,7 @@ if (window.writeIntopicBar)
 
 <p class="whs5">&nbsp;</p>
 
-<p class="whs7"># create the following 
+<p class="whs8"># create the following 
  mesh:</p>
 
 <p class="whs5"># .----.----.----.</p>
@@ -751,7 +880,7 @@ if (window.writeIntopicBar)
 
 <p class="whs5">&nbsp;</p>
 
-<p class="whs7"># inverse the diagonal 
+<p class="whs8"># inverse the diagonal 
  bb[1] - tt[2]</p>
 
 <p class="whs5">print &quot;\nDiagonal 
@@ -773,973 +902,973 @@ if (window.writeIntopicBar)
 
 <h3><a name=bookmark5>Uniting two Triangles</a></h3>
 
-<p class="whs8">import salome</p>
+<p class="whs9">import salome</p>
 
-<p class="whs8">import smesh</p>
+<p class="whs9">import smesh</p>
 
 <p>&nbsp;</p>
 
 <p># create an empty mesh structure</p>
 
-<p class="whs8">mesh = smesh.Mesh() 
+<p class="whs9">mesh = smesh.Mesh() 
  </p>
 
 <p>&nbsp;</p>
 
 <p># create the following mesh:</p>
 
-<p class="whs8"># .----.----.----.</p>
+<p class="whs9"># .----.----.----.</p>
 
-<p class="whs8"># | &nbsp;&nbsp;/| 
+<p class="whs9"># | &nbsp;&nbsp;/| 
  &nbsp;&nbsp;/| 
  &nbsp;&nbsp;/|</p>
 
-<p class="whs8"># | &nbsp;/ 
+<p class="whs9"># | &nbsp;/ 
  | &nbsp;/ | &nbsp;/ 
  |</p>
 
-<p class="whs8"># | / &nbsp;| 
+<p class="whs9"># | / &nbsp;| 
  / &nbsp;| / &nbsp;|</p>
 
-<p class="whs8"># |/ &nbsp;&nbsp;|/ 
+<p class="whs9"># |/ &nbsp;&nbsp;|/ 
  &nbsp;&nbsp;|/ 
  &nbsp;&nbsp;|</p>
 
-<p class="whs8"># .----.----.----.</p>
+<p class="whs9"># .----.----.----.</p>
 
 <p>&nbsp;</p>
 
-<p class="whs8">bb = [0, 0, 0, 0]</p>
+<p class="whs9">bb = [0, 0, 0, 0]</p>
 
-<p class="whs8">tt = [0, 0, 0, 0]</p>
+<p class="whs9">tt = [0, 0, 0, 0]</p>
 
-<p class="whs8">ff = [0, 0, 0, 0, 
+<p class="whs9">ff = [0, 0, 0, 0, 
  0, 0]</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">bb[0] 
+<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">bb[0] 
  = mesh.AddNode( 0., 0., 0.)</span></p>
 
-<p class="whs8">bb[1] = mesh.AddNode(10., 
+<p class="whs9">bb[1] = mesh.AddNode(10., 
  0., 0.)</p>
 
-<p class="whs8">bb[2] = mesh.AddNode(20., 
+<p class="whs9">bb[2] = mesh.AddNode(20., 
  0., 0.)</p>
 
-<p class="whs8">bb[3] = mesh.AddNode(30., 
+<p class="whs9">bb[3] = mesh.AddNode(30., 
  0., 0.)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">tt[0] = mesh.AddNode( 
+<p class="whs9">tt[0] = mesh.AddNode( 
  0., 15., 0.)</p>
 
-<p class="whs8">tt[1] = mesh.AddNode(10., 
+<p class="whs9">tt[1] = mesh.AddNode(10., 
  15., 0.)</p>
 
-<p class="whs8">tt[2] = mesh.AddNode(20., 
+<p class="whs9">tt[2] = mesh.AddNode(20., 
  15., 0.)</p>
 
-<p class="whs8">tt[3] = mesh.AddNode(30., 
+<p class="whs9">tt[3] = mesh.AddNode(30., 
  15., 0.)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">ff[0] = mesh.AddFace([bb[0], 
+<p class="whs9">ff[0] = mesh.AddFace([bb[0], 
  bb[1], tt[1]])</p>
 
-<p class="whs8">ff[1] = mesh.AddFace([bb[0], 
+<p class="whs9">ff[1] = mesh.AddFace([bb[0], 
  tt[1], tt[0]])</p>
 
-<p class="whs8">ff[2] = mesh.AddFace([bb[1], 
+<p class="whs9">ff[2] = mesh.AddFace([bb[1], 
  bb[2], tt[2]])</p>
 
-<p class="whs8">ff[3] = mesh.AddFace([bb[1], 
+<p class="whs9">ff[3] = mesh.AddFace([bb[1], 
  tt[2], tt[1]])</p>
 
-<p class="whs8">ff[4] = mesh.AddFace([bb[2], 
+<p class="whs9">ff[4] = mesh.AddFace([bb[2], 
  bb[3], tt[3]])</p>
 
-<p class="whs8">ff[5] = mesh.AddFace([bb[2], 
+<p class="whs9">ff[5] = mesh.AddFace([bb[2], 
  tt[3], tt[2]]) </p>
 
 <p>&nbsp;</p>
 
 <p># delete the diagonal bb[1] - tt[2]</p>
 
-<p class="whs8">print &quot;\nUnite 
+<p class="whs9">print &quot;\nUnite 
  two triangles ... &quot;,</p>
 
-<p class="whs8">res = mesh.DeleteDiag(bb[1], 
+<p class="whs9">res = mesh.DeleteDiag(bb[1], 
  tt[2])</p>
 
-<p class="whs8">if not res: print 
+<p class="whs9">if not res: print 
  &quot;failed!&quot;</p>
 
-<p class="whs8">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
+<p class="whs9">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
  &quot;done.&quot;</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
 <p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
  </p>
 
 <h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>
 
-<p class="whs8">import salome</p>
+<p class="whs9">import salome</p>
 
-<p class="whs8">import smesh</p>
+<p class="whs9">import smesh</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># create an empty mesh 
+<p class="whs10"># create an empty mesh 
  structure</p>
 
-<p class="whs8">mesh = smesh.Mesh() 
+<p class="whs9">mesh = smesh.Mesh() 
  </p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># create the following 
+<p class="whs10"># create the following 
  mesh:</p>
 
-<p class="whs8"># .----.----.----.</p>
+<p class="whs9"># .----.----.----.</p>
 
-<p class="whs8"># | &nbsp;&nbsp;/| 
+<p class="whs9"># | &nbsp;&nbsp;/| 
  &nbsp;&nbsp;/| 
  &nbsp;&nbsp;/|</p>
 
-<p class="whs8"># | &nbsp;/ 
+<p class="whs9"># | &nbsp;/ 
  | &nbsp;/ | &nbsp;/ 
  |</p>
 
-<p class="whs8"># | / &nbsp;| 
+<p class="whs9"># | / &nbsp;| 
  / &nbsp;| / &nbsp;|</p>
 
-<p class="whs8"># |/ &nbsp;&nbsp;|/ 
+<p class="whs9"># |/ &nbsp;&nbsp;|/ 
  &nbsp;&nbsp;|/ 
  &nbsp;&nbsp;|</p>
 
-<p class="whs8"># .----.----.----.</p>
+<p class="whs9"># .----.----.----.</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">bb = [0, 0, 0, 0]</p>
+<p class="whs9">bb = [0, 0, 0, 0]</p>
 
-<p class="whs8">tt = [0, 0, 0, 0]</p>
+<p class="whs9">tt = [0, 0, 0, 0]</p>
 
-<p class="whs8">ff = [0, 0, 0, 0, 
+<p class="whs9">ff = [0, 0, 0, 0, 
  0, 0]</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">bb[0] 
+<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">bb[0] 
  = mesh.AddNode( 0., 0., 0.)</span></p>
 
-<p class="whs8">bb[1] = mesh.AddNode(10., 
+<p class="whs9">bb[1] = mesh.AddNode(10., 
  0., 0.)</p>
 
-<p class="whs8">bb[2] = mesh.AddNode(20., 
+<p class="whs9">bb[2] = mesh.AddNode(20., 
  0., 0.)</p>
 
-<p class="whs8">bb[3] = mesh.AddNode(30., 
+<p class="whs9">bb[3] = mesh.AddNode(30., 
  0., 0.)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">tt[0] = mesh.AddNode( 
+<p class="whs9">tt[0] = mesh.AddNode( 
  0., 15., 0.)</p>
 
-<p class="whs8">tt[1] = mesh.AddNode(10., 
+<p class="whs9">tt[1] = mesh.AddNode(10., 
  15., 0.)</p>
 
-<p class="whs8">tt[2] = mesh.AddNode(20., 
+<p class="whs9">tt[2] = mesh.AddNode(20., 
  15., 0.)</p>
 
-<p class="whs8">tt[3] = mesh.AddNode(30., 
+<p class="whs9">tt[3] = mesh.AddNode(30., 
  15., 0.)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">ff[0] = mesh.AddFace([bb[0], 
+<p class="whs9">ff[0] = mesh.AddFace([bb[0], 
  bb[1], tt[1]])</p>
 
-<p class="whs8">ff[1] = mesh.AddFace([bb[0], 
+<p class="whs9">ff[1] = mesh.AddFace([bb[0], 
  tt[1], tt[0]])</p>
 
-<p class="whs8">ff[2] = mesh.AddFace([bb[1], 
+<p class="whs9">ff[2] = mesh.AddFace([bb[1], 
  bb[2], tt[2]])</p>
 
-<p class="whs8">ff[3] = mesh.AddFace([bb[1], 
+<p class="whs9">ff[3] = mesh.AddFace([bb[1], 
  tt[2], tt[1]])</p>
 
-<p class="whs8">ff[4] = mesh.AddFace([bb[2], 
+<p class="whs9">ff[4] = mesh.AddFace([bb[2], 
  bb[3], tt[3]])</p>
 
-<p class="whs8">ff[5] = mesh.AddFace([bb[2], 
+<p class="whs9">ff[5] = mesh.AddFace([bb[2], 
  tt[3], tt[2]])</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># unite a set of triangles</p>
+<p class="whs10"># unite a set of triangles</p>
 
-<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">print 
+<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">print 
  &quot;\nUnite a set of triangles ... &quot;,</span></p>
 
-<p class="whs8">res = mesh.TriToQuad([ff[2], 
+<p class="whs9">res = mesh.TriToQuad([ff[2], 
  ff[3], ff[4], ff[5]], smesh.FT_MinimumAngle, 60.)</p>
 
-<p class="whs8">if not res: print 
+<p class="whs9">if not res: print 
  &quot;failed!&quot;</p>
 
-<p class="whs8">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
+<p class="whs9">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
  &quot;done.&quot;</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">salome.sg.updateObjBrowser(1) 
+<p class="whs9">salome.sg.updateObjBrowser(1) 
  &nbsp;</p>
 
 <h3><a name=bookmark12>Orientation</a></h3>
 
-<p class="whs8">import salome</p>
+<p class="whs9">import salome</p>
 
-<p class="whs8">import smesh</p>
+<p class="whs9">import smesh</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
 <p># create an empty mesh structure</p>
 
-<p class="whs8">mesh = smesh.Mesh() 
+<p class="whs9">mesh = smesh.Mesh() 
  </p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># build five quadrangles:</p>
+<p class="whs10"># build five quadrangles:</p>
 
-<p class="whs8">dx = 10</p>
+<p class="whs9">dx = 10</p>
 
-<p class="whs8">dy = 20</p>
+<p class="whs9">dy = 20</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">n1 
+<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">n1 
  &nbsp;= mesh.AddNode(0.0 
  * dx, 0, 0)</span></p>
 
-<p class="whs8">n2 &nbsp;= 
+<p class="whs9">n2 &nbsp;= 
  mesh.AddNode(1.0 * dx, 0, 0)</p>
 
-<p class="whs8">n3 &nbsp;= 
+<p class="whs9">n3 &nbsp;= 
  mesh.AddNode(2.0 * dx, 0, 0)</p>
 
-<p class="whs8">n4 &nbsp;= 
+<p class="whs9">n4 &nbsp;= 
  mesh.AddNode(3.0 * dx, 0, 0)</p>
 
-<p class="whs8">n5 &nbsp;= 
+<p class="whs9">n5 &nbsp;= 
  mesh.AddNode(4.0 * dx, 0, 0)</p>
 
-<p class="whs8">n6 &nbsp;= 
+<p class="whs9">n6 &nbsp;= 
  mesh.AddNode(5.0 * dx, 0, 0)</p>
 
-<p class="whs8">n7 &nbsp;= 
+<p class="whs9">n7 &nbsp;= 
  mesh.AddNode(0.0 * dx, dy, 0)</p>
 
-<p class="whs8">n8 &nbsp;= 
+<p class="whs9">n8 &nbsp;= 
  mesh.AddNode(1.0 * dx, dy, 0)</p>
 
-<p class="whs8">n9 &nbsp;= 
+<p class="whs9">n9 &nbsp;= 
  mesh.AddNode(2.0 * dx, dy, 0)</p>
 
-<p class="whs8">n10 = mesh.AddNode(3.0 
+<p class="whs9">n10 = mesh.AddNode(3.0 
  * dx, dy, 0)</p>
 
-<p class="whs8">n11 = mesh.AddNode(4.0 
+<p class="whs9">n11 = mesh.AddNode(4.0 
  * dx, dy, 0)</p>
 
-<p class="whs8">n12 = mesh.AddNode(5.0 
+<p class="whs9">n12 = mesh.AddNode(5.0 
  * dx, dy, 0)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">f1 = mesh.AddFace([n1, 
+<p class="whs9">f1 = mesh.AddFace([n1, 
  n2, n8 , n7 ])</p>
 
-<p class="whs8">f2 = mesh.AddFace([n2, 
+<p class="whs9">f2 = mesh.AddFace([n2, 
  n3, n9 , n8 ])</p>
 
-<p class="whs8">f3 = mesh.AddFace([n3, 
+<p class="whs9">f3 = mesh.AddFace([n3, 
  n4, n10, n9 ])</p>
 
-<p class="whs8">f4 = mesh.AddFace([n4, 
+<p class="whs9">f4 = mesh.AddFace([n4, 
  n5, n11, n10])</p>
 
-<p class="whs8">f5 = mesh.AddFace([n5, 
+<p class="whs9">f5 = mesh.AddFace([n5, 
  n6, n12, n11]) </p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># Change the orientation 
+<p class="whs10"># Change the orientation 
  of the second and the fourth faces.</p>
 
-<p class="whs8">mesh.Reorient([2, 
+<p class="whs9">mesh.Reorient([2, 
  4])</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">salome.sg.updateObjBrowser(1) 
+<p class="whs9">salome.sg.updateObjBrowser(1) 
  </p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
 <h3><a name=bookmark7>Cutting Quadrangles</a></h3>
 
-<p class="whs8">import SMESH_mechanic</p>
+<p class="whs9">import SMESH_mechanic</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">smesh = SMESH_mechanic.smesh</p>
+<p class="whs9">smesh = SMESH_mechanic.smesh</p>
 
-<p class="whs8">mesh &nbsp;= 
+<p class="whs9">mesh &nbsp;= 
  SMESH_mechanic.mesh</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># cut two quadrangles: 
+<p class="whs10"># cut two quadrangles: 
  405 and 406</p>
 
-<p class="whs8">mesh.QuadToTri([405, 
+<p class="whs9">mesh.QuadToTri([405, 
  406], smesh.FT_MinimumAngle) &nbsp;</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
 <h3><a name=bookmark8>Smoothing</a></h3>
 
-<p class="whs8">import salome</p>
+<p class="whs9">import salome</p>
 
-<p class="whs8">import geompy</p>
+<p class="whs9">import geompy</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">import SMESH_mechanic</p>
+<p class="whs9">import SMESH_mechanic</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">smesh 
+<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">smesh 
  = SMESH_mechanic.smesh</span></p>
 
-<p class="whs8">mesh = SMESH_mechanic.mesh</p>
+<p class="whs9">mesh = SMESH_mechanic.mesh</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># select the top face</p>
+<p class="whs10"># select the top face</p>
 
-<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">faces 
+<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">faces 
  = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, geompy.ShapeType[&quot;FACE&quot;])</span></p>
 
-<p class="whs8">face = faces[3]</p>
+<p class="whs9">face = faces[3]</p>
 
-<p class="whs8">geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, 
+<p class="whs9">geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, 
  face, &quot;face planar with hole&quot;)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"># create a group of 
+<p class="whs9"># create a group of 
  faces to be smoothed</p>
 
-<p class="whs8">GroupSmooth = mesh.GroupOnGeom(face, 
+<p class="whs9">GroupSmooth = mesh.GroupOnGeom(face, 
  &quot;Group of faces (smooth)&quot;, smesh.FACE)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"># perform smoothing</p>
+<p class="whs9"># perform smoothing</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"># boolean SmoothObject(Object, 
+<p class="whs9"># boolean SmoothObject(Object, 
  IDsOfFixedNodes, MaxNbOfIterations, MaxAspectRatio, Method)</p>
 
-<p class="whs8">res = mesh.SmoothObject(GroupSmooth, 
+<p class="whs9">res = mesh.SmoothObject(GroupSmooth, 
  [], 20, 2., smesh.CENTROIDAL_SMOOTH)</p>
 
-<p class="whs8">print &quot;\nSmoothing 
+<p class="whs9">print &quot;\nSmoothing 
  ... &quot;,</p>
 
-<p class="whs8">if not res: print 
+<p class="whs9">if not res: print 
  &quot;failed!&quot;</p>
 
-<p class="whs8">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
+<p class="whs9">else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print 
  &quot;done.&quot;</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">salome.sg.updateObjBrowser(1) 
+<p class="whs9">salome.sg.updateObjBrowser(1) 
  </p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
 <h3><a name=bookmark9>Extrusion</a></h3>
 
-<p class="whs8">import salome</p>
+<p class="whs9">import salome</p>
 
-<p class="whs8">import geompy</p>
+<p class="whs9">import geompy</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">import SMESH_mechanic</p>
+<p class="whs9">import SMESH_mechanic</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">smesh 
+<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">smesh 
  = SMESH_mechanic.smesh</span></p>
 
-<p class="whs8">mesh = SMESH_mechanic.mesh 
+<p class="whs9">mesh = SMESH_mechanic.mesh 
  </p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># select the top face</p>
+<p class="whs10"># select the top face</p>
 
-<p class="whs8">faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, 
+<p class="whs9">faces = geompy.SubShapeAllSorted(SMESH_mechanic.shape_mesh, 
  geompy.ShapeType[&quot;FACE&quot;])</p>
 
-<p class="whs8">face = faces[7]</p>
+<p class="whs9">face = faces[7]</p>
 
-<p class="whs8">geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, 
+<p class="whs9">geompy.addToStudyInFather(SMESH_mechanic.shape_mesh, 
  face, &quot;face circular top&quot;)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"># create a vector 
+<p class="whs9"># create a vector 
  for extrusion</p>
 
-<p class="whs8">point = smesh.PointStruct(0., 
+<p class="whs9">point = smesh.PointStruct(0., 
  0., 5.)</p>
 
-<p class="whs8">vector = smesh.DirStruct(point)</p>
+<p class="whs9">vector = smesh.DirStruct(point)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"># create a group to 
+<p class="whs9"># create a group to 
  be extruded</p>
 
-<p class="whs8">GroupTri = mesh.GroupOnGeom(face, 
+<p class="whs9">GroupTri = mesh.GroupOnGeom(face, 
  &quot;Group of faces (extrusion)&quot;, smesh.FACE)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"># perform extrusion 
+<p class="whs9"># perform extrusion 
  of the group</p>
 
-<p class="whs8">mesh.ExtrusionSweepObject(GroupTri, 
+<p class="whs9">mesh.ExtrusionSweepObject(GroupTri, 
  vector, 5)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
+<p class="whs10"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> 
  </p>
 
 <h3><a name=bookmark10>Extrusion along a Path</a></h3>
 
-<p class="whs8">import math</p>
+<p class="whs9">import math</p>
 
-<p class="whs8">import salome</p>
+<p class="whs9">import salome</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># Geometry</p>
+<p class="whs10"># Geometry</p>
 
-<p class="whs8">import geompy</p>
+<p class="whs9">import geompy</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9"># 1. Create points</p>
+<p class="whs10"># 1. Create points</p>
 
-<p class="whs8">points = [[0, 0], 
+<p class="whs9">points = [[0, 0], 
  [50, 30], [50, 110], [0, 150], [-80, 150], [-130, 70], [-130, -20]]</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">iv = 1</p>
+<p class="whs9">iv = 1</p>
 
-<p class="whs8">vertices = []</p>
+<p class="whs9">vertices = []</p>
 
-<p class="whs8">for point in points:</p>
+<p class="whs9">for point in points:</p>
 
-<p class="whs10">vert 
+<p class="whs11">vert 
  = geompy.MakeVertex(point[0], point[1], 0)</p>
 
-<p class="whs10">geompy.addToStudy(vert, 
+<p class="whs11">geompy.addToStudy(vert, 
  &quot;Vertex_&quot; + `iv`)</p>
 
-<p class="whs10">vertices.append(vert)</p>
+<p class="whs11">vertices.append(vert)</p>
 
-<p class="whs10">iv 
+<p class="whs11">iv 
  += 1</p>
 
-<p class="whs10">pass</p>
+<p class="whs11">pass</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9"># 2. Create edges and 
+<p class="whs10"># 2. Create edges and 
  wires</p>
 
-<p class="whs8">Edge_straight = geompy.MakeEdge(vertices[0], 
+<p class="whs9">Edge_straight = geompy.MakeEdge(vertices[0], 
  vertices[4])</p>
 
-<p class="whs8">Edge_bezierrr = geompy.MakeBezier(vertices)</p>
+<p class="whs9">Edge_bezierrr = geompy.MakeBezier(vertices)</p>
 
-<p class="whs8">Wire_polyline = geompy.MakePolyline(vertices)</p>
+<p class="whs9">Wire_polyline = geompy.MakePolyline(vertices)</p>
 
-<p class="whs8">Edge_Circle &nbsp;&nbsp;= 
+<p class="whs9">Edge_Circle &nbsp;&nbsp;= 
  geompy.MakeCircleThreePnt(vertices[0], vertices[1], vertices[2])</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">geompy.addToStudy(Edge_straight, 
+<p class="whs9">geompy.addToStudy(Edge_straight, 
  &quot;Edge_straight&quot;)</p>
 
-<p class="whs8">geompy.addToStudy(Edge_bezierrr, 
+<p class="whs9">geompy.addToStudy(Edge_bezierrr, 
  &quot;Edge_bezierrr&quot;)</p>
 
-<p class="whs8">geompy.addToStudy(Wire_polyline, 
+<p class="whs9">geompy.addToStudy(Wire_polyline, 
  &quot;Wire_polyline&quot;)</p>
 
-<p class="whs8">geompy.addToStudy(Edge_Circle 
+<p class="whs9">geompy.addToStudy(Edge_Circle 
  &nbsp;, &quot;Edge_Circle&quot;)</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9"># 3. Explode wire on 
+<p class="whs10"># 3. Explode wire on 
  edges, as they will be used for mesh extrusion</p>
 
-<p class="whs8">Wire_polyline_edges 
+<p class="whs9">Wire_polyline_edges 
  = geompy.SubShapeAll(Wire_polyline, geompy.ShapeType[&quot;EDGE&quot;])</p>
 
-<p class="whs8">for ii in range(len(Wire_polyline_edges)):</p>
+<p class="whs9">for ii in range(len(Wire_polyline_edges)):</p>
 
-<p class="whs10">geompy.addToStudyInFather(Wire_polyline, 
+<p class="whs11">geompy.addToStudyInFather(Wire_polyline, 
  Wire_polyline_edges[ii], &quot;Edge_&quot; + `ii + 1`)</p>
 
-<p class="whs10">pass</p>
+<p class="whs11">pass</p>
 
-<p class="whs11">&nbsp;</p>
+<p class="whs12">&nbsp;</p>
 
-<p class="whs9"># Mesh</p>
+<p class="whs10"># Mesh</p>
 
-<p class="whs8">import smesh</p>
+<p class="whs9">import smesh</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs12"># Mesh 
+<p class="whs13"># Mesh 
  the given shape with the given 1d hypothesis</p>
 
-<p class="whs13">def 
+<p class="whs14">def 
  Mesh1D(shape1d, nbSeg, name):</p>
 
-<p class="whs13">&nbsp;&nbsp;mesh1d_tool 
+<p class="whs14">&nbsp;&nbsp;mesh1d_tool 
  = smesh.Mesh(shape1d, name)</p>
 
-<p class="whs13">&nbsp;&nbsp;algo 
+<p class="whs14">&nbsp;&nbsp;algo 
  = mesh1d_tool.Segment()</p>
 
-<p class="whs13">&nbsp;&nbsp;hyp 
+<p class="whs14">&nbsp;&nbsp;hyp 
  &nbsp;= algo.NumberOfSegments(nbSeg)</p>
 
-<p class="whs13">&nbsp;&nbsp;isDone 
+<p class="whs14">&nbsp;&nbsp;isDone 
  = mesh1d_tool.Compute()</p>
 
-<p class="whs13">&nbsp;&nbsp;if 
+<p class="whs14">&nbsp;&nbsp;if 
  not isDone: print 'Mesh ', name, ': computation failed'</p>
 
-<p class="whs13">&nbsp;&nbsp;return 
+<p class="whs14">&nbsp;&nbsp;return 
  mesh1d_tool</p>
 
-<p class="whs12"># Create 
+<p class="whs13"># Create 
  a mesh with six nodes, seven edges and two quadrangle faces</p>
 
-<p class="whs13">def 
+<p class="whs14">def 
  MakeQuadMesh2(mesh_name):</p>
 
-<p class="whs13">&nbsp;&nbsp;quad_1 
+<p class="whs14">&nbsp;&nbsp;quad_1 
  = smesh.Mesh(name = mesh_name)</p>
 
-<p class="whs13">&nbsp;&nbsp;</p>
+<p class="whs14">&nbsp;&nbsp;</p>
 
-<p class="whs13">&nbsp;&nbsp;<span 
+<p class="whs14">&nbsp;&nbsp;<span 
  style="font-family: 'Times New Roman', serif;"># 
  six nodes</span></p>
 
-<p class="whs13">&nbsp;&nbsp;n1 
+<p class="whs14">&nbsp;&nbsp;n1 
  = quad_1.AddNode(0, 20, 10)</p>
 
-<p class="whs13">&nbsp;&nbsp;n2 
+<p class="whs14">&nbsp;&nbsp;n2 
  = quad_1.AddNode(0, 40, 10)</p>
 
-<p class="whs13">&nbsp;&nbsp;n3 
+<p class="whs14">&nbsp;&nbsp;n3 
  = quad_1.AddNode(0, 40, 30)</p>
 
-<p class="whs13">&nbsp;&nbsp;n4 
+<p class="whs14">&nbsp;&nbsp;n4 
  = quad_1.AddNode(0, 20, 30)</p>
 
-<p class="whs13">&nbsp;&nbsp;n5 
+<p class="whs14">&nbsp;&nbsp;n5 
  = quad_1.AddNode(0, &nbsp;0, 
  30)</p>
 
-<p class="whs13">&nbsp;&nbsp;n6 
+<p class="whs14">&nbsp;&nbsp;n6 
  = quad_1.AddNode(0, &nbsp;0, 
  10)</p>
 
-<p class="whs13">&nbsp;&nbsp;</p>
+<p class="whs14">&nbsp;&nbsp;</p>
 
-<p class="whs13">&nbsp;&nbsp;<span 
+<p class="whs14">&nbsp;&nbsp;<span 
  style="font-family: 'Times New Roman', serif;"># 
  seven edges</span></p>
 
-<p class="whs13">&nbsp;&nbsp;quad_1.AddEdge([n1, 
+<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n1, 
  n2]) # 1</p>
 
-<p class="whs13">&nbsp;&nbsp;quad_1.AddEdge([n2, 
+<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n2, 
  n3]) # 2</p>
 
-<p class="whs13">&nbsp;&nbsp;quad_1.AddEdge([n3, 
+<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n3, 
  n4]) # 3</p>
 
-<p class="whs13">&nbsp;&nbsp;quad_1.AddEdge([n4, 
+<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n4, 
  n1]) # 4</p>
 
-<p class="whs13">&nbsp;&nbsp;quad_1.AddEdge([n4, 
+<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n4, 
  n5]) # 5</p>
 
-<p class="whs13">&nbsp;&nbsp;quad_1.AddEdge([n5, 
+<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n5, 
  n6]) # 6</p>
 
-<p class="whs13">&nbsp;&nbsp;quad_1.AddEdge([n6, 
+<p class="whs14">&nbsp;&nbsp;quad_1.AddEdge([n6, 
  n1]) # 7</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs13">&nbsp;&nbsp;<span 
+<p class="whs14">&nbsp;&nbsp;<span 
  style="font-family: 'Times New Roman', serif;"># 
  two quadrangle faces</span></p>
 
-<p class="whs13">&nbsp;&nbsp;quad_1.AddFace([n1, 
+<p class="whs14">&nbsp;&nbsp;quad_1.AddFace([n1, 
  n2, n3, n4]) # 8</p>
 
-<p class="whs13">&nbsp;&nbsp;quad_1.AddFace([n1, 
+<p class="whs14">&nbsp;&nbsp;quad_1.AddFace([n1, 
  n4, n5, n6]) # 9</p>
 
-<p class="whs13">&nbsp;&nbsp;return 
+<p class="whs14">&nbsp;&nbsp;return 
  [quad_1, [1,2,3,4,5,6,7], [8,9]]</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs12"># Path 
+<p class="whs13"># Path 
  meshes</p>
 
-<p class="whs13">Edge_straight_mesh 
+<p class="whs14">Edge_straight_mesh 
  = Mesh1D(Edge_straight, 7, &quot;Edge_straight&quot;)</p>
 
-<p class="whs13">Edge_bezierrr_mesh 
+<p class="whs14">Edge_bezierrr_mesh 
  = Mesh1D(Edge_bezierrr, 7, &quot;Edge_bezierrr&quot;)</p>
 
-<p class="whs13">Wire_polyline_mesh 
+<p class="whs14">Wire_polyline_mesh 
  = Mesh1D(Wire_polyline, 3, &quot;Wire_polyline&quot;)</p>
 
-<p class="whs13">Edge_Circle_mesh 
+<p class="whs14">Edge_Circle_mesh 
  &nbsp;&nbsp;= 
  Mesh1D(Edge_Circle &nbsp;, 
  8, &quot;Edge_Circle&quot;)</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs12"># Initial 
+<p class="whs13"># Initial 
  meshes (to be extruded)</p>
 
-<p class="whs13">[quad_1, 
+<p class="whs14">[quad_1, 
  ee_1, ff_1] = MakeQuadMesh2(&quot;quad_1&quot;)</p>
 
-<p class="whs13">[quad_2, 
+<p class="whs14">[quad_2, 
  ee_2, ff_2] = MakeQuadMesh2(&quot;quad_2&quot;)</p>
 
-<p class="whs13">[quad_3, 
+<p class="whs14">[quad_3, 
  ee_3, ff_3] = MakeQuadMesh2(&quot;quad_3&quot;)</p>
 
-<p class="whs13">[quad_4, 
+<p class="whs14">[quad_4, 
  ee_4, ff_4] = MakeQuadMesh2(&quot;quad_4&quot;)</p>
 
-<p class="whs13">[quad_5, 
+<p class="whs14">[quad_5, 
  ee_5, ff_5] = MakeQuadMesh2(&quot;quad_5&quot;)</p>
 
-<p class="whs13">[quad_6, 
+<p class="whs14">[quad_6, 
  ee_6, ff_6] = MakeQuadMesh2(&quot;quad_6&quot;)</p>
 
-<p class="whs13">[quad_7, 
+<p class="whs14">[quad_7, 
  ee_7, ff_7] = MakeQuadMesh2(&quot;quad_7&quot;)</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs12"># ExtrusionAlongPath</p>
+<p class="whs13"># ExtrusionAlongPath</p>
 
-<p class="whs12"># IDsOfElements, 
+<p class="whs13"># IDsOfElements, 
  PathMesh, PathShape, NodeStart,</p>
 
-<p class="whs12"># HasAngles, 
+<p class="whs13"># HasAngles, 
  Angles, HasRefPoint, RefPoint</p>
 
-<p class="whs13">refPoint 
+<p class="whs14">refPoint 
  = smesh.PointStruct(0, 0, 0)</p>
 
-<p class="whs13">a10 
+<p class="whs14">a10 
  = 10.0*math.pi/180.0</p>
 
-<p class="whs13">a45 
+<p class="whs14">a45 
  = 45.0*math.pi/180.0</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs12"># 1. 
+<p class="whs13"># 1. 
  Extrusion of two mesh edges along a straight path</p>
 
-<p class="whs13">error 
+<p class="whs14">error 
  = quad_1.ExtrusionAlongPath([1,2], Edge_straight_mesh, Edge_straight, 
  1,</p>
 
-<p class="whs13">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
+<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
  [], 0, refPoint)</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs12"># 2. 
+<p class="whs13"># 2. 
  Extrusion of one mesh edge along a curved path</p>
 
-<p class="whs13">error 
+<p class="whs14">error 
  = quad_2.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,</p>
 
-<p class="whs13">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
+<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
  [], 0, refPoint)</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs12"># 3. 
+<p class="whs13"># 3. 
  Extrusion of one mesh edge along a curved path with usage of angles</p>
 
-<p class="whs13">error 
+<p class="whs14">error 
  = quad_3.ExtrusionAlongPath([2], Edge_bezierrr_mesh, Edge_bezierrr, 1,</p>
 
-<p class="whs13">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
+<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
  [a45, a45, a45, 0, -a45, -a45, -a45], 0, refPoint)</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs12"># 4. 
+<p class="whs13"># 4. 
  Extrusion of one mesh edge along the path, which is a part of a meshed 
  wire</p>
 
-<p class="whs13">error 
+<p class="whs14">error 
  = quad_4.ExtrusionAlongPath([4], Wire_polyline_mesh, Wire_polyline_edges[0], 
  1,</p>
 
-<p class="whs13">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
+<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
  [a10, a10, a10], 0, refPoint)</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs12"># 5. 
+<p class="whs13"># 5. 
  Extrusion of two mesh faces along the path, which is a part of a meshed 
  wire</p>
 
-<p class="whs13">error 
+<p class="whs14">error 
  = quad_5.ExtrusionAlongPath(ff_5 , Wire_polyline_mesh, Wire_polyline_edges[2], 
  4,</p>
 
-<p class="whs13">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
+<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
  [], 0, refPoint)</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs12"># 6. 
+<p class="whs13"># 6. 
  Extrusion of two mesh faces along a closed path</p>
 
-<p class="whs13">error 
+<p class="whs14">error 
  = quad_6.ExtrusionAlongPath(ff_6 , Edge_Circle_mesh, Edge_Circle, 1,</p>
 
-<p class="whs13">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
+<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, 
  [], 0, refPoint)</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs12"># 7. 
+<p class="whs13"># 7. 
  Extrusion of two mesh faces along a closed path with usage of angles</p>
 
-<p class="whs13">error 
+<p class="whs14">error 
  = quad_7.ExtrusionAlongPath(ff_7, Edge_Circle_mesh, Edge_Circle, 1,</p>
 
-<p class="whs13">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
+<p class="whs14">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, 
  [a45, -a45, a45, -a45, a45, -a45, a45, -a45], 0, refPoint)</p>
 
-<p class="whs13">&nbsp;</p>
+<p class="whs14">&nbsp;</p>
 
-<p class="whs13">salome.sg.updateObjBrowser(1) 
+<p class="whs14">salome.sg.updateObjBrowser(1) 
  </p>
 
 <h3><a name=bookmark11>Revolution</a></h3>
 
-<p class="whs8">import math</p>
+<p class="whs9">import math</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">import SMESH_mechanic</p>
+<p class="whs9">import SMESH_mechanic</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"><span style="font-family: 'Lucida Console', monospace;">mesh 
+<p class="whs9"><span style="font-family: 'Lucida Console', monospace;">mesh 
  &nbsp;= SMESH_mechanic.mesh</span></p>
 
-<p class="whs8">smesh = SMESH_mechanic.smesh</p>
+<p class="whs9">smesh = SMESH_mechanic.smesh</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># create a group of faces 
+<p class="whs10"># create a group of faces 
  to be revolved</p>
 
-<p class="whs8">FacesRotate = [492, 
+<p class="whs9">FacesRotate = [492, 
  493, 502, 503]</p>
 
-<p class="whs8">GroupRotate = mesh.CreateGroup(SMESH.FACE,&quot;Group 
+<p class="whs9">GroupRotate = mesh.CreateGroup(SMESH.FACE,&quot;Group 
  of faces (rotate)&quot;)</p>
 
-<p class="whs8">GroupRotate.Add(FacesRotate)</p>
+<p class="whs9">GroupRotate.Add(FacesRotate)</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9"># define revolution angle 
+<p class="whs10"># define revolution angle 
  and axis</p>
 
-<p class="whs8">angle45 = 45 * math.pi 
+<p class="whs9">angle45 = 45 * math.pi 
  / 180</p>
 
-<p class="whs8">axisXYZ = SMESH.AxisStruct(-38.3128, 
+<p class="whs9">axisXYZ = SMESH.AxisStruct(-38.3128, 
  -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs9"># perform revolution 
+<p class="whs10"># perform revolution 
  of an object</p>
 
-<p class="whs8">mesh.RotationSweepObject(GroupRotate, 
+<p class="whs9">mesh.RotationSweepObject(GroupRotate, 
  axisXYZ, angle45, 4, 1e-5) </p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
 <h3><a name=bookmark13>Pattern Mapping</a></h3>
 
-<p class="whs8">import geompy</p>
+<p class="whs9">import geompy</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8">import smesh</p>
+<p class="whs9">import smesh</p>
 
-<p class="whs8">&nbsp;</p>
+<p class="whs9">&nbsp;</p>
 
-<p class="whs8"># define the geometry</p>
+<p class="whs9"># define the geometry</p>
 
-<p class="whs9">Box_1 = geompy.MakeBoxDXDYDZ(200., 
+<p class="whs10">Box_1 = geompy.MakeBoxDXDYDZ(200., 
  200., 200.)</p>
 
-<p class="whs9">geompy.addToStudy(Box_1, 
+<p class="whs10">geompy.addToStudy(Box_1, 
  &quot;Box_1&quot;)</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9">faces = geompy.SubShapeAll(Box_1, 
+<p class="whs10">faces = geompy.SubShapeAll(Box_1, 
  geompy.ShapeType[&quot;FACE&quot;])</p>
 
-<p class="whs9">Face_1 = faces[0]</p>
+<p class="whs10">Face_1 = faces[0]</p>
 
-<p class="whs9">Face_2 = faces[1]</p>
+<p class="whs10">Face_2 = faces[1]</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9">geompy.addToStudyInFather(Box_1, 
+<p class="whs10">geompy.addToStudyInFather(Box_1, 
  Face_1, &quot;Face_1&quot;)</p>
 
-<p class="whs9">geompy.addToStudyInFather(Box_1, 
+<p class="whs10">geompy.addToStudyInFather(Box_1, 
  Face_2, &quot;Face_2&quot;)</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs8"># build a quadrangle 
+<p class="whs9"># build a quadrangle 
  mesh 3x3 on Face_1</p>
 
-<p class="whs9">Mesh_1 = smesh.Mesh(Face_1)</p>
+<p class="whs10">Mesh_1 = smesh.Mesh(Face_1)</p>
 
-<p class="whs9">algo1D = Mesh_1.Segment()</p>
+<p class="whs10">algo1D = Mesh_1.Segment()</p>
 
-<p class="whs9">algo1D.NumberOfSegments(3)</p>
+<p class="whs10">algo1D.NumberOfSegments(3)</p>
 
-<p class="whs9">Mesh_1.Quadrangle()</p>
+<p class="whs10">Mesh_1.Quadrangle()</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9">isDone = Mesh_1.Compute()</p>
+<p class="whs10">isDone = Mesh_1.Compute()</p>
 
-<p class="whs9">if not isDone: print 
+<p class="whs10">if not isDone: print 
  'Mesh Mesh_1 : computation failed'</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs8"># build a triangle 
+<p class="whs9"># build a triangle 
  mesh on Face_2</p>
 
-<p class="whs9">Mesh_2 = smesh.Mesh(Face_2)</p>
+<p class="whs10">Mesh_2 = smesh.Mesh(Face_2)</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9">algo1D = Mesh_2.Segment()</p>
+<p class="whs10">algo1D = Mesh_2.Segment()</p>
 
-<p class="whs9">algo1D.NumberOfSegments(1)</p>
+<p class="whs10">algo1D.NumberOfSegments(1)</p>
 
-<p class="whs9">algo2D = Mesh_2.Triangle()</p>
+<p class="whs10">algo2D = Mesh_2.Triangle()</p>
 
-<p class="whs9">algo2D.MaxElementArea(240)</p>
+<p class="whs10">algo2D.MaxElementArea(240)</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9">isDone = Mesh_2.Compute()</p>
+<p class="whs10">isDone = Mesh_2.Compute()</p>
 
-<p class="whs9">if not isDone: print 
+<p class="whs10">if not isDone: print 
  'Mesh Mesh_2 : computation failed'</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs8"># create a pattern</p>
+<p class="whs9"># create a pattern</p>
 
-<p class="whs9">pattern = smesh.GetPattern()</p>
+<p class="whs10">pattern = smesh.GetPattern()</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9">isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), 
+<p class="whs10">isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), 
  Face_2, 0)</p>
 
-<p class="whs9">if (isDone != 1): print 
+<p class="whs10">if (isDone != 1): print 
  'LoadFromFace :', pattern.GetErrorCode()</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs8"># apply the pattern 
+<p class="whs9"># apply the pattern 
  to a face of the first mesh</p>
 
-<p class="whs9">pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), 
+<p class="whs10">pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), 
  [17], 0, 0)</p>
 
-<p class="whs9">&nbsp;</p>
+<p class="whs10">&nbsp;</p>
 
-<p class="whs9">isDone = pattern.MakeMesh(Mesh_1.GetMesh(), 
+<p class="whs10">isDone = pattern.MakeMesh(Mesh_1.GetMesh(), 
  0, 0)</p>
 
-<p class="whs9">if (isDone != 1): print 
+<p class="whs10">if (isDone != 1): print 
  'MakeMesh :', pattern.GetErrorCode() &nbsp;</p>
 
 <script type="text/javascript" language="javascript1.2">