<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> \r
+\r
<p class="whs1">import salome</p>\r
\r
<p class="whs1">import geompy</p>\r
\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> \r
+\r
<p class="whs1">import salome</p>\r
\r
<p class="whs1">import geompy</p>\r
\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> \r
+\r
<p class="whs2"> </p>\r
\r
<p class="whs1">import salome</p>\r
\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> \r
+\r
<p class="whs1">import SMESH</p>\r
\r
<p class="whs1">import SMESH_mechanic</p>\r
\r
<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs1"> </p>\r
\r
<p class="whs2"># Criterion : AREA > \r
30</p>\r
\r
-<p class="whs2"> </p>\r
-\r
<p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>\r
\r
<p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>\r
aFunctor )</p>\r
\r
<p class="whs1">aPredicate.SetMargin( \r
- 30 )</p>\r
+ 95 )</p>\r
\r
<p class="whs1"> </p>\r
\r
\r
<p class="whs2"> </p>\r
\r
-<p class="whs2"># Criterion : FREE EDGES</p>\r
+<p class="whs2"># Criterion : Free Edges</p>\r
\r
<p class="whs2"> </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"> </p>\r
+<p class="whs2"> </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, "Faces with free edges" )</p>\r
+\r
+<p class="whs1">aGroupN = mesh.CreateGroup( \r
+ SMESH.NODE, "Nodes on free edges" )</p>\r
\r
<p class="whs2"> </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 ""</p>\r
\r
<p class="whs1">print "Criterion: \r
- Free edges Nb = ", len( anIds )</p>\r
+ Free edges Nb = ", 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"> aBorder \r
+ = aBorders[ i ]</p>\r
\r
<p class="whs1"> print \r
- anIds[ i ]</p>\r
+ "Face # ", aBorder.myElemId, " : Edge between nodes (",</p>\r
\r
-<p class="whs2"> </p>\r
+<p class="whs1"> print \r
+ aBorder.myPnt1, ", ", aBorder.myPnt2, ")"</p>\r
\r
-<p class="whs2"># create a group</p>\r
+<p class="whs1"> </p>\r
\r
-<p class="whs1">aGroup = mesh.CreateGroup( \r
- SMESH.EDGE, "Free edges" )</p>\r
+<p class="whs1"> aGroupF.Add( \r
+ [aBorder.myElemId] )</p>\r
\r
-<p class="whs1">aGroup.Add( anIds \r
- )</p>\r
+<p class="whs1"> aGroupN.Add( \r
+ [aBorder.myPnt1, aBorder.myPnt2] )</p>\r
+\r
+<p class="whs1"> </p>\r
\r
<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
</p>\r
\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> \r
+\r
<p class="whs1">import salome</p>\r
\r
<p class="whs1">import geompy</p>\r
\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> \r
+\r
<p class="whs1">import salome</p>\r
\r
<p class="whs1">import geompy</p>\r
\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> \r
+\r
<p class="whs1">import SMESH</p>\r
\r
<p class="whs1">import SMESH_mechanic</p>\r
\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> \r
+\r
<p class="whs1">import SMESH</p>\r
\r
<p class="whs1">import SMESH_mechanic</p>\r
\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> \r
+\r
<p class="whs1">import SMESH</p>\r
\r
<p class="whs1">import SMESH_mechanic</p>\r
\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> \r
+\r
<p class="whs1"> </p>\r
\r
<p class="whs1">import SMESH</p>\r
\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> \r
+\r
<p class="whs1">import SMESH</p>\r
\r
<p class="whs1">import SMESH_mechanic</p>\r
\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> \r
+\r
<p class="whs1">import SMESH</p>\r
\r
<p class="whs1">import SMESH_mechanic</p>\r
\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> \r
+\r
<p class="whs1">import SMESH</p>\r
\r
<p class="whs1">import SMESH_mechanic_tetra</p>\r
\r
<p class="whs1"> </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"> </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"> </p>\r
+\r
+<p class="whs1">smesh = \r
+ SMESH_mechanic_tetra.smesh</p>\r
+\r
+<p class="whs1">mesh = \r
+ SMESH_mechanic_tetra.mesh</p>\r
+\r
+<p class="whs1">salome = SMESH_mechanic_tetra.salome</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"># Criterion : VOLUME < \r
+ 7</p>\r
+\r
+<p class="whs2"> </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"> </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"> </p>\r
+\r
+<p class="whs1">anIds = aFilter.GetElementsId( \r
+ mesh )</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"># print the result</p>\r
+\r
+<p class="whs1">print ""</p>\r
+\r
+<p class="whs1">print "Criterion: \r
+ Volume < 7 Nb = ", len( anIds )</p>\r
+\r
+<p class="whs1">for i in range( \r
+ len( anIds ) ):</p>\r
+\r
+<p class="whs1"> print \r
+ anIds[ i ]</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
+<p class="whs2"># create a group</p>\r
+\r
+<p class="whs1">aGroup = mesh.CreateGroup( \r
+ SMESH.VOLUME, "Volume < 7" )</p>\r
+\r
+<p class="whs1">aGroup.Add( anIds \r
+ )</p>\r
+\r
+<p class="whs1"> </p>\r
+\r
<p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
</p>\r
\r