Salome HOME
Warn about direct SMESH idl usage: smesh python package have to be used where it...
[modules/smesh.git] / doc / salome / gui / SMESH / quality_controls.htm
index 9b7239010b58653a77c25cfe8b0c5202ce6868e4..2af942145135939c5a285bd6b576989cb1a20909 100755 (executable)
@@ -41,47 +41,55 @@ 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\nQuality Controls");\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>Quality Controls</h1>\r
 \r
 <h3><a name=bookmark>Free Borders</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import salome</p>\r
 \r
 <p class="whs1">import geompy</p>\r
@@ -228,6 +236,9 @@ else
 \r
 <h3><a name=bookmark1>Borders at Multiconnection</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import salome</p>\r
 \r
 <p class="whs1">import geompy</p>\r
@@ -394,6 +405,9 @@ else
 \r
 <h3><a name=bookmark2>Length 1D</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs1">import salome</p>\r
@@ -556,6 +570,9 @@ else
 \r
 <h3><a name=bookmark3>Free Edges</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import SMESH</p>\r
 \r
 <p class="whs1">import SMESH_mechanic</p>\r
@@ -574,13 +591,11 @@ else
 \r
 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs1">&nbsp;</p>\r
 \r
 <p class="whs2"># Criterion : AREA &gt; \r
  30</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
-\r
 <p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>\r
 \r
 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
@@ -589,7 +604,7 @@ else
  aFunctor )</p>\r
 \r
 <p class="whs1">aPredicate.SetMargin( \r
30 )</p>\r
95 )</p>\r
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
@@ -609,44 +624,58 @@ else
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2"># Criterion : FREE EDGES</p>\r
+<p class="whs2"># Criterion : Free Edges</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
 <p class="whs1">aPredicate = aFilterMgr.CreateFreeEdges()</p>\r
 \r
-<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>\r
+<p class="whs1">aPredicate.SetMesh( \r
+ mesh )</p>\r
 \r
-<p class="whs1">aFilter.SetPredicate( \r
- aPredicate )</p>\r
+<p class="whs1">aBorders = aPredicate.GetBorders()</p>\r
 \r
-<p class="whs1">&nbsp;</p>\r
+<p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs1">anIds = aFilter.GetElementsId( \r
- mesh )</p>\r
+<p class="whs2"># create groups</p>\r
+\r
+<p class="whs1">aGroupF = mesh.CreateGroup( \r
+ SMESH.FACE, &quot;Faces with free edges&quot; )</p>\r
+\r
+<p class="whs1">aGroupN = mesh.CreateGroup( \r
+ SMESH.NODE, &quot;Nodes on free edges&quot; )</p>\r
 \r
 <p class="whs2">&nbsp;</p>\r
 \r
-<p class="whs2"># print the result</p>\r
+<p class="whs2"># fill groups with elements, \r
+ corresponding to the criterion</p>\r
+\r
+<p class="whs1">print &quot;&quot;</p>\r
 \r
 <p class="whs1">print &quot;Criterion: \r
- Free edges Nb = &quot;, len( anIds )</p>\r
+ Free edges Nb = &quot;, len( aBorders )</p>\r
 \r
 <p class="whs1">for i in range( \r
- len( anIds ) ):</p>\r
+ len( aBorders ) ):</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;aBorder \r
+ = aBorders[ i ]</p>\r
 \r
 <p class="whs1">&nbsp;&nbsp;print \r
anIds[ i ]</p>\r
&quot;Face # &quot;, aBorder.myElemId, &quot; : Edge between nodes (&quot;,</p>\r
 \r
-<p class="whs2">&nbsp;</p>\r
+<p class="whs1">&nbsp;&nbsp;print \r
+ aBorder.myPnt1, &quot;, &quot;, aBorder.myPnt2, &quot;)&quot;</p>\r
 \r
-<p class="whs2"># create a group</p>\r
+<p class="whs1">&nbsp;&nbsp;</p>\r
 \r
-<p class="whs1">aGroup = mesh.CreateGroup\r
SMESH.EDGE, &quot;Free edges&quot; )</p>\r
+<p class="whs1">&nbsp;&nbsp;aGroupF.Add\r
[aBorder.myElemId] )</p>\r
 \r
-<p class="whs1">aGroup.Add( anIds \r
- )</p>\r
+<p class="whs1">&nbsp;&nbsp;aGroupN.Add( \r
+ [aBorder.myPnt1, aBorder.myPnt2] )</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
 \r
 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
  </p>\r
