1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
\r
6 <title>Quality Controls</title>
\r
7 <meta http-equiv="content-type" content="text/html; charset=windows-1252">
\r
8 <meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style type="text/css">
\r
10 p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
\r
11 p.whs2 { margin-top:0pt; margin-bottom:0pt; }
\r
12 p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
\r
14 </style><script type="text/javascript" language="JavaScript">
\r
16 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
\r
18 var strNSS = "<style type='text/css'>";
\r
19 strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
\r
20 strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
\r
21 strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
\r
22 strNSS +="</style>";
\r
23 document.write(strNSS);
\r
27 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
\r
30 if (innerWidth != origWidth || innerHeight != origHeight)
\r
33 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
\r
34 origWidth = innerWidth;
\r
35 origHeight = innerHeight;
\r
41 <style type="text/css">
\r
43 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
\r
45 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
\r
46 <script type="text/javascript" language="javascript" src="whver.js"></script>
\r
47 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
\r
48 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
\r
49 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
\r
51 <body><script type="text/javascript" language="javascript1.2">
\r
53 if (window.gbWhTopic)
\r
55 if (window.addTocInfo)
\r
57 addTocInfo("MESH module\nTUI Scripts\nQuality Controls");
\r
58 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");
\r
61 if (window.writeBtnStyle)
\r
64 if (window.writeIntopicBar)
\r
67 if (window.setRelStartPage)
\r
69 setRelStartPage("smesh.htm");
\r
78 document.location.reload();
\r
81 <h1>Quality Controls</h1>
\r
83 <h3><a name=bookmark>Free Borders</a></h3>
\r
85 <p class="whs1">import salome</p>
\r
87 <p class="whs1">import geompy</p>
\r
89 <p class="whs1">import SMESH</p>
\r
91 <p class="whs1">import StdMeshers</p>
\r
93 <p class="whs1"> </p>
\r
95 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
\r
96 "SMESH")</p>
\r
98 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
\r
100 <p class="whs2"> </p>
\r
102 <p class="whs2"># create a box without
\r
105 <p class="whs1">box = geompy.MakeBox(0.,
\r
106 0., 0., 20., 20., 15.)</p>
\r
108 <p class="whs1">subShapeList = geompy.SubShapeAll(box,
\r
109 geompy.ShapeType["FACE"])</p>
\r
111 <p class="whs1"> </p>
\r
113 <p class="whs1">FaceList =
\r
116 <p class="whs1">for i in range(
\r
119 <p class="whs1"> FaceList.append(
\r
120 subShapeList[ i ] )</p>
\r
122 <p class="whs1"> </p>
\r
124 <p class="whs1">aComp = geompy.MakeCompound(
\r
127 <p class="whs1">aBox = geompy.Sew(
\r
130 <p class="whs1">idbox = geompy.addToStudy(
\r
131 aBox, "box" )</p>
\r
133 <p class="whs1"> </p>
\r
135 <p class="whs1">aBox =
\r
136 salome.IDToObject( idbox )</p>
\r
138 <p class="whs1"> </p>
\r
140 <p class="whs2"># create a mesh</p>
\r
142 <p class="whs1">hyp1 = smesh.CreateHypothesis("NumberOfSegments",
\r
143 "libStdMeshersEngine.so")</p>
\r
145 <p class="whs1">hyp1.SetNumberOfSegments(5)</p>
\r
147 <p class="whs1">hyp2 = smesh.CreateHypothesis("MaxElementArea",
\r
148 "libStdMeshersEngine.so")</p>
\r
150 <p class="whs1">hyp2.SetMaxElementArea(20)</p>
\r
152 <p class="whs1"> </p>
\r
154 <p class="whs1">algo1 = smesh.CreateHypothesis("Regular_1D",
\r
155 "libStdMeshersEngine.so")</p>
\r
157 <p class="whs1">algo2 = smesh.CreateHypothesis("MEFISTO_2D",
\r
158 "libStdMeshersEngine.so")</p>
\r
160 <p class="whs1"> </p>
\r
162 <p class="whs1">mesh = smesh.CreateMesh(aBox)</p>
\r
164 <p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>
\r
166 <p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>
\r
168 <p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>
\r
170 <p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>
\r
172 <p class="whs1"> </p>
\r
174 <p class="whs1">smesh.Compute(mesh,aBox)</p>
\r
176 <p class="whs1"> </p>
\r
178 <p class="whs1">smeshgui = salome.ImportComponentGUI("SMESH")</p>
\r
180 <p class="whs1">smeshgui.Init(salome.myStudyId);</p>
\r
182 <p class="whs1">smeshgui.SetName(
\r
183 salome.ObjectToID( mesh ), "Mesh_freebord" );</p>
\r
185 <p class="whs2"> </p>
\r
187 <p class="whs2"># criterion : free borders</p>
\r
189 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
191 <p class="whs1">aPredicate = aFilterMgr.CreateFreeBorders()</p>
\r
193 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
195 <p class="whs1">aFilter.SetPredicate(
\r
198 <p class="whs1">anIds = aFilter.GetElementsId(
\r
201 <p class="whs2"> </p>
\r
203 <p class="whs2"># print the result</p>
\r
205 <p class="whs1">print "Criterion:
\r
206 Free borders Nb = ", len( anIds )</p>
\r
208 <p class="whs1">for i in range(
\r
209 len( anIds ) ):</p>
\r
211 <p class="whs1"> print
\r
214 <p class="whs2"> </p>
\r
216 <p class="whs2"># create a group</p>
\r
218 <p class="whs1">aGroup = mesh.CreateGroup(
\r
219 SMESH.EDGE, "Free borders" )</p>
\r
221 <p class="whs1">aGroup.Add( anIds
\r
224 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
227 <p class="whs2"> </p>
\r
229 <h3><a name=bookmark1>Borders at Multiconnection</a></h3>
\r
231 <p class="whs1">import salome</p>
\r
233 <p class="whs1">import geompy</p>
\r
235 <p class="whs1">import SMESH</p>
\r
237 <p class="whs1">import StdMeshers</p>
\r
239 <p class="whs1"> </p>
\r
241 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
\r
242 "SMESH")</p>
\r
244 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
\r
246 <p class="whs1"> </p>
\r
248 <p class="whs2"># create a box without
\r
251 <p class="whs2"> </p>
\r
253 <p class="whs1">box = geompy.MakeBox(0.,
\r
254 0., 0., 20., 20., 15.)</p>
\r
256 <p class="whs1">subShapeList = geompy.SubShapeAll(box,
\r
257 geompy.ShapeType["FACE"])</p>
\r
259 <p class="whs1"> </p>
\r
261 <p class="whs1">FaceList =
\r
264 <p class="whs1">for i in range(
\r
267 <p class="whs1"> FaceList.append(
\r
268 subShapeList[ i ] )</p>
\r
270 <p class="whs1"> </p>
\r
272 <p class="whs1">aComp = geompy.MakeCompound(
\r
275 <p class="whs1">aBox = geompy.Sew(
\r
278 <p class="whs1">idbox = geompy.addToStudy(
\r
279 aBox, "box" )</p>
\r
281 <p class="whs1"> </p>
\r
283 <p class="whs1">aBox =
\r
284 salome.IDToObject( idbox )</p>
\r
286 <p class="whs1"> </p>
\r
288 <p class="whs2"># create a mesh</p>
\r
290 <p class="whs2"> </p>
\r
292 <p class="whs1">hyp1 = smesh.CreateHypothesis("NumberOfSegments",
\r
293 "libStdMeshersEngine.so")</p>
\r
295 <p class="whs1">hyp1.SetNumberOfSegments(5)</p>
\r
297 <p class="whs1">hyp2 = smesh.CreateHypothesis("MaxElementArea",
\r
298 "libStdMeshersEngine.so")</p>
\r
300 <p class="whs1">hyp2.SetMaxElementArea(20)</p>
\r
302 <p class="whs1"> </p>
\r
304 <p class="whs1">algo1 = smesh.CreateHypothesis("Regular_1D",
\r
305 "libStdMeshersEngine.so")</p>
\r
307 <p class="whs1">algo2 = smesh.CreateHypothesis("MEFISTO_2D",
\r
308 "libStdMeshersEngine.so")</p>
\r
310 <p class="whs1"> </p>
\r
312 <p class="whs1">mesh = smesh.CreateMesh(aBox)</p>
\r
314 <p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>
\r
316 <p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>
\r
318 <p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>
\r
320 <p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>
\r
322 <p class="whs1"> </p>
\r
324 <p class="whs1">smesh.Compute(mesh,aBox)</p>
\r
326 <p class="whs1"> </p>
\r
328 <p class="whs1">smeshgui = salome.ImportComponentGUI("SMESH")</p>
\r
330 <p class="whs1">smeshgui.Init(salome.myStudyId);</p>
\r
332 <p class="whs1">smeshgui.SetName(
\r
333 salome.ObjectToID( mesh ), "Mesh_borders_at_multi-connections"
\r
336 <p class="whs1"> </p>
\r
338 <p class="whs2"># Criterion : Borders at
\r
339 multi-connection</p>
\r
341 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
343 <p class="whs1">aFunctor = aFilterMgr.CreateMultiConnection()</p>
\r
345 <p class="whs1"> </p>
\r
347 <p class="whs1">aPredicate = aFilterMgr.CreateEqualTo()</p>
\r
349 <p class="whs1">aPredicate.SetNumFunctor(
\r
352 <p class="whs1">aPredicate.SetMargin(
\r
355 <p class="whs1"> </p>
\r
357 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
359 <p class="whs1">aFilter.SetPredicate(
\r
362 <p class="whs1"> </p>
\r
364 <p class="whs1">anIds = aFilter.GetElementsId(
\r
367 <p class="whs1"> </p>
\r
369 <p class="whs2"># print the result</p>
\r
371 <p class="whs1">print "Criterion:
\r
372 Borders at multi-connections Nb = ", len( anIds )</p>
\r
374 <p class="whs1">for i in range(
\r
375 len( anIds ) ):</p>
\r
377 <p class="whs1"> print
\r
380 <p class="whs2"> </p>
\r
382 <p class="whs2"># create a group</p>
\r
384 <p class="whs1">aGroup = mesh.CreateGroup(
\r
385 SMESH.EDGE, "Borders at multi-connections" )</p>
\r
387 <p class="whs1">aGroup.Add( anIds
\r
390 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
393 <p class="whs2"> </p>
\r
395 <h3><a name=bookmark2>Length 1D</a></h3>
\r
397 <p class="whs2"> </p>
\r
399 <p class="whs1">import salome</p>
\r
401 <p class="whs1">import geompy</p>
\r
403 <p class="whs1">import SMESH</p>
\r
405 <p class="whs1">import StdMeshers</p>
\r
407 <p class="whs1"> </p>
\r
409 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
\r
410 "SMESH")</p>
\r
412 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
\r
414 <p class="whs2"> </p>
\r
416 <p class="whs2"># create a box without
\r
419 <p class="whs1">box = geompy.MakeBox(0.,
\r
420 0., 0., 20., 20., 15.)</p>
\r
422 <p class="whs1">subShapeList = geompy.SubShapeAll(box,
\r
423 geompy.ShapeType["FACE"])</p>
\r
425 <p class="whs1"> </p>
\r
427 <p class="whs1">FaceList =
\r
430 <p class="whs1">for i in range(
\r
433 <p class="whs1"> FaceList.append(
\r
434 subShapeList[ i ] )</p>
\r
436 <p class="whs1"> </p>
\r
438 <p class="whs1">aComp = geompy.MakeCompound(
\r
441 <p class="whs1">aBox = geompy.Sew(
\r
444 <p class="whs1">idbox = geompy.addToStudy(
\r
445 aBox, "box" )</p>
\r
447 <p class="whs1"> </p>
\r
449 <p class="whs1">aBox =
\r
450 salome.IDToObject( idbox )</p>
\r
452 <p class="whs1"> </p>
\r
454 <p class="whs2"># create a mesh</p>
\r
456 <p class="whs1">hyp1 = smesh.CreateHypothesis("NumberOfSegments",
\r
457 "libStdMeshersEngine.so")</p>
\r
459 <p class="whs1">hyp1.SetNumberOfSegments(5)</p>
\r
461 <p class="whs1">hyp2 = smesh.CreateHypothesis("MaxElementArea",
\r
462 "libStdMeshersEngine.so")</p>
\r
464 <p class="whs1">hyp2.SetMaxElementArea(20)</p>
\r
466 <p class="whs1"> </p>
\r
468 <p class="whs1">algo1 = smesh.CreateHypothesis("Regular_1D",
\r
469 "libStdMeshersEngine.so")</p>
\r
471 <p class="whs1">algo2 = smesh.CreateHypothesis("MEFISTO_2D",
\r
472 "libStdMeshersEngine.so")</p>
\r
474 <p class="whs1"> </p>
\r
476 <p class="whs1">mesh = smesh.CreateMesh(aBox)</p>
\r
478 <p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>
\r
480 <p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>
\r
482 <p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>
\r
484 <p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>
\r
486 <p class="whs1"> </p>
\r
488 <p class="whs1">smesh.Compute(mesh,aBox)</p>
\r
490 <p class="whs1"> </p>
\r
492 <p class="whs1">smeshgui = salome.ImportComponentGUI("SMESH")</p>
\r
494 <p class="whs1">smeshgui.Init(salome.myStudyId);</p>
\r
496 <p class="whs1">smeshgui.SetName(
\r
497 salome.ObjectToID( mesh ), "Mesh" );</p>
\r
499 <p class="whs1"> </p>
\r
501 <p class="whs2"># Criterion : Length >
\r
504 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
506 <p class="whs1">aFunctor = aFilterMgr.CreateLength()</p>
\r
508 <p class="whs1"> </p>
\r
510 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
\r
512 <p class="whs1">aPredicate.SetNumFunctor(
\r
515 <p class="whs1">aPredicate.SetMargin(
\r
518 <p class="whs1"> </p>
\r
520 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
522 <p class="whs1">aFilter.SetPredicate(
\r
525 <p class="whs1"> </p>
\r
527 <p class="whs1">anIds = aFilter.GetElementsId(
\r
530 <p class="whs2"> </p>
\r
532 <p class="whs2"># print the result</p>
\r
534 <p class="whs1">print "Criterion:
\r
535 Edges length > 3 Nb = ", len( anIds )</p>
\r
537 <p class="whs1">for i in range(
\r
538 len( anIds ) ):</p>
\r
540 <p class="whs1"> print
\r
543 <p class="whs2"> </p>
\r
545 <p class="whs2"># create a group</p>
\r
547 <p class="whs1">aGroup = mesh.CreateGroup(
\r
548 SMESH.EDGE, "Edges with legth > 3" )</p>
\r
550 <p class="whs1">aGroup.Add( anIds
\r
553 <p class="whs1">salome.sg.updateObjBrowser(1)</p>
\r
555 <p class="whs2"> </p>
\r
557 <h3><a name=bookmark3>Free Edges</a></h3>
\r
559 <p class="whs1">import SMESH</p>
\r
561 <p class="whs1">import SMESH_mechanic</p>
\r
563 <p class="whs1"> </p>
\r
565 <p class="whs1">smesh =
\r
566 SMESH_mechanic.smesh</p>
\r
568 <p class="whs1">mesh =
\r
569 SMESH_mechanic.mesh</p>
\r
571 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
573 <p class="whs1"> </p>
\r
575 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
577 <p class="whs1"> </p>
\r
579 <p class="whs2"># Criterion : AREA >
\r
582 <p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
\r
584 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
\r
586 <p class="whs1">aPredicate.SetNumFunctor(
\r
589 <p class="whs1">aPredicate.SetMargin(
\r
592 <p class="whs1"> </p>
\r
594 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
596 <p class="whs1">aFilter.SetPredicate(
\r
599 <p class="whs1"> </p>
\r
601 <p class="whs1">anIds = aFilter.GetElementsId(
\r
604 <p class="whs1">anEditor = mesh.GetMeshEditor()</p>
\r
606 <p class="whs1">anEditor.RemoveElements(anIds)</p>
\r
608 <p class="whs2"> </p>
\r
610 <p class="whs2"># Criterion : Free Edges</p>
\r
612 <p class="whs2"> </p>
\r
614 <p class="whs1">aPredicate = aFilterMgr.CreateFreeEdges()</p>
\r
616 <p class="whs1">aPredicate.SetMesh(
\r
619 <p class="whs1">aBorders = aPredicate.GetBorders()</p>
\r
621 <p class="whs2"> </p>
\r
623 <p class="whs2"># create groups</p>
\r
625 <p class="whs1">aGroupF = mesh.CreateGroup(
\r
626 SMESH.FACE, "Faces with free edges" )</p>
\r
628 <p class="whs1">aGroupN = mesh.CreateGroup(
\r
629 SMESH.NODE, "Nodes on free edges" )</p>
\r
631 <p class="whs2"> </p>
\r
633 <p class="whs2"># fill groups with elements,
\r
634 corresponding to the criterion</p>
\r
636 <p class="whs1">print ""</p>
\r
638 <p class="whs1">print "Criterion:
\r
639 Free edges Nb = ", len( aBorders )</p>
\r
641 <p class="whs1">for i in range(
\r
642 len( aBorders ) ):</p>
\r
644 <p class="whs1"> aBorder
\r
645 = aBorders[ i ]</p>
\r
647 <p class="whs1"> print
\r
648 "Face # ", aBorder.myElemId, " : Edge between nodes (",</p>
\r
650 <p class="whs1"> print
\r
651 aBorder.myPnt1, ", ", aBorder.myPnt2, ")"</p>
\r
653 <p class="whs1"> </p>
\r
655 <p class="whs1"> aGroupF.Add(
\r
656 [aBorder.myElemId] )</p>
\r
658 <p class="whs1"> aGroupN.Add(
\r
659 [aBorder.myPnt1, aBorder.myPnt2] )</p>
\r
661 <p class="whs1"> </p>
\r
663 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
666 <p class="whs2"> </p>
\r
668 <h3><a name=bookmark4>Length 2D</a></h3>
\r
670 <p class="whs1">import salome</p>
\r
672 <p class="whs1">import geompy</p>
\r
674 <p class="whs1">import SMESH</p>
\r
676 <p class="whs1">import StdMeshers</p>
\r
678 <p class="whs1"> </p>
\r
680 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
\r
681 "SMESH")</p>
\r
683 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
\r
685 <p class="whs2"> </p>
\r
687 <p class="whs2"># create a box without
\r
690 <p class="whs2"> </p>
\r
692 <p class="whs1">box = geompy.MakeBox(0.,
\r
693 0., 0., 20., 20., 15.)</p>
\r
695 <p class="whs1">subShapeList = geompy.SubShapeAll(box,
\r
696 geompy.ShapeType["FACE"])</p>
\r
698 <p class="whs1"> </p>
\r
700 <p class="whs1">FaceList =
\r
703 <p class="whs1">for i in range(
\r
706 <p class="whs1"> FaceList.append(
\r
707 subShapeList[ i ] )</p>
\r
709 <p class="whs1"> </p>
\r
711 <p class="whs1">aComp = geompy.MakeCompound(
\r
714 <p class="whs1">aBox = geompy.Sew(
\r
717 <p class="whs1">idbox = geompy.addToStudy(
\r
718 aBox, "box" )</p>
\r
720 <p class="whs1"> </p>
\r
722 <p class="whs1">aBox =
\r
723 salome.IDToObject( idbox )</p>
\r
725 <p class="whs2"> </p>
\r
727 <p class="whs2"># create a mesh</p>
\r
729 <p class="whs2"> </p>
\r
731 <p class="whs1">hyp1 = smesh.CreateHypothesis("NumberOfSegments",
\r
732 "libStdMeshersEngine.so")</p>
\r
734 <p class="whs1">hyp1.SetNumberOfSegments(5)</p>
\r
736 <p class="whs1">hyp2 = smesh.CreateHypothesis("MaxElementArea",
\r
737 "libStdMeshersEngine.so")</p>
\r
739 <p class="whs1">hyp2.SetMaxElementArea(20)</p>
\r
741 <p class="whs1"> </p>
\r
743 <p class="whs1">algo1 = smesh.CreateHypothesis("Regular_1D",
\r
744 "libStdMeshersEngine.so")</p>
\r
746 <p class="whs1">algo2 = smesh.CreateHypothesis("MEFISTO_2D",
\r
747 "libStdMeshersEngine.so")</p>
\r
749 <p class="whs1"> </p>
\r
751 <p class="whs1">mesh = smesh.CreateMesh(aBox)</p>
\r
753 <p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>
\r
755 <p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>
\r
757 <p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>
\r
759 <p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>
\r
761 <p class="whs1"> </p>
\r
763 <p class="whs1">smesh.Compute(mesh,aBox)</p>
\r
765 <p class="whs1"> </p>
\r
767 <p class="whs1">smeshgui = salome.ImportComponentGUI("SMESH")</p>
\r
769 <p class="whs1">smeshgui.Init(salome.myStudyId);</p>
\r
771 <p class="whs1">smeshgui.SetName(
\r
772 salome.ObjectToID( mesh ), "Mesh" );</p>
\r
774 <p class="whs2"> </p>
\r
776 <p class="whs2"># Criterion : Length 2D
\r
779 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
781 <p class="whs1">aFunctor = aFilterMgr.CreateLength2D()</p>
\r
783 <p class="whs1"> </p>
\r
785 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
\r
787 <p class="whs1">aPredicate.SetNumFunctor(
\r
790 <p class="whs1">aPredicate.SetMargin(
\r
793 <p class="whs1"> </p>
\r
795 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
797 <p class="whs1">aFilter.SetPredicate(
\r
800 <p class="whs1"> </p>
\r
802 <p class="whs1">anIds = aFilter.GetElementsId(
\r
805 <p class="whs2"> </p>
\r
807 <p class="whs2"># print the result</p>
\r
809 <p class="whs1">print "Criterion:
\r
810 Edges length 2D > 5 Nb = ", len( anIds )</p>
\r
812 <p class="whs1">for i in range(
\r
813 len( anIds ) ):</p>
\r
815 <p class="whs1"> print
\r
818 <p class="whs2"> </p>
\r
820 <p class="whs2"># create a group</p>
\r
822 <p class="whs1">aGroup = mesh.CreateGroup(
\r
823 SMESH.FACE, "Edges with legth 2D > 5" )</p>
\r
825 <p class="whs1">aGroup.Add( anIds
\r
828 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
831 <p class="whs2"> </p>
\r
833 <h3><a name=bookmark5>Borders at Multiconnection 2D</a></h3>
\r
835 <p class="whs1">import salome</p>
\r
837 <p class="whs1">import geompy</p>
\r
839 <p class="whs1">import SMESH</p>
\r
841 <p class="whs1">import StdMeshers</p>
\r
843 <p class="whs1"> </p>
\r
845 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
\r
846 "SMESH")</p>
\r
848 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
\r
850 <p class="whs1"> </p>
\r
852 <p class="whs2"># create a box without
\r
855 <p class="whs1">box = geompy.MakeBox(0.,
\r
856 0., 0., 20., 20., 15.)</p>
\r
858 <p class="whs1">subShapeList = geompy.SubShapeAll(box,
\r
859 geompy.ShapeType["FACE"])</p>
\r
861 <p class="whs1"> </p>
\r
863 <p class="whs1">FaceList =
\r
866 <p class="whs1">for i in range(
\r
869 <p class="whs1"> FaceList.append(
\r
870 subShapeList[ i ] )</p>
\r
872 <p class="whs1"> </p>
\r
874 <p class="whs1">aComp = geompy.MakeCompound(
\r
877 <p class="whs1">aBox = geompy.Sew(
\r
880 <p class="whs1">idbox = geompy.addToStudy(
\r
881 aBox, "box" )</p>
\r
883 <p class="whs1"> </p>
\r
885 <p class="whs1">aBox =
\r
886 salome.IDToObject( idbox )</p>
\r
888 <p class="whs2"> </p>
\r
890 <p class="whs2"># create a mesh</p>
\r
892 <p class="whs1">hyp1 = smesh.CreateHypothesis("NumberOfSegments",
\r
893 "libStdMeshersEngine.so")</p>
\r
895 <p class="whs1">hyp1.SetNumberOfSegments(5)</p>
\r
897 <p class="whs1">hyp2 = smesh.CreateHypothesis("MaxElementArea",
\r
898 "libStdMeshersEngine.so")</p>
\r
900 <p class="whs1">hyp2.SetMaxElementArea(20)</p>
\r
902 <p class="whs1"> </p>
\r
904 <p class="whs1">algo1 = smesh.CreateHypothesis("Regular_1D",
\r
905 "libStdMeshersEngine.so")</p>
\r
907 <p class="whs1">algo2 = smesh.CreateHypothesis("MEFISTO_2D",
\r
908 "libStdMeshersEngine.so")</p>
\r
910 <p class="whs1"> </p>
\r
912 <p class="whs1">mesh = smesh.CreateMesh(aBox)</p>
\r
914 <p class="whs1">mesh.AddHypothesis(aBox,hyp1)</p>
\r
916 <p class="whs1">mesh.AddHypothesis(aBox,hyp2)</p>
\r
918 <p class="whs1">mesh.AddHypothesis(aBox,algo1)</p>
\r
920 <p class="whs1">mesh.AddHypothesis(aBox,algo2)</p>
\r
922 <p class="whs1"> </p>
\r
924 <p class="whs1">smesh.Compute(mesh,aBox)</p>
\r
926 <p class="whs1">smeshgui = salome.ImportComponentGUI("SMESH")</p>
\r
928 <p class="whs1">smeshgui.Init(salome.myStudyId);</p>
\r
930 <p class="whs1">smeshgui.SetName(
\r
931 salome.ObjectToID( mesh ), "Mesh" );</p>
\r
933 <p class="whs2"> </p>
\r
935 <p class="whs2"># Criterion : MULTI-CONNECTION
\r
938 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
940 <p class="whs1">aFunctor = aFilterMgr.CreateMultiConnection2D()</p>
\r
942 <p class="whs1"> </p>
\r
944 <p class="whs1">aPredicate = aFilterMgr.CreateEqualTo()</p>
\r
946 <p class="whs1">aPredicate.SetNumFunctor(
\r
949 <p class="whs1">aPredicate.SetMargin(
\r
952 <p class="whs1"> </p>
\r
954 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
956 <p class="whs1">aFilter.SetPredicate(
\r
959 <p class="whs1">anIds = aFilter.GetElementsId(
\r
962 <p class="whs2"> </p>
\r
964 <p class="whs2"># print the result</p>
\r
966 <p class="whs1">print "Criterion:
\r
967 Borders at multi-connection 2D = 2 Nb = ", len( anIds )</p>
\r
969 <p class="whs1">for i in range(
\r
970 len( anIds ) ):</p>
\r
972 <p class="whs1"> print
\r
975 <p class="whs2"> </p>
\r
977 <p class="whs2"># create a group</p>
\r
979 <p class="whs1">aGroup = mesh.CreateGroup(
\r
980 SMESH.FACE, "Borders at multi-connection 2D = 2" )</p>
\r
982 <p class="whs1">aGroup.Add( anIds
\r
985 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
988 <p class="whs2"> </p>
\r
990 <h3><a name=bookmark6>Area</a></h3>
\r
992 <p class="whs1">import SMESH</p>
\r
994 <p class="whs1">import SMESH_mechanic</p>
\r
996 <p class="whs1"> </p>
\r
998 <p class="whs1">smesh =
\r
999 SMESH_mechanic.smesh</p>
\r
1001 <p class="whs1">mesh =
\r
1002 SMESH_mechanic.mesh</p>
\r
1004 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
1006 <p class="whs1"> </p>
\r
1008 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
1010 <p class="whs1"> </p>
\r
1012 <p class="whs2"># Criterion : AREA >
\r
1015 <p class="whs2"> </p>
\r
1017 <p class="whs1">aFunctor = aFilterMgr.CreateArea()</p>
\r
1019 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
\r
1021 <p class="whs1">aPredicate.SetNumFunctor(
\r
1024 <p class="whs1">aPredicate.SetMargin(
\r
1027 <p class="whs1"> </p>
\r
1029 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
1031 <p class="whs1">aFilter.SetPredicate(
\r
1034 <p class="whs1"> </p>
\r
1036 <p class="whs1">anIds = aFilter.GetElementsId(
\r
1039 <p class="whs1"> </p>
\r
1041 <p class="whs2"># print the result</p>
\r
1043 <p class="whs1">print "Criterion:
\r
1044 Area > 100 Nb = ", len( anIds )</p>
\r
1046 <p class="whs1">for i in range(
\r
1047 len( anIds ) ):</p>
\r
1049 <p class="whs1"> print
\r
1052 <p class="whs2"> </p>
\r
1054 <p class="whs2"># create a group</p>
\r
1056 <p class="whs1">aGroup = mesh.CreateGroup(
\r
1057 SMESH.FACE, "Area > 100" )</p>
\r
1059 <p class="whs1">aGroup.Add( anIds
\r
1062 <p class="whs1"> </p>
\r
1064 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1067 <p class="whs2"> </p>
\r
1069 <h3><a name=bookmark7>Taper</a></h3>
\r
1071 <p class="whs1">import SMESH</p>
\r
1073 <p class="whs1">import SMESH_mechanic</p>
\r
1075 <p class="whs1"> </p>
\r
1077 <p class="whs1">smesh =
\r
1078 SMESH_mechanic.smesh</p>
\r
1080 <p class="whs1">mesh =
\r
1081 SMESH_mechanic.mesh</p>
\r
1083 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
1085 <p class="whs1"> </p>
\r
1087 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
1089 <p class="whs2"> </p>
\r
1091 <p class="whs2"># Criterion : Taper >
\r
1094 <p class="whs2"> </p>
\r
1096 <p class="whs1">aFunctor = aFilterMgr.CreateTaper()</p>
\r
1098 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
\r
1100 <p class="whs1">aPredicate.SetNumFunctor(
\r
1103 <p class="whs1">aPredicate.SetMargin(
\r
1106 <p class="whs1"> </p>
\r
1108 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
1110 <p class="whs1">aFilter.SetPredicate(
\r
1113 <p class="whs1"> </p>
\r
1115 <p class="whs1">anIds = aFilter.GetElementsId(
\r
1118 <p class="whs2"> </p>
\r
1120 <p class="whs2"># print the result</p>
\r
1122 <p class="whs1">print "Criterion:
\r
1123 Taper > 3e-20 Nb = ", len( anIds )</p>
\r
1125 <p class="whs1">for i in range(
\r
1126 len( anIds ) ):</p>
\r
1128 <p class="whs1"> print
\r
1131 <p class="whs2"> </p>
\r
1133 <p class="whs2"># create a group</p>
\r
1135 <p class="whs1">aGroup = mesh.CreateGroup(
\r
1136 SMESH.FACE, "Taper > 3e-20" )</p>
\r
1138 <p class="whs1">aGroup.Add( anIds
\r
1141 <p class="whs1"> </p>
\r
1143 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1146 <p class="whs2"> </p>
\r
1148 <h3><a name=bookmark8>Aspect Ratio</a></h3>
\r
1150 <p class="whs1">import SMESH</p>
\r
1152 <p class="whs1">import SMESH_mechanic</p>
\r
1154 <p class="whs1"> </p>
\r
1156 <p class="whs1">smesh =
\r
1157 SMESH_mechanic.smesh</p>
\r
1159 <p class="whs1">mesh =
\r
1160 SMESH_mechanic.mesh</p>
\r
1162 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
1164 <p class="whs1"> </p>
\r
1166 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
1168 <p class="whs1"> </p>
\r
1170 <p class="whs2"># Criterion : ASPECT RATIO
\r
1173 <p class="whs2"> </p>
\r
1175 <p class="whs1">aFunctor = aFilterMgr.CreateAspectRatio()</p>
\r
1177 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
\r
1179 <p class="whs1">aPredicate.SetNumFunctor(
\r
1182 <p class="whs1">aPredicate.SetMargin(
\r
1185 <p class="whs1"> </p>
\r
1187 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
1189 <p class="whs1">aFilter.SetPredicate(
\r
1192 <p class="whs1"> </p>
\r
1194 <p class="whs1">anIds = aFilter.GetElementsId(
\r
1197 <p class="whs1"> </p>
\r
1199 <p class="whs2"># print the result</p>
\r
1201 <p class="whs1">print "Criterion:
\r
1202 Aspect Ratio > 1.4 Nb = ", len( anIds )</p>
\r
1204 <p class="whs1">for i in range(
\r
1205 len( anIds ) ):</p>
\r
1207 <p class="whs1"> print
\r
1210 <p class="whs2"> </p>
\r
1212 <p class="whs2"># create a group</p>
\r
1214 <p class="whs1">aGroup = mesh.CreateGroup(
\r
1215 SMESH.FACE, "Aspect Ratio > 1.4" )</p>
\r
1217 <p class="whs1">aGroup.Add( anIds
\r
1220 <p class="whs1"> </p>
\r
1222 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
1225 <p class="whs1"> </p>
\r
1227 <h3><a name=bookmark9>Minimum Angle</a></h3>
\r
1229 <p class="whs1"> </p>
\r
1231 <p class="whs1">import SMESH</p>
\r
1233 <p class="whs1">import SMESH_mechanic</p>
\r
1235 <p class="whs1"> </p>
\r
1237 <p class="whs1">smesh =
\r
1238 SMESH_mechanic.smesh</p>
\r
1240 <p class="whs1">mesh =
\r
1241 SMESH_mechanic.mesh</p>
\r
1243 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
1245 <p class="whs1"> </p>
\r
1247 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
1249 <p class="whs1"> </p>
\r
1251 <p class="whs3"># Criterion : MINIMUM
\r
1254 <p class="whs1"> </p>
\r
1256 <p class="whs1">aFunctor = aFilterMgr.CreateMinimumAngle()</p>
\r
1258 <p class="whs1">aPredicate = aFilterMgr.CreateLessThan()</p>
\r
1260 <p class="whs1">aPredicate.SetNumFunctor(
\r
1263 <p class="whs1">aPredicate.SetMargin(
\r
1266 <p class="whs1"> </p>
\r
1268 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
1270 <p class="whs1">aFilter.SetPredicate(
\r
1273 <p class="whs1"> </p>
\r
1275 <p class="whs1">anIds = aFilter.GetElementsId(
\r
1278 <p class="whs1"> </p>
\r
1280 <p class="whs3"># print the result</p>
\r
1282 <p class="whs1">print "Criterion:
\r
1283 Minimum Angle < 70 Nb = ", len( anIds )</p>
\r
1285 <p class="whs1">for i in range(
\r
1286 len( anIds ) ):</p>
\r
1288 <p class="whs1"> print
\r
1291 <p class="whs1"> </p>
\r
1293 <p class="whs3"># create a group</p>
\r
1295 <p class="whs1">aGroup = mesh.CreateGroup(
\r
1296 SMESH.FACE, "Minimum Angle < 70" )</p>
\r
1298 <p class="whs1">aGroup.Add( anIds
\r
1301 <p class="whs1"> </p>
\r
1303 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
1306 <p class="whs1"> </p>
\r
1308 <h3><a name=bookmark10>Warping</a></h3>
\r
1310 <p class="whs1">import SMESH</p>
\r
1312 <p class="whs1">import SMESH_mechanic</p>
\r
1314 <p class="whs1"> </p>
\r
1316 <p class="whs1">smesh =
\r
1317 SMESH_mechanic.smesh</p>
\r
1319 <p class="whs1">mesh =
\r
1320 SMESH_mechanic.mesh</p>
\r
1322 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
1324 <p class="whs1"> </p>
\r
1326 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
1328 <p class="whs2"> </p>
\r
1330 <p class="whs2"># Criterion : WARP ANGLE
\r
1333 <p class="whs2"> </p>
\r
1335 <p class="whs1">aFunctor = aFilterMgr.CreateWarping()</p>
\r
1337 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
\r
1339 <p class="whs1">aPredicate.SetNumFunctor(
\r
1342 <p class="whs1">aPredicate.SetMargin(
\r
1345 <p class="whs1"> </p>
\r
1347 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
1349 <p class="whs1">aFilter.SetPredicate(
\r
1352 <p class="whs1"> </p>
\r
1354 <p class="whs1">anIds = aFilter.GetElementsId(
\r
1357 <p class="whs2"> </p>
\r
1359 <p class="whs2"># print the result</p>
\r
1361 <p class="whs1">print "Criterion:
\r
1362 Warp > 1e-15 Nb = ", len( anIds )</p>
\r
1364 <p class="whs1">for i in range(
\r
1365 len( anIds ) ):</p>
\r
1367 <p class="whs1"> print
\r
1370 <p class="whs2"> </p>
\r
1372 <p class="whs2"># create a group</p>
\r
1374 <p class="whs1">aGroup = mesh.CreateGroup(
\r
1375 SMESH.FACE, "Warp > 1e-15" )</p>
\r
1377 <p class="whs1">aGroup.Add( anIds
\r
1380 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1383 <p class="whs2"> </p>
\r
1385 <h3><a name=bookmark12>Skew</a></h3>
\r
1387 <p class="whs1">import SMESH</p>
\r
1389 <p class="whs1">import SMESH_mechanic</p>
\r
1391 <p class="whs1"> </p>
\r
1393 <p class="whs1">smesh =
\r
1394 SMESH_mechanic.smesh</p>
\r
1396 <p class="whs1">mesh =
\r
1397 SMESH_mechanic.mesh</p>
\r
1399 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
1401 <p class="whs1"> </p>
\r
1403 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
1405 <p class="whs1"> </p>
\r
1407 <p class="whs2"># Criterion : Skew >
\r
1410 <p class="whs1"> </p>
\r
1412 <p class="whs1">aFunctor = aFilterMgr.CreateSkew()</p>
\r
1414 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
\r
1416 <p class="whs1">aPredicate.SetNumFunctor(
\r
1419 <p class="whs1">aPredicate.SetMargin(
\r
1422 <p class="whs1"> </p>
\r
1424 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
1426 <p class="whs1">aFilter.SetPredicate(
\r
1429 <p class="whs1"> </p>
\r
1431 <p class="whs1">anIds = aFilter.GetElementsId(
\r
1434 <p class="whs1"> </p>
\r
1436 <p class="whs2"># print the result</p>
\r
1438 <p class="whs1">print "Criterion:
\r
1439 Skew > 18 Nb = ", len( anIds )</p>
\r
1441 <p class="whs1">for i in range(
\r
1442 len( anIds ) ):</p>
\r
1444 <p class="whs1"> print
\r
1447 <p class="whs2"> </p>
\r
1449 <p class="whs2"># create a group</p>
\r
1451 <p class="whs1">aGroup = mesh.CreateGroup(
\r
1452 SMESH.FACE, "Skew > 18" )</p>
\r
1454 <p class="whs1">aGroup.Add( anIds
\r
1457 <p class="whs1"> </p>
\r
1459 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1462 <p class="whs2"> </p>
\r
1464 <h3><a name=bookmark11>Aspect Ratio 3D</a></h3>
\r
1466 <p class="whs1">import SMESH</p>
\r
1468 <p class="whs1">import SMESH_mechanic_tetra</p>
\r
1470 <p class="whs1"> </p>
\r
1472 <p class="whs1">smesh =
\r
1473 SMESH_mechanic_tetra.smesh</p>
\r
1475 <p class="whs1">mesh =
\r
1476 SMESH_mechanic_tetra.mesh</p>
\r
1478 <p class="whs1">salome = SMESH_mechanic_tetra.salome</p>
\r
1480 <p class="whs1"> </p>
\r
1482 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
1484 <p class="whs1"> </p>
\r
1486 <p class="whs2"># Criterion : ASPECT RATIO
\r
1489 <p class="whs2"> </p>
\r
1491 <p class="whs1">aFunctor = aFilterMgr.CreateAspectRatio3D()</p>
\r
1493 <p class="whs1">aPredicate = aFilterMgr.CreateMoreThan()</p>
\r
1495 <p class="whs1">aPredicate.SetNumFunctor(
\r
1498 <p class="whs1">aPredicate.SetMargin(
\r
1501 <p class="whs1"> </p>
\r
1503 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
1505 <p class="whs1">aFilter.SetPredicate(
\r
1508 <p class="whs1"> </p>
\r
1510 <p class="whs1">anIds = aFilter.GetElementsId(
\r
1513 <p class="whs2"> </p>
\r
1515 <p class="whs2"># print the result</p>
\r
1517 <p class="whs1">print "Criterion:
\r
1518 Aspect Ratio 3D > 2.2 Nb = ", len( anIds )</p>
\r
1520 <p class="whs1">for i in range(
\r
1521 len( anIds ) ):</p>
\r
1523 <p class="whs1"> print
\r
1526 <p class="whs2"> </p>
\r
1528 <p class="whs2"># create a group</p>
\r
1530 <p class="whs1">aGroup = mesh.CreateGroup(
\r
1531 SMESH.VOLUME, "Aspect Ratio 3D > 2.2" )</p>
\r
1533 <p class="whs1">aGroup.Add( anIds
\r
1536 <p class="whs1"> </p>
\r
1538 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1541 <p class="whs2"> </p>
\r
1543 <h3><a name=Volume>Volume</a></h3>
\r
1545 <p class="whs1">import SMESH</p>
\r
1547 <p class="whs1">import SMESH_mechanic_tetra</p>
\r
1549 <p class="whs1"> </p>
\r
1551 <p class="whs1">smesh =
\r
1552 SMESH_mechanic_tetra.smesh</p>
\r
1554 <p class="whs1">mesh =
\r
1555 SMESH_mechanic_tetra.mesh</p>
\r
1557 <p class="whs1">salome = SMESH_mechanic_tetra.salome</p>
\r
1559 <p class="whs1"> </p>
\r
1561 <p class="whs1">aFilterMgr = smesh.CreateFilterManager()</p>
\r
1563 <p class="whs1"> </p>
\r
1565 <p class="whs2"># Criterion : VOLUME <
\r
1568 <p class="whs2"> </p>
\r
1570 <p class="whs1">aFunctor = aFilterMgr.CreateVolume3D()</p>
\r
1572 <p class="whs1">aPredicate = aFilterMgr.CreateLessThan()</p>
\r
1574 <p class="whs1">aPredicate.SetNumFunctor(
\r
1577 <p class="whs1">aPredicate.SetMargin(
\r
1580 <p class="whs1"> </p>
\r
1582 <p class="whs1">aFilter = aFilterMgr.CreateFilter()</p>
\r
1584 <p class="whs1">aFilter.SetPredicate(
\r
1587 <p class="whs1"> </p>
\r
1589 <p class="whs1">anIds = aFilter.GetElementsId(
\r
1592 <p class="whs1"> </p>
\r
1594 <p class="whs2"># print the result</p>
\r
1596 <p class="whs1">print ""</p>
\r
1598 <p class="whs1">print "Criterion:
\r
1599 Volume < 7 Nb = ", len( anIds )</p>
\r
1601 <p class="whs1">for i in range(
\r
1602 len( anIds ) ):</p>
\r
1604 <p class="whs1"> print
\r
1607 <p class="whs1"> </p>
\r
1609 <p class="whs2"># create a group</p>
\r
1611 <p class="whs1">aGroup = mesh.CreateGroup(
\r
1612 SMESH.VOLUME, "Volume < 7" )</p>
\r
1614 <p class="whs1">aGroup.Add( anIds
\r
1617 <p class="whs1"> </p>
\r
1619 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1622 <script type="text/javascript" language="javascript1.2">
\r
1624 if (window.writeIntopicBar)
\r
1625 writeIntopicBar(0);
\r