\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
<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