@@ -655,6 +684,9 @@ else
 \r
 <h3><a name=bookmark4>Length 2D</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import salome</p>\r
 \r
 <p class="whs1">import geompy</p>\r
@@ -820,6 +852,9 @@ else
 \r
 <h3><a name=bookmark5>Borders at Multiconnection 2D</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import salome</p>\r
 \r
 <p class="whs1">import geompy</p>\r
@@ -977,6 +1012,9 @@ else
 \r
 <h3><a name=bookmark6>Area</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import SMESH</p>\r
 \r
 <p class="whs1">import SMESH_mechanic</p>\r
@@ -1056,6 +1094,9 @@ else
 \r
 <h3><a name=bookmark7>Taper</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import SMESH</p>\r
 \r
 <p class="whs1">import SMESH_mechanic</p>\r
@@ -1135,6 +1176,9 @@ else
 \r
 <h3><a name=bookmark8>Aspect Ratio</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import SMESH</p>\r
 \r
 <p class="whs1">import SMESH_mechanic</p>\r
@@ -1214,6 +1258,9 @@ else
 \r
 <h3><a name=bookmark9>Minimum Angle</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">&nbsp;</p>\r
 \r
 <p class="whs1">import SMESH</p>\r
@@ -1295,6 +1342,9 @@ else
 \r
 <h3><a name=bookmark10>Warping</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import SMESH</p>\r
 \r
 <p class="whs1">import SMESH_mechanic</p>\r
@@ -1372,6 +1422,9 @@ else
 \r
 <h3><a name=bookmark12>Skew</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import SMESH</p>\r
 \r
 <p class="whs1">import SMESH_mechanic</p>\r
@@ -1451,6 +1504,9 @@ else
 \r
 <h3><a name=bookmark11>Aspect Ratio 3D</a></h3>\r
 \r
+<p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.\r
+<br>&nbsp;\r
+\r
 <p class="whs1">import SMESH</p>\r
 \r
 <p class="whs1">import SMESH_mechanic_tetra</p>\r
@@ -1523,6 +1579,87 @@ else
 \r
 <p class="whs1">&nbsp;</p>\r
 \r
+<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
+ </p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<h3><a name=Volume>Volume</a></h3>\r
+\r
+<p class="whs1">import SMESH</p>\r
+\r
+<p class="whs1">import SMESH_mechanic_tetra</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">smesh &nbsp;= \r
+ SMESH_mechanic_tetra.smesh</p>\r
+\r
+<p class="whs1">mesh &nbsp;&nbsp;= \r
+ SMESH_mechanic_tetra.mesh</p>\r
+\r
+<p class="whs1">salome = SMESH_mechanic_tetra.salome</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"># Criterion : VOLUME &lt; \r
+ 7</p>\r
+\r
+<p class="whs2">&nbsp;</p>\r
+\r
+<p class="whs1">aFunctor = aFilterMgr.CreateVolume3D()</p>\r
+\r
+<p class="whs1">aPredicate = aFilterMgr.CreateLessThan()</p>\r
+\r
+<p class="whs1">aPredicate.SetNumFunctor( \r
+ aFunctor )</p>\r
+\r
+<p class="whs1">aPredicate.SetMargin( \r
+ 7 )</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>\r
+\r
+<p class="whs1">aFilter.SetPredicate( \r
+ aPredicate )</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs1">anIds = aFilter.GetElementsId( \r
+ mesh )</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"># print the result</p>\r
+\r
+<p class="whs1">print &quot;&quot;</p>\r
+\r
+<p class="whs1">print &quot;Criterion: \r
+ Volume &lt; 7 Nb = &quot;, len( anIds )</p>\r
+\r
+<p class="whs1">for i in range( \r
+ len( anIds ) ):</p>\r
+\r
+<p class="whs1">&nbsp;&nbsp;print \r
+ anIds[ i ]</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
+<p class="whs2"># create a group</p>\r
+\r
+<p class="whs1">aGroup = mesh.CreateGroup( \r
+ SMESH.VOLUME, &quot;Volume &lt; 7&quot; )</p>\r
+\r
+<p class="whs1">aGroup.Add( anIds \r
+ )</p>\r
+\r
+<p class="whs1">&nbsp;</p>\r
+\r
 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
  </p>\r
 \r