Salome HOME
Fix for bug PAL12557(V3_2_0b2: SMESH documentation for scripts not up to date).
[modules/smesh.git] / doc / salome / gui / SMESH / grouping_elements.htm
1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
2 \r
3 <html>\r
4 \r
5 <head>\r
6 <title>Grouping Elements</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
9 <!--\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; font-family:'Times New Roman' , serif; }\r
12 p.whs3 { margin-top:0pt; margin-bottom:0pt; }\r
13 img_whs4 { border:none; width:430px; height:391px; float:none; border-style:none; }\r
14 img_whs5 { border:none; float:none; width:463px; height:417px; border-style:none; }\r
15 img_whs6 { border:none; width:541px; height:417px; float:none; border-style:none; }\r
16 img_whs7 { border:none; width:394px; height:425px; float:none; border-style:none; }\r
17 img_whs8 { border:none; float:none; width:368px; height:379px; border-style:none; }\r
18 img_whs9 { border:none; float:none; width:344px; height:381px; border-style:none; }\r
19 img_whs10 { border:none; width:314px; height:351px; float:none; border-style:none; }\r
20 img_whs11 { border:none; float:none; width:319px; height:351px; border-style:none; }\r
21 img_whs12 { border:none; float:none; width:304px; height:352px; border-style:none; }\r
22 img_whs13 { border:none; width:318px; height:355px; float:none; border-style:none; }\r
23 img_whs14 { border:none; float:none; width:318px; height:355px; border-style:none; }\r
24 img_whs15 { border:none; float:none; width:320px; height:354px; border-style:none; }\r
25 -->\r
26 </style><script type="text/javascript" language="JavaScript">\r
27 <!--\r
28 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
29 {\r
30   var strNSS = "<style type='text/css'>";\r
31   strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
32   strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
33   strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
34   strNSS +="</style>";\r
35   document.write(strNSS);\r
36 }\r
37 //-->\r
38 </script>\r
39 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
40 <!--\r
41 function reDo() {\r
42   if (innerWidth != origWidth || innerHeight != origHeight)\r
43      location.reload();\r
44 }\r
45 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
46         origWidth = innerWidth;\r
47         origHeight = innerHeight;\r
48         onresize = reDo;\r
49 }\r
50 onerror = null; \r
51 //-->\r
52 </script>\r
53 <style type="text/css">\r
54 <!--\r
55 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
56 p.WebHelpNavBar { text-align:right; }\r
57 -->\r
58 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
59 <script type="text/javascript" language="javascript" src="whver.js"></script>\r
60 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
61 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
62 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
63 <script type="text/javascript" language="javascript1.2">\r
64 <!--\r
65 if (window.gbWhTopic)\r
66 {\r
67         if (window.setRelStartPage)\r
68         {\r
69         addTocInfo("MESH module\nTUI Scripts\nGrouping Elements");\r
70 addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
71 addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
72 \r
73         }\r
74 \r
75 \r
76         if (window.setRelStartPage)\r
77         {\r
78         setRelStartPage("index.htm");\r
79 \r
80                 autoSync(1);\r
81                 sendSyncInfo();\r
82                 sendAveInfoOut();\r
83         }\r
84 \r
85 }\r
86 else\r
87         if (window.gbIE4)\r
88                 document.location.reload();\r
89 //-->\r
90 </script>\r
91 </head>\r
92 <body><script type="text/javascript" language="javascript1.2">\r
93 <!--\r
94 if (window.writeIntopicBar)\r
95         writeIntopicBar(4);\r
96 //-->\r
97 </script>\r
98 <h1>Grouping Elements</h1>\r
99 \r
100 <h3><a name=bookmark>Create a Standalone Group</a></h3>\r
101 \r
102 <p class="whs1">import SMESH_mechanic</p>\r
103 \r
104 <p class="whs1">&nbsp;</p>\r
105 \r
106 <p class="whs1">smesh &nbsp;= \r
107  SMESH_mechanic.smesh</p>\r
108 \r
109 <p class="whs1">mesh &nbsp;&nbsp;= \r
110  SMESH_mechanic.mesh</p>\r
111 \r
112 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
113 \r
114 <p class="whs1">&nbsp;</p>\r
115 \r
116 <p class="whs2"># Get ids of all faces \r
117  with area &gt; 100 </p>\r
118 \r
119 <p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, \r
120  smesh.FT_Area, smesh.FT_MoreThan, 100.)</p>\r
121 \r
122 <p class="whs1">&nbsp;</p>\r
123 \r
124 <p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) \r
125  </p>\r
126 \r
127 <p class="whs1">&nbsp;</p>\r
128 \r
129 <p class="whs3"># create a group consisting \r
130  of faces with area &gt; 100</p>\r
131 \r
132 <p class="whs1">&nbsp;</p>\r
133 \r
134 <p class="whs1">aGroup = mesh.MakeGroupByIds(&quot;Area \r
135  &gt; 100&quot;, smesh.FACE, anIds)</p>\r
136 \r
137 <p class="whs1">&nbsp;</p>\r
138 \r
139 <p class="whs3"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
140  </p>\r
141 \r
142 <p class="whs3">&nbsp;</p>\r
143 \r
144 <p class="whs3"><img src="pics/create_group.png" x-maintain-ratio="TRUE" width="430px" height="391px" border="0" class="img_whs4"></p>\r
145 \r
146 <h3><a name=bookmark5>Create a Group on Geometry</a></h3>\r
147 \r
148 <p class="whs1">import salome</p>\r
149 \r
150 <p class="whs1">import geompy</p>\r
151 \r
152 <p class="whs1">import smesh</p>\r
153 \r
154 <p class="whs1">&nbsp;</p>\r
155 \r
156 <p class="whs2"># create a box</p>\r
157 \r
158 <p class="whs1">box = geompy.MakeBox(0., \r
159  0., 0., 100., 100., 100.)</p>\r
160 \r
161 <p class="whs1">geompy.addToStudy(box, \r
162  &quot;box&quot;)</p>\r
163 \r
164 <p class="whs1">&nbsp;</p>\r
165 \r
166 <p class="whs2"># add the first face \r
167  of the box to the study</p>\r
168 \r
169 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">subShapeList \r
170  = geompy.SubShapeAll(box, geompy.ShapeType[&quot;FACE&quot;])</span></p>\r
171 \r
172 <p class="whs1">face = subShapeList[0]</p>\r
173 \r
174 <p class="whs1">geompy.addToStudyInFather(box, \r
175  face, &quot;face 1&quot;) </p>\r
176 \r
177 <p class="whs1">&nbsp;</p>\r
178 \r
179 <p class="whs2"># create group of edges \r
180  on the face</p>\r
181 \r
182 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGeomGroupE \r
183  = geompy.CreateGroup(face, geompy.ShapeType[&quot;EDGE&quot;])</span></p>\r
184 \r
185 <p class="whs1">geompy.AddObject(aGeomGroupE, \r
186  3)</p>\r
187 \r
188 <p class="whs1">geompy.AddObject(aGeomGroupE, \r
189  6)</p>\r
190 \r
191 <p class="whs1">geompy.AddObject(aGeomGroupE, \r
192  8)</p>\r
193 \r
194 <p class="whs1">geompy.AddObject(aGeomGroupE, \r
195  10)</p>\r
196 \r
197 <p class="whs1">geompy.addToStudyInFather(face, \r
198  aGeomGroupE, &quot;Group of Edges&quot;)</p>\r
199 \r
200 <p class="whs1">&nbsp;</p>\r
201 \r
202 <p class="whs2"># create quadrangle \r
203  2D mesh on the box</p>\r
204 \r
205 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">quadra \r
206  = smesh.Mesh(box, &quot;Box : quadrangle 2D mesh&quot;)</span></p>\r
207 \r
208 <p class="whs1">algo1D = quadra.Segment()</p>\r
209 \r
210 <p class="whs1">quadra.Quadrangle()</p>\r
211 \r
212 <p class="whs1">algo1D.NumberOfSegments(7) \r
213  </p>\r
214 \r
215 <p class="whs1">&nbsp;</p>\r
216 \r
217 <p class="whs2"># compute the mesh</p>\r
218 \r
219 <p class="whs1">quadra.Compute()</p>\r
220 \r
221 <p class="whs1">&nbsp;</p>\r
222 \r
223 <p class="whs2"># create SMESH group \r
224  on the face with name &quot;SMESHGroup1&quot;</p>\r
225 \r
226 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aSmeshGroup1 \r
227  = quadra.GroupOnGeom(face, &quot;SMESHGroup1&quot;)</span></p>\r
228 \r
229 <p class="whs1">&nbsp;</p>\r
230 \r
231 <p class="whs2"># create SMESH group \r
232  on &lt;aGeomGroupE&gt; with default name</p>\r
233 \r
234 <p class="whs1">aSmeshGroup2 = quadra.GroupOnGeom(aGeomGroupE) \r
235  </p>\r
236 \r
237 <p class="whs3">&nbsp;</p>\r
238 \r
239 <p class="whs3"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
240  </p>\r
241 \r
242 <h3><a name=bookmark1>Edit a Group</a></h3>\r
243 \r
244 <p class="whs1">import SMESH_mechanic</p>\r
245 \r
246 <p class="whs1">&nbsp;</p>\r
247 \r
248 <p class="whs1">smesh &nbsp;= \r
249  SMESH_mechanic.smesh</p>\r
250 \r
251 <p class="whs1">mesh &nbsp;&nbsp;= \r
252  SMESH_mechanic.mesh</p>\r
253 \r
254 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
255 \r
256 <p class="whs1">&nbsp;</p>\r
257 \r
258 <p class="whs2"># Get ids of all faces \r
259  with area &gt; 35</p>\r
260 \r
261 <p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, \r
262  smesh.FT_Area, smesh.FT_MoreThan, 35.)</p>\r
263 \r
264 <p class="whs1">&nbsp;</p>\r
265 \r
266 <p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter) \r
267  </p>\r
268 \r
269 <p class="whs1">&nbsp;</p>\r
270 \r
271 <p class="whs1">print &quot;Criterion: \r
272  Area &gt; 35, Nb = &quot;, len(anIds)</p>\r
273 \r
274 <p class="whs1">&nbsp;</p>\r
275 \r
276 <p class="whs2"># create a group by \r
277  adding elements with area &gt; 35</p>\r
278 \r
279 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup \r
280  = mesh.CreateEmptyGroup(smesh.FACE, &quot;Area &gt; 35&quot;)</span></p>\r
281 \r
282 <p class="whs1">aGroup.Add(anIds) \r
283  </p>\r
284 \r
285 <p class="whs1">&nbsp;</p>\r
286 \r
287 <p class="whs2"># Get ids of all faces \r
288  with area &gt; 40</p>\r
289 \r
290 <p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, \r
291  smesh.FT_Area, smesh.FT_MoreThan, 40.)</p>\r
292 \r
293 <p class="whs1">&nbsp;</p>\r
294 \r
295 <p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>\r
296 \r
297 <p class="whs1">&nbsp;</p>\r
298 \r
299 <p class="whs1">print &quot;Criterion: \r
300  Area &gt; 40, Nb = &quot;, len(anIds) </p>\r
301 \r
302 <p class="whs1">&nbsp;</p>\r
303 \r
304 <p class="whs2"># create a group of \r
305  elements with area [35; 40] by removing elements with area &gt; 40 from \r
306  group aGroup</p>\r
307 \r
308 <p class="whs1">aGroup.Remove(anIds) \r
309  </p>\r
310 \r
311 <p class="whs1">&nbsp;</p>\r
312 \r
313 <p class="whs2"># print the result</p>\r
314 \r
315 <p class="whs1">aGroupElemIDs = \r
316  aGroup.GetListOfID()</p>\r
317 \r
318 <p class="whs1">&nbsp;</p>\r
319 \r
320 <p class="whs1">print &quot;Criterion: \r
321  35 &lt; Area &lt; 40, Nb = &quot;, len(aGroupElemIDs)</p>\r
322 \r
323 <p class="whs1">j = 1</p>\r
324 \r
325 <p class="whs1">for i in range(len(aGroupElemIDs)):</p>\r
326 \r
327 <p class="whs1">&nbsp;&nbsp;if \r
328  j &gt; 20: j = 1; print &quot;&quot;</p>\r
329 \r
330 <p class="whs1">&nbsp;&nbsp;print \r
331  aGroupElemIDs[i],</p>\r
332 \r
333 <p class="whs1">&nbsp;&nbsp;j \r
334  = j + 1</p>\r
335 \r
336 <p class="whs1">&nbsp;&nbsp;pass</p>\r
337 \r
338 <p class="whs1">print &quot;&quot;</p>\r
339 \r
340 <p class="whs1">&nbsp;</p>\r
341 \r
342 <p class="whs1">salome.sg.updateObjBrowser(1) \r
343  </p>\r
344 \r
345 <p class="whs3">&nbsp;</p>\r
346 \r
347 <p class="whs3"><img src="pics/editing_groups1.png" x-maintain-ratio="TRUE" width="463px" height="417px" border="0" class="img_whs5"> &nbsp;<img src="pics/editing_groups2.png" x-maintain-ratio="TRUE" width="541px" height="417px" border="0" class="img_whs6"></p>\r
348 \r
349 <h3><a name=bookmark2>Union of two groups</a></h3>\r
350 \r
351 <p class="whs1">import SMESH_mechanic</p>\r
352 \r
353 <p class="whs1">&nbsp;</p>\r
354 \r
355 <p class="whs1">smesh &nbsp;= \r
356  SMESH_mechanic.smesh</p>\r
357 \r
358 <p class="whs1">mesh &nbsp;&nbsp;= \r
359  SMESH_mechanic.mesh</p>\r
360 \r
361 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
362 \r
363 <p class="whs1">&nbsp;</p>\r
364 \r
365 <p class="whs2"># Criterion : AREA \r
366  &gt; 20</p>\r
367 \r
368 <p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, \r
369  smesh.FT_Area, smesh.FT_MoreThan, 20.)</p>\r
370 \r
371 <p class="whs1">&nbsp;</p>\r
372 \r
373 <p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>\r
374 \r
375 <p class="whs1">&nbsp;</p>\r
376 \r
377 <p class="whs1">print &quot;Criterion: \r
378  Area &gt; 20, Nb = &quot;, len( anIds ) </p>\r
379 \r
380 <p class="whs1">&nbsp;</p>\r
381 \r
382 <p class="whs2"># create a group by \r
383  adding elements with area &gt; 20</p>\r
384 \r
385 <p class="whs1">aGroup1 = mesh.CreateGroup(SMESH.FACE, \r
386  &quot;Area &gt; 20&quot;)</p>\r
387 \r
388 <p class="whs1">aGroup1.Add(anIds)</p>\r
389 \r
390 <p class="whs1">&nbsp;</p>\r
391 \r
392 <p class="whs2"># Criterion : AREA \r
393  = 20</p>\r
394 \r
395 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter \r
396  = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_EqualTo, 20.)</span></p>\r
397 \r
398 <p class="whs1">&nbsp;</p>\r
399 \r
400 <p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>\r
401 \r
402 <p class="whs1">&nbsp;</p>\r
403 \r
404 <p class="whs1">print &quot;Criterion: \r
405  Area = 20, Nb = &quot;, len( anIds ) </p>\r
406 \r
407 <p class="whs1">&nbsp;</p>\r
408 \r
409 <p class="whs2"># create a group by \r
410  adding elements with area = 20</p>\r
411 \r
412 <p class="whs1">aGroup2 = mesh.CreateEmptyGroup( \r
413  smesh.FACE, &quot;Area = 20&quot; )</p>\r
414 \r
415 <p class="whs1">&nbsp;</p>\r
416 \r
417 <p class="whs1">aGroup2.Add(anIds)</p>\r
418 \r
419 <p class="whs1">&nbsp;</p>\r
420 \r
421 <p class="whs2"># create union group \r
422  : area &gt;= 20</p>\r
423 \r
424 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup3 \r
425  = mesh.UnionGroups(aGroup1, aGroup2, &quot;Area &gt;= 20&quot;)</span></p>\r
426 \r
427 <p class="whs1">print &quot;Criterion: \r
428  Area &gt;= 20, Nb = &quot;, len(aGroup3.GetListOfID())</p>\r
429 \r
430 <p class="whs1">&nbsp;</p>\r
431 \r
432 <p class="whs2"># Criterion : AREA \r
433  &lt; 20</p>\r
434 \r
435 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aFilter \r
436  = smesh.GetFilter(smesh.FACE, smesh.FT_Area, smesh.FT_LessThan, 20.)</span></p>\r
437 \r
438 <p class="whs1">&nbsp;</p>\r
439 \r
440 <p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>\r
441 \r
442 <p class="whs1">&nbsp;</p>\r
443 \r
444 <p class="whs1">print &quot;Criterion: \r
445  Area &lt; 20, Nb = &quot;, len(anIds)</p>\r
446 \r
447 <p class="whs1">&nbsp;</p>\r
448 \r
449 <p class="whs2"># create a group by \r
450  adding elements with area &lt; 20</p>\r
451 \r
452 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup4 \r
453  = mesh.CreateEmptyGroup(smesh.FACE, &quot;Area &lt; 20&quot;)</span></p>\r
454 \r
455 <p class="whs1">aGroup4.Add(anIds)</p>\r
456 \r
457 <p class="whs1">&nbsp;</p>\r
458 \r
459 <p class="whs2"># create union group \r
460  : area &gt;= 20 and area &lt; 20</p>\r
461 \r
462 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup5 \r
463  = mesh.UnionGroups(aGroup3, aGroup4, &quot;Any Area&quot;)</span></p>\r
464 \r
465 <p class="whs1">print &quot;Criterion: \r
466  Any Area, Nb = &quot;, len(aGroup5.GetListOfID())</p>\r
467 \r
468 <p class="whs1">&nbsp;</p>\r
469 \r
470 <p class="whs1">salome.sg.updateObjBrowser(1) \r
471  </p>\r
472 \r
473 <p class="whs1">&nbsp;</p>\r
474 \r
475 <p class="whs1"><img src="pics/union_groups1.png" x-maintain-ratio="TRUE" width="394px" height="425px" border="0" class="img_whs7"></p>\r
476 \r
477 <p class="whs1">&nbsp;</p>\r
478 \r
479 <p class="whs1"><img src="pics/union_groups2.png" x-maintain-ratio="TRUE" width="368px" height="379px" border="0" class="img_whs8"> <img src="pics/union_groups3.png" x-maintain-ratio="TRUE" width="344px" height="381px" border="0" class="img_whs9"></p>\r
480 \r
481 <p class="whs1">&nbsp;</p>\r
482 \r
483 <h3><a name=bookmark3>Intersection of two groups</a></h3>\r
484 \r
485 <p class="whs1">import SMESH_mechanic</p>\r
486 \r
487 <p class="whs1">&nbsp;</p>\r
488 \r
489 <p class="whs1">smesh &nbsp;= \r
490  SMESH_mechanic.smesh</p>\r
491 \r
492 <p class="whs1">mesh &nbsp;&nbsp;= \r
493  SMESH_mechanic.mesh</p>\r
494 \r
495 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
496 \r
497 <p class="whs1">&nbsp;</p>\r
498 \r
499 <p class="whs2"># Criterion : AREA \r
500  &gt; 20</p>\r
501 \r
502 <p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, \r
503  smesh.FT_Area, smesh.FT_MoreThan, 20.)</p>\r
504 \r
505 <p class="whs1">&nbsp;</p>\r
506 \r
507 <p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>\r
508 \r
509 <p class="whs1">&nbsp;</p>\r
510 \r
511 <p class="whs1">print &quot;Criterion: \r
512  Area &gt; 20, Nb = &quot;, len(anIds) </p>\r
513 \r
514 <p class="whs1">&nbsp;</p>\r
515 \r
516 <p class="whs2"># create a group by \r
517  adding elements with area &gt; 20</p>\r
518 \r
519 <p class="whs1">aGroup1 = mesh.CreateGroup(SMESH.FACE, \r
520  &quot;Area &gt; 20&quot;)</p>\r
521 \r
522 <p class="whs1">aGroup1.Add(anIds)</p>\r
523 \r
524 <p class="whs1">&nbsp;</p>\r
525 \r
526 <p class="whs2"># Criterion : AREA \r
527  &lt; 60</p>\r
528 \r
529 <p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, \r
530  smesh.FT_Area, smesh.FT_LessThan, 60.)</p>\r
531 \r
532 <p class="whs1">&nbsp;</p>\r
533 \r
534 <p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>\r
535 \r
536 <p class="whs1">&nbsp;</p>\r
537 \r
538 <p class="whs1">print &quot;Criterion: \r
539  Area &lt; 60, Nb = &quot;, len(anIds) </p>\r
540 \r
541 <p class="whs1">&nbsp;</p>\r
542 \r
543 <p class="whs2"># create a group by \r
544  adding elements with area &lt; 60</p>\r
545 \r
546 <p class="whs1">aGroup2 = mesh.CreateGroup(SMESH.FACE, \r
547  &quot;Area &lt; 60&quot;)</p>\r
548 \r
549 <p class="whs1">aGroup2.Add(anIds)</p>\r
550 \r
551 <p class="whs1">&nbsp;</p>\r
552 \r
553 <p class="whs2"># create an intersection \r
554  of groups : 20 &lt; area &lt; 60</p>\r
555 \r
556 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroup3 \r
557  = mesh.IntersectGroups(aGroup1, aGroup2, &quot;20 &lt; Area &lt; 60&quot;)</span></p>\r
558 \r
559 <p class="whs1">print &quot;Criterion: \r
560  20 &lt; Area &lt; 60, Nb = &quot;, len(aGroup3.GetListOfID())</p>\r
561 \r
562 <p class="whs1">&nbsp;</p>\r
563 \r
564 <p class="whs1">salome.sg.updateObjBrowser(1) \r
565  </p>\r
566 \r
567 <p class="whs3">&nbsp;</p>\r
568 \r
569 <p class="whs3"><img src="pics/intersect_groups1.png" x-maintain-ratio="TRUE" width="314px" height="351px" border="0" class="img_whs10"> &nbsp;<img src="pics/intersect_groups2.png" x-maintain-ratio="TRUE" width="319px" height="351px" border="0" class="img_whs11"> &nbsp;<img src="pics/intersect_groups3.png" x-maintain-ratio="TRUE" width="304px" height="352px" border="0" class="img_whs12"></p>\r
570 \r
571 <h3><a name=bookmark4>Cut of two groups</a></h3>\r
572 \r
573 <p class="whs1">import SMESH_mechanic</p>\r
574 \r
575 <p class="whs1">&nbsp;</p>\r
576 \r
577 <p class="whs1">smesh &nbsp;= \r
578  SMESH_mechanic.smesh</p>\r
579 \r
580 <p class="whs1">mesh &nbsp;&nbsp;= \r
581  SMESH_mechanic.mesh</p>\r
582 \r
583 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
584 \r
585 <p class="whs1">&nbsp;</p>\r
586 \r
587 <p class="whs2"># Criterion : AREA \r
588  &gt; 20</p>\r
589 \r
590 <p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, \r
591  smesh.FT_Area, smesh.FT_MoreThan, 20.)</p>\r
592 \r
593 <p class="whs1">&nbsp;</p>\r
594 \r
595 <p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>\r
596 \r
597 <p class="whs1">&nbsp;</p>\r
598 \r
599 <p class="whs1">print &quot;Criterion: \r
600  Area &gt; 20, Nb = &quot;, len(anIds) </p>\r
601 \r
602 <p class="whs1">&nbsp;</p>\r
603 \r
604 <p class="whs2"># create a group by \r
605  adding elements with area &gt; 20</p>\r
606 \r
607 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroupMain \r
608  = mesh.MakeGroupByIds(&quot;Area &gt; 20&quot;, smesh.FACE, anIds)</span></p>\r
609 \r
610 <p class="whs1">&nbsp;</p>\r
611 \r
612 <p class="whs2"># Criterion : AREA \r
613  &lt; 60</p>\r
614 \r
615 <p class="whs1">aFilter = smesh.GetFilter(smesh.FACE, \r
616  smesh.FT_Area, smesh.FT_LessThan, 60.)</p>\r
617 \r
618 <p class="whs1">&nbsp;</p>\r
619 \r
620 <p class="whs1">anIds = mesh.GetIdsFromFilter(aFilter)</p>\r
621 \r
622 <p class="whs1">&nbsp;</p>\r
623 \r
624 <p class="whs1">print &quot;Criterion: \r
625  Area &lt; 60, Nb = &quot;, len(anIds) </p>\r
626 \r
627 <p class="whs1">&nbsp;</p>\r
628 \r
629 <p class="whs2"># create a group by \r
630  adding elements with area &lt; 60</p>\r
631 \r
632 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroupTool \r
633  = mesh.MakeGroupByIds(&quot;Area &lt; 60&quot;, smesh.FACE, anIds)</span></p>\r
634 \r
635 <p class="whs1">&nbsp;</p>\r
636 \r
637 <p class="whs2"># create a cut of groups \r
638  : area &gt;= 60</p>\r
639 \r
640 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">aGroupRes \r
641  = mesh.CutGroups(aGroupMain, aGroupTool, &quot;Area &gt;= 60&quot;)</span></p>\r
642 \r
643 <p class="whs1">print &quot;Criterion: \r
644  Area &gt;= 60, Nb = &quot;, len(aGroupRes.GetListOfID())</p>\r
645 \r
646 <p class="whs1">&nbsp;</p>\r
647 \r
648 <p class="whs1">salome.sg.updateObjBrowser(1) \r
649  </p>\r
650 \r
651 <p class="whs1">&nbsp;</p>\r
652 \r
653 <p class="whs3"><img src="pics/cut_groups1.png" x-maintain-ratio="TRUE" width="318px" height="355px" border="0" class="img_whs13"> &nbsp;<img src="pics/cut_groups2.png" x-maintain-ratio="TRUE" width="318px" height="355px" border="0" class="img_whs14"> &nbsp;<img src="pics/cut_groups3.png" x-maintain-ratio="TRUE" width="320px" height="354px" border="0" class="img_whs15"></p>\r
654 \r
655 <script type="text/javascript" language="javascript1.2">\r
656 <!--\r
657 if (window.writeIntopicBar)\r
658         writeIntopicBar(0);\r
659 //-->\r
660 </script>\r
661 </body>\r
662 </html>\r