Salome HOME
Warn about direct SMESH idl usage: smesh python package have to be used where it...
[modules/smesh.git] / doc / salome / gui / SMESH / modifying_meshes.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>Modifying Meshes</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>\r
9 <!--\r
10 P { margin-top:0pt; margin-bottom:0pt; }\r
11 LI.kadov-P {  }\r
12 -->\r
13 </style><style type="text/css">\r
14 <!--\r
15 p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
16 p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
17 p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }\r
18 h4.whs4 { margin-top:0pt; margin-bottom:0pt; }\r
19 p.whs5 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
20 p.whs6 { margin-top:0.5pt; margin-bottom:0pt; }\r
21 p.whs7 { font-family:'Lucida Console' , monospace; }\r
22 p.whs8 { font-family:'Times New Roman' , serif; }\r
23 p.whs9 { margin-left:40px; font-family:'Lucida Console' , monospace; }\r
24 -->\r
25 </style><script type="text/javascript" language="JavaScript">\r
26 <!--\r
27 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
28 {\r
29   var strNSS = "<style type='text/css'>";\r
30   strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";\r
31   strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";\r
32   strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";\r
33   strNSS += "h4.whs4 {margin-top:1pt;margin-bottom:1pt; }";\r
34   strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";\r
35   strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";\r
36   strNSS +="</style>";\r
37   document.write(strNSS);\r
38 }\r
39 //-->\r
40 </script>\r
41 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
42 <!--\r
43 function reDo() {\r
44   if (innerWidth != origWidth || innerHeight != origHeight)\r
45      location.reload();\r
46 }\r
47 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
48         origWidth = innerWidth;\r
49         origHeight = innerHeight;\r
50         onresize = reDo;\r
51 }\r
52 onerror = null; \r
53 //-->\r
54 </script>\r
55 <style type="text/css">\r
56 <!--\r
57 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
58 p.WebHelpNavBar { text-align:right; }\r
59 -->\r
60 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
61 <script type="text/javascript" language="javascript" src="whver.js"></script>\r
62 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
63 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
64 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
65 <script type="text/javascript" language="javascript1.2">\r
66 <!--\r
67 if (window.gbWhTopic)\r
68 {\r
69         if (window.setRelStartPage)\r
70         {\r
71         addTocInfo("MESH module\nTUI Scripts\nModifying Meshes");\r
72 addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
73 addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
74 \r
75         }\r
76 \r
77 \r
78         if (window.setRelStartPage)\r
79         {\r
80         setRelStartPage("index.htm");\r
81 \r
82                 autoSync(1);\r
83                 sendSyncInfo();\r
84                 sendAveInfoOut();\r
85         }\r
86 \r
87 }\r
88 else\r
89         if (window.gbIE4)\r
90                 document.location.reload();\r
91 //-->\r
92 </script>\r
93 </head>\r
94 <body><script type="text/javascript" language="javascript1.2">\r
95 <!--\r
96 if (window.writeIntopicBar)\r
97         writeIntopicBar(4);\r
98 //-->\r
99 </script>\r
100 <h1>Modifying Meshes</h1>\r
101 \r
102 <h3><a name=bookmark>Adding Nodes and Elements</a></h3>\r
103 \r
104 <h4>Add Node</h4>\r
105 \r
106 <p class="whs1">import SMESH</p>\r
107 \r
108 <p class="whs1">import SMESH_mechanic</p>\r
109 \r
110 <p class="whs1">&nbsp;</p>\r
111 \r
112 <p class="whs1">smesh &nbsp;= \r
113  SMESH_mechanic.smesh</p>\r
114 \r
115 <p class="whs1">mesh &nbsp;&nbsp;= \r
116  SMESH_mechanic.mesh</p>\r
117 \r
118 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
119 \r
120 <p class="whs2">&nbsp;</p>\r
121 \r
122 <p class="whs2"># add node</p>\r
123 \r
124 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
125 \r
126 <p class="whs1">if aMeshEditor.AddNode(50, \r
127  10, 0) == 1:</p>\r
128 \r
129 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
130  &quot;Node addition is OK!&quot;</p>\r
131 \r
132 <p class="whs1">else:</p>\r
133 \r
134 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
135  &quot;KO node addition.&quot;</p>\r
136 \r
137 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
138 \r
139 <p class="whs1">salome.sg.updateObjBrowser(1) \r
140  </p>\r
141 \r
142 <p class="whs1">&nbsp;</p>\r
143 \r
144 <h4>Add Edge</h4>\r
145 \r
146 <p class="whs1">import SMESH</p>\r
147 \r
148 <p class="whs1">import SMESH_mechanic</p>\r
149 \r
150 <p class="whs1">&nbsp;</p>\r
151 \r
152 <p class="whs1">smesh &nbsp;= \r
153  SMESH_mechanic.smesh</p>\r
154 \r
155 <p class="whs1">mesh &nbsp;&nbsp;= \r
156  SMESH_mechanic.mesh</p>\r
157 \r
158 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
159 \r
160 <p class="whs2">&nbsp;</p>\r
161 \r
162 <p class="whs2"># add node</p>\r
163 \r
164 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
165 \r
166 <p class="whs1">if aMeshEditor.AddNode(50, \r
167  10, 0) == 1:</p>\r
168 \r
169 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
170  &quot;Node addition is OK!&quot;</p>\r
171 \r
172 <p class="whs1">else:</p>\r
173 \r
174 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
175  &quot;KO node addition.&quot;</p>\r
176 \r
177 <p class="whs1">&nbsp;</p>\r
178 \r
179 <p class="whs2"># add edge</p>\r
180 \r
181 <p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
182 \r
183 <p class="whs1">if aMeshEditor.AddEdge([LastNodeId, \r
184  38]) == 1:</p>\r
185 \r
186 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
187  &quot;Edge addition is OK!&quot;</p>\r
188 \r
189 <p class="whs1">else:</p>\r
190 \r
191 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
192  &quot;KO edge addition.&quot;</p>\r
193 \r
194 <p class="whs1">&nbsp;</p>\r
195 \r
196 <p class="whs1">salome.sg.updateObjBrowser(1) \r
197  </p>\r
198 \r
199 <p class="whs1">&nbsp;</p>\r
200 \r
201 <h4>Add Triangle</h4>\r
202 \r
203 <p class="whs1">import SMESH</p>\r
204 \r
205 <p class="whs1">import SMESH_mechanic</p>\r
206 \r
207 <p class="whs1">&nbsp;</p>\r
208 \r
209 <p class="whs1">smesh &nbsp;= \r
210  SMESH_mechanic.smesh</p>\r
211 \r
212 <p class="whs1">mesh &nbsp;&nbsp;= \r
213  SMESH_mechanic.mesh</p>\r
214 \r
215 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
216 \r
217 <p class="whs1">&nbsp;</p>\r
218 \r
219 <p class="whs2"># add node</p>\r
220 \r
221 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
222 \r
223 <p class="whs1">if aMeshEditor.AddNode(50, \r
224  10, 0) == 1:</p>\r
225 \r
226 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
227  &quot;Node addition is OK!&quot;</p>\r
228 \r
229 <p class="whs1">else:</p>\r
230 \r
231 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
232  &quot;KO node addition.&quot;</p>\r
233 \r
234 <p class="whs1">&nbsp;</p>\r
235 \r
236 <p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
237 \r
238 <p class="whs2">&nbsp;</p>\r
239 \r
240 <p class="whs2"># add triangle</p>\r
241 \r
242 <p class="whs1">if aMeshEditor.AddFace([LastNodeId, \r
243  38, 39]) == 1:</p>\r
244 \r
245 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
246  &quot;Triangle addition is OK!&quot;</p>\r
247 \r
248 <p class="whs1">else:</p>\r
249 \r
250 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
251  &quot;KO triangle addition.&quot;</p>\r
252 \r
253 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
254 \r
255 <p class="whs1">salome.sg.updateObjBrowser(1) \r
256  </p>\r
257 \r
258 <p class="whs1">&nbsp;</p>\r
259 \r
260 <h4>Add Quadrangle</h4>\r
261 \r
262 <p class="whs1">import SMESH</p>\r
263 \r
264 <p class="whs1">import SMESH_mechanic</p>\r
265 \r
266 <p class="whs1">&nbsp;</p>\r
267 \r
268 <p class="whs1">smesh &nbsp;= \r
269  SMESH_mechanic.smesh</p>\r
270 \r
271 <p class="whs1">mesh &nbsp;&nbsp;= \r
272  SMESH_mechanic.mesh</p>\r
273 \r
274 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
275 \r
276 <p class="whs1">&nbsp;</p>\r
277 \r
278 <p class="whs2"># add node</p>\r
279 \r
280 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
281 \r
282 <p class="whs1">if aMeshEditor.AddNode(50, \r
283  10, 0) == 1:</p>\r
284 \r
285 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
286  &quot;Node addition is OK!&quot;</p>\r
287 \r
288 <p class="whs1">else:</p>\r
289 \r
290 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
291  &quot;KO node addition.&quot;</p>\r
292 \r
293 <p class="whs1">&nbsp;</p>\r
294 \r
295 <p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
296 \r
297 <p class="whs2">&nbsp;</p>\r
298 \r
299 <p class="whs2"># add quadrangle</p>\r
300 \r
301 <p class="whs1">if aMeshEditor.AddNode(40, \r
302  20, 0) == 1:</p>\r
303 \r
304 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
305  &quot;Node addition is OK!&quot;</p>\r
306 \r
307 <p class="whs1">else:</p>\r
308 \r
309 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
310  &quot;KO node addition.&quot;</p>\r
311 \r
312 <p class="whs1">if aMeshEditor.AddFace([mesh.NbNodes(), \r
313  LastNodeId, 38, 39]) == 1:</p>\r
314 \r
315 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
316  &quot;Quadrangle addition is OK!&quot;</p>\r
317 \r
318 <p class="whs1">else:</p>\r
319 \r
320 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
321  &quot;KO quadrangle addition.&quot;</p>\r
322 \r
323 <p class="whs1">&nbsp;</p>\r
324 \r
325 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
326  </p>\r
327 \r
328 <p class="whs2">&nbsp;</p>\r
329 \r
330 <h4>Add Tetrahedron</h4>\r
331 \r
332 <p class="whs1">import SMESH</p>\r
333 \r
334 <p class="whs1">import SMESH_mechanic</p>\r
335 \r
336 <p class="whs1">&nbsp;</p>\r
337 \r
338 <p class="whs1">smesh &nbsp;= \r
339  SMESH_mechanic.smesh</p>\r
340 \r
341 <p class="whs1">mesh &nbsp;&nbsp;= \r
342  SMESH_mechanic.mesh</p>\r
343 \r
344 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
345 \r
346 <p class="whs1">&nbsp;</p>\r
347 \r
348 <p class="whs2"># add node</p>\r
349 \r
350 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
351 \r
352 <p class="whs1">if aMeshEditor.AddNode(50, \r
353  10, 0) == 1:</p>\r
354 \r
355 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
356  &quot;Node addition is OK!&quot;</p>\r
357 \r
358 <p class="whs1">else:</p>\r
359 \r
360 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
361  &quot;KO node addition.&quot;</p>\r
362 \r
363 <p class="whs1">&nbsp;</p>\r
364 \r
365 <p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
366 \r
367 <p class="whs2">&nbsp;</p>\r
368 \r
369 <p class="whs2"># add tetrahedron</p>\r
370 \r
371 <p class="whs1">if aMeshEditor.AddVolume([LastNodeId, \r
372  38, 39, 246]) == 1:</p>\r
373 \r
374 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
375  &quot;Tetrahedron addition is OK!&quot;</p>\r
376 \r
377 <p class="whs1">else:</p>\r
378 \r
379 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
380  &quot;KO tetrahedron addition.&quot;</p>\r
381 \r
382 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
383 \r
384 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
385  </p>\r
386 \r
387 <p class="whs2">&nbsp;</p>\r
388 \r
389 <h4>Add Hexahedron</h4>\r
390 \r
391 <p class="whs1">import SMESH</p>\r
392 \r
393 <p class="whs1">import SMESH_mechanic</p>\r
394 \r
395 <p class="whs1">&nbsp;</p>\r
396 \r
397 <p class="whs1">smesh &nbsp;= \r
398  SMESH_mechanic.smesh</p>\r
399 \r
400 <p class="whs1">mesh &nbsp;&nbsp;= \r
401  SMESH_mechanic.mesh</p>\r
402 \r
403 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
404 \r
405 <p class="whs1">&nbsp;</p>\r
406 \r
407 <p class="whs2"># add nodes</p>\r
408 \r
409 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
410 \r
411 <p class="whs1">if aMeshEditor.AddNode(50, \r
412  10, 0) == 1:</p>\r
413 \r
414 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
415  &quot;Node addition is OK!&quot;</p>\r
416 \r
417 <p class="whs1">else:</p>\r
418 \r
419 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
420  &quot;KO node addition.&quot;</p>\r
421 \r
422 <p class="whs1">aNodeId1 = mesh.NbNodes()</p>\r
423 \r
424 <p class="whs1">&nbsp;</p>\r
425 \r
426 <p class="whs1">if aMeshEditor.AddNode(47, \r
427  12, 0) == 1:</p>\r
428 \r
429 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
430  &quot;Node addition is OK!&quot;</p>\r
431 \r
432 <p class="whs1">else:</p>\r
433 \r
434 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
435  &quot;KO node addition.&quot;</p>\r
436 \r
437 <p class="whs1">aNodeId2 = mesh.NbNodes()</p>\r
438 \r
439 <p class="whs1">&nbsp;</p>\r
440 \r
441 <p class="whs1">if aMeshEditor.AddNode(50, \r
442  10, 10) == 1:</p>\r
443 \r
444 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
445  &quot;Node addition is OK!&quot;</p>\r
446 \r
447 <p class="whs1">else:</p>\r
448 \r
449 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
450  &quot;KO node addition.&quot;</p>\r
451 \r
452 <p class="whs1">aNodeId3 = mesh.NbNodes()</p>\r
453 \r
454 <p class="whs1">&nbsp;</p>\r
455 \r
456 <p class="whs1">if aMeshEditor.AddNode(47, \r
457  12, 10) == 1:</p>\r
458 \r
459 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
460  &quot;Node addition is OK!&quot;</p>\r
461 \r
462 <p class="whs1">else:</p>\r
463 \r
464 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
465  &quot;KO node addition.&quot;</p>\r
466 \r
467 <p class="whs1">aNodeId4 = mesh.NbNodes()</p>\r
468 \r
469 <p class="whs1">&nbsp;</p>\r
470 \r
471 <p class="whs2"># add hexahedron</p>\r
472 \r
473 <p class="whs1">if aMeshEditor.AddVolume([aNodeId2, \r
474  aNodeId1, 38, 39, aNodeId4, aNodeId3, 245, 246]) == 1:</p>\r
475 \r
476 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
477  &quot;Hexahedron addition is OK!&quot;</p>\r
478 \r
479 <p class="whs1">else:</p>\r
480 \r
481 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
482  &quot;KO Hexahedron addition.&quot;</p>\r
483 \r
484 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
485 \r
486 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
487  </p>\r
488 \r
489 <p class="whs2">&nbsp;</p>\r
490 \r
491 <h4>Add Polygon</h4>\r
492 \r
493 <p class="whs1">import salome</p>\r
494 \r
495 <p class="whs1">import geompy</p>\r
496 \r
497 <p class="whs1">import math</p>\r
498 \r
499 <p class="whs1">&nbsp;</p>\r
500 \r
501 <p class="whs1">import StdMeshers</p>\r
502 \r
503 <p class="whs1">&nbsp;</p>\r
504 \r
505 <p class="whs2"># GEOM module </p>\r
506 \r
507 <p class="whs1">shape_mesh = geompy.MakeCylinderRH(13, \r
508  77)</p>\r
509 \r
510 <p class="whs1">geompy.addToStudy(shape_mesh, \r
511  &quot;cylinder&quot;)</p>\r
512 \r
513 <p class="whs1">&nbsp;</p>\r
514 \r
515 <p class="whs2"># SMESH module</p>\r
516 \r
517 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
518  &quot;SMESH&quot;)</p>\r
519 \r
520 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>\r
521 \r
522 <p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>\r
523 \r
524 <p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>\r
525 \r
526 <p class="whs1">&nbsp;</p>\r
527 \r
528 <p class="whs2"># a method to build a polygonal \r
529  mesh element with nb_vert angles:</p>\r
530 \r
531 <p class="whs1">def MakePolygon \r
532  (a_mesh, x0, y0, z0, radius, nb_vert):</p>\r
533 \r
534 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;node_start_id \r
535  = a_mesh.NbNodes() + 1</p>\r
536 \r
537 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;al \r
538  = 2.0 * math.pi / nb_vert</p>\r
539 \r
540 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;node_ids \r
541  = []</p>\r
542 \r
543 <p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
544 \r
545 <p class="whs2"># Create nodes for a polyhedron</p>\r
546 \r
547 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;for \r
548  ii in range(nb_vert):</p>\r
549 \r
550 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(x0 \r
551  + radius * math.cos(ii*al),</p>\r
552 \r
553 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y0 \r
554  + radius * math.sin(ii*al),</p>\r
555 \r
556 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z0)</p>\r
557 \r
558 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;node_ids.append(node_start_id \r
559  + ii)</p>\r
560 \r
561 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pass</p>\r
562 \r
563 <p class="whs2">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
564 \r
565 <p class="whs2"># Create a polygon</p>\r
566 \r
567 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddPolygonalFace(node_ids)</p>\r
568 \r
569 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;return \r
570  0</p>\r
571 \r
572 <p class="whs1">&nbsp;</p>\r
573 \r
574 <p class="whs2"># Create three polygons</p>\r
575 \r
576 <p class="whs1">MakePolygon(mesh, \r
577  0, 0, &nbsp;0, \r
578  30, 13)</p>\r
579 \r
580 <p class="whs1">MakePolygon(mesh, \r
581  0, 0, 10, 21, &nbsp;9)</p>\r
582 \r
583 <p class="whs1">MakePolygon(mesh, \r
584  0, 0, 20, 13, &nbsp;6)</p>\r
585 \r
586 <p class="whs1">&nbsp;</p>\r
587 \r
588 <p class="whs1">salome.sg.updateObjBrowser(1) \r
589  &nbsp;</p>\r
590 \r
591 <p class="whs1">&nbsp;</p>\r
592 \r
593 <h4>Add polyhedron</h4>\r
594 \r
595 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import \r
596  salome</span></p>\r
597 \r
598 <p class="whs1">import geompy</p>\r
599 \r
600 <p class="whs1">import math</p>\r
601 \r
602 <p class="whs1">&nbsp;</p>\r
603 \r
604 <p class="whs1">#import SMESH</p>\r
605 \r
606 <p class="whs1">import StdMeshers</p>\r
607 \r
608 <p class="whs1">&nbsp;</p>\r
609 \r
610 <p class="whs3"># GEOM</p>\r
611 \r
612 <p class="whs1">shape_mesh = geompy.MakeCylinderRH(13, \r
613  77)</p>\r
614 \r
615 <p class="whs1">geompy.addToStudy(shape_mesh, \r
616  &quot;cylinder&quot;)</p>\r
617 \r
618 <p class="whs1">&nbsp;</p>\r
619 \r
620 <p class="whs3"># SMESH</p>\r
621 \r
622 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
623  &quot;SMESH&quot;)</p>\r
624 \r
625 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>\r
626 \r
627 <p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>\r
628 \r
629 <p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>\r
630 \r
631 <p class="whs1">&nbsp;</p>\r
632 \r
633 <p class="whs3"># Now we are going \r
634  to create a 12-hedron:</p>\r
635 \r
636 <p class="whs3">&nbsp;</p>\r
637 \r
638 <p class="whs3"># Create nodes for \r
639  polyhedron</p>\r
640 \r
641 <p class="whs1">al = 2 * math.pi \r
642  / 5.0</p>\r
643 \r
644 <p class="whs1">cosal = math.cos(al)</p>\r
645 \r
646 <p class="whs1">&nbsp;</p>\r
647 \r
648 <p class="whs1">aa = 13</p>\r
649 \r
650 <p class="whs1">rr = aa / (2.0 * \r
651  math.sin(al/2.0))</p>\r
652 \r
653 <p class="whs1">dr = 2.0 * rr * \r
654  cosal</p>\r
655 \r
656 <p class="whs1">r1 = rr + dr</p>\r
657 \r
658 <p class="whs1">dh = rr * math.sqrt(2.0 \r
659  * (1.0 - cosal * (1.0 + 2.0 * cosal)))</p>\r
660 \r
661 <p class="whs1">hh = 2.0 * dh - \r
662  dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh</p>\r
663 \r
664 <p class="whs1">&nbsp;</p>\r
665 \r
666 <p class="whs1">for i in range(5):</p>\r
667 \r
668 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(rr*math.cos(i*al), \r
669  rr*math.sin(i*al), &nbsp;0) \r
670  <span style="font-family: 'Times New Roman', serif;"># 1,3,5,7, 9 # bottom</span></p>\r
671 \r
672 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(r1*math.cos(i*al), \r
673  r1*math.sin(i*al), dh) <span style="font-family: 'Times New Roman', serif;"># \r
674  2,4,6,8,10 # above bottom</span></p>\r
675 \r
676 <p class="whs1">&nbsp;</p>\r
677 \r
678 <p class="whs1">for i in range(5):</p>\r
679 \r
680 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(rr*math.cos(i*al \r
681  + al/2.0),</p>\r
682 \r
683 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rr*math.sin(i*al \r
684  + al/2.0), hh) # 11,13,15,17,19 <span style="font-family: 'Times New Roman', serif;"># \r
685  top</span></p>\r
686 \r
687 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;MeshEditor.AddNode(r1*math.cos(i*al \r
688  + al/2.0),</p>\r
689 \r
690 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r1*math.sin(i*al \r
691  + al/2.0), hh - dh) # 12,14,16,18,20 <span style="font-family: 'Times New Roman', serif;"># \r
692  below top</span></p>\r
693 \r
694 <p class="whs1">&nbsp;</p>\r
695 \r
696 <p class="whs3"># Create a polyhedral \r
697  volume</p>\r
698 \r
699 <p class="whs1">MeshEditor.AddPolyhedralVolume([ \r
700  1, &nbsp;3, &nbsp;5, \r
701  &nbsp;7, &nbsp;9, \r
702  &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
703  bottom</span></p>\r
704 \r
705 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1, \r
706  &nbsp;2, 12, \r
707  &nbsp;4, &nbsp;3, \r
708  &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
709  .</span></p>\r
710 \r
711 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3, \r
712  &nbsp;4, 14, \r
713  &nbsp;6, &nbsp;5, \r
714  &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
715  .</span></p>\r
716 \r
717 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5, \r
718  &nbsp;6, 16, \r
719  &nbsp;8, &nbsp;7, \r
720  &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
721  . above bottom</span></p>\r
722 \r
723 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7, \r
724  &nbsp;8, 18, \r
725  10, &nbsp;9, \r
726  &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
727  .</span></p>\r
728 \r
729 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9, \r
730  10, 20, &nbsp;2, \r
731  &nbsp;1, &nbsp;<span \r
732  style="font-family: 'Times New Roman', serif;"># \r
733  .</span></p>\r
734 \r
735 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11, \r
736  12, &nbsp;4, \r
737  14, 13, &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
738  -</span></p>\r
739 \r
740 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13, \r
741  14, &nbsp;6, \r
742  16, 15, &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
743  -</span></p>\r
744 \r
745 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15, \r
746  16, &nbsp;8, \r
747  18, 17, &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
748  - below top</span></p>\r
749 \r
750 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;17, \r
751  18, 10, 20, 19, &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
752  -</span></p>\r
753 \r
754 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;19, \r
755  20, &nbsp;2, \r
756  12, 11, &nbsp;<span style="font-family: 'Times New Roman', serif;"># \r
757  -</span></p>\r
758 \r
759 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11, \r
760  13, 15, 17, 19], <span style="font-family: 'Times New Roman', serif;"># \r
761  top</span></p>\r
762 \r
763 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[5,5,5,5,5,5,5,5,5,5,5,5])</p>\r
764 \r
765 <p class="whs1">&nbsp;</p>\r
766 \r
767 <p class="whs1">salome.sg.updateObjBrowser(1) \r
768  &nbsp;</p>\r
769 \r
770 <p class="whs1">&nbsp;</p>\r
771 \r
772 <h3><a name=bookmark1>Removing Nodes and Elements</a></h3>\r
773 \r
774 <h4 class="whs4">Removing Nodes</h4>\r
775 \r
776 <p class="whs2">&nbsp;</p>\r
777 \r
778 <p class="whs1">import SMESH</p>\r
779 \r
780 <p class="whs1">import SMESH_mechanic</p>\r
781 \r
782 <p class="whs1">&nbsp;</p>\r
783 \r
784 <p class="whs1">smesh &nbsp;= \r
785  SMESH_mechanic.smesh</p>\r
786 \r
787 <p class="whs1">mesh &nbsp;&nbsp;= \r
788  SMESH_mechanic.mesh</p>\r
789 \r
790 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
791 \r
792 <p class="whs2">&nbsp;</p>\r
793 \r
794 <p class="whs2"># add node</p>\r
795 \r
796 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
797 \r
798 <p class="whs1">if aMeshEditor.RemoveNodes([246, \r
799  255]) == 1:</p>\r
800 \r
801 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
802  &quot;Node removing is OK!&quot;</p>\r
803 \r
804 <p class="whs1">else:</p>\r
805 \r
806 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
807  &quot;KO node removing.&quot;</p>\r
808 \r
809 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
810 \r
811 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
812  </p>\r
813 \r
814 <p class="whs2">&nbsp;</p>\r
815 \r
816 <h4>Removing Elements</h4>\r
817 \r
818 <p class="whs1">import SMESH</p>\r
819 \r
820 <p class="whs1">import SMESH_mechanic</p>\r
821 \r
822 <p class="whs1">&nbsp;</p>\r
823 \r
824 <p class="whs1">smesh &nbsp;= \r
825  SMESH_mechanic.smesh</p>\r
826 \r
827 <p class="whs1">mesh &nbsp;&nbsp;= \r
828  SMESH_mechanic.mesh</p>\r
829 \r
830 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
831 \r
832 <p class="whs1">&nbsp;</p>\r
833 \r
834 <p class="whs1">anEditor = mesh.GetMeshEditor()</p>\r
835 \r
836 <p class="whs1">anEditor.RemoveElements([850, \r
837  859, 814])</p>\r
838 \r
839 <p class="whs1">&nbsp;</p>\r
840 \r
841 <p class="whs1">salome.sg.updateObjBrowser(1) \r
842  </p>\r
843 \r
844 <p class="whs1">&nbsp;</p>\r
845 \r
846 <h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>\r
847 \r
848 <p class="whs5">import SMESH</p>\r
849 \r
850 <p class="whs5">import SMESH_mechanic</p>\r
851 \r
852 <p class="whs5">&nbsp;</p>\r
853 \r
854 <p class="whs5">mesh &nbsp;&nbsp;= \r
855  SMESH_mechanic.mesh</p>\r
856 \r
857 <p class="whs5">salome = SMESH_mechanic.salome</p>\r
858 \r
859 <p class="whs5">&nbsp;</p>\r
860 \r
861 <p class="whs5">anEditor = mesh.GetMeshEditor()</p>\r
862 \r
863 <p class="whs5">anEditor.RenumberNodes()</p>\r
864 \r
865 <p class="whs5">&nbsp;</p>\r
866 \r
867 <p class="whs6"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
868  </p>\r
869 \r
870 <p class="whs6">&nbsp;</p>\r
871 \r
872 <p>&nbsp;</p>\r
873 \r
874 <h3><a name=bookmark3>Moving Nodes</a></h3>\r
875 \r
876 <p class="whs1">import SMESH</p>\r
877 \r
878 <p class="whs1">import SMESH_mechanic</p>\r
879 \r
880 <p class="whs1">&nbsp;</p>\r
881 \r
882 <p class="whs1">smesh &nbsp;= \r
883  SMESH_mechanic.smesh</p>\r
884 \r
885 <p class="whs1">mesh &nbsp;&nbsp;= \r
886  SMESH_mechanic.mesh</p>\r
887 \r
888 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
889 \r
890 <p class="whs1">&nbsp;</p>\r
891 \r
892 <p class="whs2"># move node</p>\r
893 \r
894 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
895 \r
896 <p class="whs1">aMeshEditor.MoveNode(38, \r
897  20, 10, 0)</p>\r
898 \r
899 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
900 \r
901 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
902  </p>\r
903 \r
904 <p class="whs2">&nbsp;</p>\r
905 \r
906 <h3><a name=bookmark4>Diagonal Inversion</a></h3>\r
907 \r
908 <p class="whs1">import SMESH</p>\r
909 \r
910 <p class="whs1">import SMESH_mechanic</p>\r
911 \r
912 <p class="whs1">&nbsp;</p>\r
913 \r
914 <p class="whs1">smesh &nbsp;= \r
915  SMESH_mechanic.smesh</p>\r
916 \r
917 <p class="whs1">mesh &nbsp;&nbsp;= \r
918  SMESH_mechanic.mesh</p>\r
919 \r
920 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
921 \r
922 <p class="whs1">&nbsp;</p>\r
923 \r
924 <p class="whs2"># inverse diagonal</p>\r
925 \r
926 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
927 \r
928 <p class="whs1">aMeshEditor.InverseDiag(700, \r
929  642)</p>\r
930 \r
931 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
932 \r
933 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
934  </p>\r
935 \r
936 <p class="whs2">&nbsp;</p>\r
937 \r
938 <h3><a name=bookmark5>Uniting two Triangles</a></h3>\r
939 \r
940 <p class="whs7">import SMESH</p>\r
941 \r
942 <p class="whs7">import SMESH_mechanic</p>\r
943 \r
944 <p class="whs7">&nbsp;</p>\r
945 \r
946 <p class="whs7">smesh &nbsp;= \r
947  SMESH_mechanic.smesh</p>\r
948 \r
949 <p class="whs7">mesh &nbsp;&nbsp;= \r
950  SMESH_mechanic.mesh</p>\r
951 \r
952 <p class="whs7">salome = SMESH_mechanic.salome</p>\r
953 \r
954 <p class="whs7">&nbsp;</p>\r
955 \r
956 <p># delete diagonal</p>\r
957 \r
958 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
959 \r
960 <p class="whs7">aMeshEditor.DeleteDiag(700, \r
961  642)</p>\r
962 \r
963 <p class="whs7">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
964 \r
965 <p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
966  </p>\r
967 \r
968 <p>&nbsp;</p>\r
969 \r
970 <h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>\r
971 \r
972 <p class="whs7">import SMESH</p>\r
973 \r
974 <p class="whs7">import SMESH_mechanic</p>\r
975 \r
976 <p class="whs7">&nbsp;</p>\r
977 \r
978 <p class="whs7">smesh &nbsp;= \r
979  SMESH_mechanic.smesh</p>\r
980 \r
981 <p class="whs7">mesh &nbsp;&nbsp;= \r
982  SMESH_mechanic.mesh</p>\r
983 \r
984 <p class="whs7">salome = SMESH_mechanic.salome</p>\r
985 \r
986 <p class="whs7">&nbsp;</p>\r
987 \r
988 <p># unite a set of triangles</p>\r
989 \r
990 <p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>\r
991 \r
992 <p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
993 \r
994 <p class="whs7">&nbsp;</p>\r
995 \r
996 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
997 \r
998 <p class="whs7">aMeshEditor.TriToQuad([1145, \r
999  1147, 1159, 1135], aFunctor, 60)</p>\r
1000 \r
1001 <p class="whs7">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
1002 \r
1003 <p class="whs7">salome.sg.updateObjBrowser(1) \r
1004  </p>\r
1005 \r
1006 <p class="whs7">&nbsp;</p>\r
1007 \r
1008 <h3><a name=bookmark12>Orientation</a></h3>\r
1009 \r
1010 <p class="whs7"><span style="font-family: 'Lucida Console', monospace;">import \r
1011  salome</span></p>\r
1012 \r
1013 <p class="whs7">import geompy</p>\r
1014 \r
1015 <p class="whs7">&nbsp;</p>\r
1016 \r
1017 <p class="whs7">import StdMeshers</p>\r
1018 \r
1019 <p class="whs7">&nbsp;</p>\r
1020 \r
1021 <p class="whs8"># GEOM module</p>\r
1022 \r
1023 <p class="whs7">shape_mesh = geompy.MakeCylinderRH(13, \r
1024  77)</p>\r
1025 \r
1026 <p class="whs7">geompy.addToStudy(shape_mesh, \r
1027  &quot;cylinder&quot;)</p>\r
1028 \r
1029 <p class="whs7">&nbsp;</p>\r
1030 \r
1031 <p class="whs8"># SMESH module</p>\r
1032 \r
1033 <p class="whs7">smesh = salome.lcc.FindOrLoadComponent(&quot;FactoryServer&quot;, \r
1034  &quot;SMESH&quot;)</p>\r
1035 \r
1036 <p class="whs7">smesh.SetCurrentStudy(salome.myStudy)</p>\r
1037 \r
1038 <p class="whs7">mesh = smesh.CreateMesh(shape_mesh)</p>\r
1039 \r
1040 <p class="whs7">MeshEditor = mesh.GetMeshEditor()</p>\r
1041 \r
1042 <p class="whs7">&nbsp;</p>\r
1043 \r
1044 <p class="whs8"># build five quadrangles:</p>\r
1045 \r
1046 <p class="whs7">node_start_id = mesh.NbNodes() \r
1047  + 1</p>\r
1048 \r
1049 <p class="whs7">dx = 10</p>\r
1050 \r
1051 <p class="whs7">dy = 20</p>\r
1052 \r
1053 <p class="whs7">&nbsp;</p>\r
1054 \r
1055 <p class="whs7">MeshEditor.AddNode(0.0 \r
1056  * dx, 0, 0) # 1</p>\r
1057 \r
1058 <p class="whs7">MeshEditor.AddNode(1.0 \r
1059  * dx, 0, 0) # 2</p>\r
1060 \r
1061 <p class="whs7">MeshEditor.AddNode(2.0 \r
1062  * dx, 0, 0) # 3</p>\r
1063 \r
1064 <p class="whs7">MeshEditor.AddNode(3.0 \r
1065  * dx, 0, 0) # 4</p>\r
1066 \r
1067 <p class="whs7">MeshEditor.AddNode(4.0 \r
1068  * dx, 0, 0) # 5</p>\r
1069 \r
1070 <p class="whs7">MeshEditor.AddNode(5.0 \r
1071  * dx, 0, 0) # 6</p>\r
1072 \r
1073 <p class="whs7">&nbsp;</p>\r
1074 \r
1075 <p class="whs7">MeshEditor.AddNode(0.0 \r
1076  * dx, dy, 0) # 7</p>\r
1077 \r
1078 <p class="whs7">MeshEditor.AddNode(1.0 \r
1079  * dx, dy, 0) # 8</p>\r
1080 \r
1081 <p class="whs7">MeshEditor.AddNode(2.0 \r
1082  * dx, dy, 0) # 9</p>\r
1083 \r
1084 <p class="whs7">MeshEditor.AddNode(3.0 \r
1085  * dx, dy, 0) # 10</p>\r
1086 \r
1087 <p class="whs7">MeshEditor.AddNode(4.0 \r
1088  * dx, dy, 0) # 11</p>\r
1089 \r
1090 <p class="whs7">MeshEditor.AddNode(5.0 \r
1091  * dx, dy, 0) # 12</p>\r
1092 \r
1093 <p class="whs7">&nbsp;</p>\r
1094 \r
1095 <p class="whs7">MeshEditor.AddFace([1, \r
1096  2, &nbsp;8, &nbsp;7])</p>\r
1097 \r
1098 <p class="whs7">MeshEditor.AddFace([2, \r
1099  3, &nbsp;9, &nbsp;8])</p>\r
1100 \r
1101 <p class="whs7">MeshEditor.AddFace([3, \r
1102  4, 10, &nbsp;9])</p>\r
1103 \r
1104 <p class="whs7">MeshEditor.AddFace([4, \r
1105  5, 11, 10])</p>\r
1106 \r
1107 <p class="whs7">MeshEditor.AddFace([5, \r
1108  6, 12, 11])</p>\r
1109 \r
1110 <p class="whs7">&nbsp;</p>\r
1111 \r
1112 <p class="whs8"># Change orientation \r
1113  of the second and the fourth faces.</p>\r
1114 \r
1115 <p class="whs7">MeshEditor.Reorient([2, \r
1116  4])</p>\r
1117 \r
1118 <p class="whs7">&nbsp;</p>\r
1119 \r
1120 <p class="whs7">salome.sg.updateObjBrowser(1) \r
1121  &nbsp;</p>\r
1122 \r
1123 <p class="whs7">&nbsp;</p>\r
1124 \r
1125 <h3><a name=bookmark7>Cutting Quadrangles</a></h3>\r
1126 \r
1127 <p class="whs7">import SMESH</p>\r
1128 \r
1129 <p class="whs7">import SMESH_mechanic</p>\r
1130 \r
1131 <p class="whs7">&nbsp;</p>\r
1132 \r
1133 <p class="whs7">smesh &nbsp;= \r
1134  SMESH_mechanic.smesh</p>\r
1135 \r
1136 <p class="whs7">mesh &nbsp;&nbsp;= \r
1137  SMESH_mechanic.mesh</p>\r
1138 \r
1139 <p class="whs7">salome = SMESH_mechanic.salome</p>\r
1140 \r
1141 <p class="whs7">&nbsp;</p>\r
1142 \r
1143 <p class="whs8"># unite a set of triangles</p>\r
1144 \r
1145 <p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>\r
1146 \r
1147 <p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
1148 \r
1149 <p class="whs7">&nbsp;</p>\r
1150 \r
1151 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
1152 \r
1153 <p class="whs7">aMeshEditor.QuadToTri([405, \r
1154  406], aFunctor)</p>\r
1155 \r
1156 <p class="whs7">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
1157 \r
1158 <p class="whs7">salome.sg.updateObjBrowser(1) \r
1159  </p>\r
1160 \r
1161 <p class="whs8">&nbsp;</p>\r
1162 \r
1163 <h3><a name=bookmark8>Smoothing</a></h3>\r
1164 \r
1165 <p class="whs7">import SMESH</p>\r
1166 \r
1167 <p class="whs7">import SMESH_mechanic</p>\r
1168 \r
1169 <p class="whs7">&nbsp;</p>\r
1170 \r
1171 <p class="whs7">smesh &nbsp;= \r
1172  SMESH_mechanic.smesh</p>\r
1173 \r
1174 <p class="whs7">mesh &nbsp;&nbsp;= \r
1175  SMESH_mechanic.mesh</p>\r
1176 \r
1177 <p class="whs7">salome = SMESH_mechanic.salome</p>\r
1178 \r
1179 <p class="whs7">&nbsp;</p>\r
1180 \r
1181 <p class="whs8"># smooth</p>\r
1182 \r
1183 <p class="whs7">FacesSmooth = [911, \r
1184  931, 950, 864, 932]</p>\r
1185 \r
1186 <p class="whs7">GroupSmooth = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
1187  of faces (smooth)&quot;)</p>\r
1188 \r
1189 <p class="whs7">GroupSmooth.Add(FacesSmooth)</p>\r
1190 \r
1191 <p class="whs7">&nbsp;</p>\r
1192 \r
1193 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
1194 \r
1195 <p class="whs7">aMeshEditor.SmoothObject(GroupSmooth, \r
1196  [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)</p>\r
1197 \r
1198 <p class="whs7">&nbsp;</p>\r
1199 \r
1200 <p class="whs7">salome.sg.updateObjBrowser(1) \r
1201  </p>\r
1202 \r
1203 <p class="whs7">&nbsp;</p>\r
1204 \r
1205 <p class="whs7">&nbsp;</p>\r
1206 \r
1207 <h3><a name=bookmark9>Extrusion</a></h3>\r
1208 \r
1209 <p class="whs8">import SMESH</p>\r
1210 \r
1211 <p class="whs8">import SMESH_mechanic</p>\r
1212 \r
1213 <p class="whs8">&nbsp;</p>\r
1214 \r
1215 <p class="whs8">smesh &nbsp;= \r
1216  SMESH_mechanic.smesh</p>\r
1217 \r
1218 <p class="whs8">mesh &nbsp;&nbsp;= \r
1219  SMESH_mechanic.mesh</p>\r
1220 \r
1221 <p class="whs8">salome = SMESH_mechanic.salome</p>\r
1222 \r
1223 <p class="whs7">&nbsp;</p>\r
1224 \r
1225 <p class="whs8"># extrusion of the group</p>\r
1226 \r
1227 <p class="whs8">point = SMESH.PointStruct(0, \r
1228  0, 5)</p>\r
1229 \r
1230 <p class="whs8">vector = SMESH.DirStruct(point)</p>\r
1231 \r
1232 <p class="whs8">FacesTriToQuad = [2381, \r
1233  2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, \r
1234  2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, \r
1235  2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, \r
1236  2418, 2419, 2420, 2421, 2422]</p>\r
1237 \r
1238 <p class="whs8">&nbsp;</p>\r
1239 \r
1240 <p class="whs8">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
1241  of faces (quad)&quot;)</p>\r
1242 \r
1243 <p class="whs8">GroupTriToQuad.Add(FacesTriToQuad)</p>\r
1244 \r
1245 <p class="whs8">&nbsp;</p>\r
1246 \r
1247 <p class="whs8">aMeshEditor = mesh.GetMeshEditor()</p>\r
1248 \r
1249 <p class="whs8">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad, \r
1250  vector, 5)</p>\r
1251 \r
1252 <p class="whs8">&nbsp;</p>\r
1253 \r
1254 <p class="whs8">salome.sg.updateObjBrowser(1) \r
1255  </p>\r
1256 \r
1257 <p class="whs8">&nbsp;</p>\r
1258 \r
1259 <h3><a name=bookmark10>Extrusion along a Path</a></h3>\r
1260 \r
1261 <p class="whs7">import geompy</p>\r
1262 \r
1263 <p class="whs7">import smesh</p>\r
1264 \r
1265 <p class="whs7">import salome</p>\r
1266 \r
1267 <p class="whs7">import SMESH</p>\r
1268 \r
1269 <p class="whs7">&nbsp;</p>\r
1270 \r
1271 <p class="whs8"># create a face to be \r
1272  meshed</p>\r
1273 \r
1274 <p class="whs7">px = geompy.MakeVertex(100., \r
1275  0. &nbsp;, 0. \r
1276  &nbsp;)</p>\r
1277 \r
1278 <p class="whs7">py = geompy.MakeVertex(0. \r
1279  &nbsp;, 100., \r
1280  0. &nbsp;)</p>\r
1281 \r
1282 <p class="whs7">pz = geompy.MakeVertex(0. \r
1283  &nbsp;, 0. &nbsp;, \r
1284  100.)</p>\r
1285 \r
1286 <p class="whs7">&nbsp;</p>\r
1287 \r
1288 <p class="whs7">vxy = geompy.MakeVector(px, \r
1289  py)</p>\r
1290 \r
1291 <p class="whs7">arc = geompy.MakeArc(py, \r
1292  pz, px)</p>\r
1293 \r
1294 <p class="whs7">&nbsp;</p>\r
1295 \r
1296 <p class="whs7">wire = geompy.MakeWire([vxy, \r
1297  arc])</p>\r
1298 \r
1299 <p class="whs7">isPlanarFace = 1</p>\r
1300 \r
1301 <p class="whs7">&nbsp;</p>\r
1302 \r
1303 <p class="whs7">face1 = geompy.MakeFace(wire, \r
1304  isPlanarFace)</p>\r
1305 \r
1306 <p class="whs7">id_face1 = geompy.addToStudy(face1, \r
1307  &quot;Face1&quot;)</p>\r
1308 \r
1309 <p class="whs7">&nbsp;</p>\r
1310 \r
1311 <p class="whs8"># create a 2D mesh on \r
1312  the face</p>\r
1313 \r
1314 <p class="whs7">trias = smesh.Mesh(face1, \r
1315  &quot;Face : 2D mesh&quot;)</p>\r
1316 \r
1317 <p class="whs7">&nbsp;</p>\r
1318 \r
1319 <p class="whs7">algo = trias.Segment()</p>\r
1320 \r
1321 <p class="whs7">algo.NumberOfSegments(6)</p>\r
1322 \r
1323 <p class="whs7">&nbsp;</p>\r
1324 \r
1325 <p class="whs7">algo = trias.Triangle()</p>\r
1326 \r
1327 <p class="whs7">algo.LengthFromEdges()</p>\r
1328 \r
1329 <p class="whs7">&nbsp;</p>\r
1330 \r
1331 <p class="whs7">trias.Compute()</p>\r
1332 \r
1333 <p class="whs7">&nbsp;</p>\r
1334 \r
1335 <p class="whs8"># create a path mesh</p>\r
1336 \r
1337 <p class="whs7">px1 = geompy.MakeVertex(100., \r
1338  100. &nbsp;, \r
1339  0. &nbsp;)</p>\r
1340 \r
1341 <p class="whs7">py1 = geompy.MakeVertex(-100. \r
1342  &nbsp;, -100., \r
1343  0. &nbsp;)</p>\r
1344 \r
1345 <p class="whs7">pz1 = geompy.MakeVertex(0. \r
1346  &nbsp;, 0. &nbsp;, \r
1347  50.)</p>\r
1348 \r
1349 <p class="whs7">&nbsp;</p>\r
1350 \r
1351 <p class="whs7">circle = geompy.MakeCircleThreePnt(py1, \r
1352  pz1, px1)</p>\r
1353 \r
1354 <p class="whs7">id_circle = geompy.addToStudy(circle, \r
1355  &quot;Path&quot;)</p>\r
1356 \r
1357 <p class="whs7">&nbsp;</p>\r
1358 \r
1359 <p class="whs7">circlemesh = smesh.Mesh(circle, \r
1360  &quot;Path mesh&quot;)</p>\r
1361 \r
1362 <p class="whs7">&nbsp;</p>\r
1363 \r
1364 <p class="whs7">algo = circlemesh.Segment()</p>\r
1365 \r
1366 <p class="whs7">algo.NumberOfSegments(10)</p>\r
1367 \r
1368 <p class="whs7">&nbsp;</p>\r
1369 \r
1370 <p class="whs7">circlemesh.Compute()</p>\r
1371 \r
1372 <p class="whs7">&nbsp;</p>\r
1373 \r
1374 <p class="whs8"># extrusion of the mesh</p>\r
1375 \r
1376 <p class="whs8"># The mesh &quot;trias&quot; \r
1377  will be extruded along another mesh, which is a sub-mesh of &quot;circlemesh&quot;,</p>\r
1378 \r
1379 <p class="whs8"><span style="font-family: 'Times New Roman', serif;"># \r
1380  corresponding to geometry &quot;circle&quot;. In this particular case \r
1381  the path mesh will be the whole &quot;circlemesh&quot;</span></p>\r
1382 \r
1383 <p class="whs8">&nbsp;</p>\r
1384 \r
1385 <p class="whs7">aMeshEditor = trias.GetMesh().GetMeshEditor()</p>\r
1386 \r
1387 <p class="whs7">aMeshEditor.ExtrusionAlongPathObject(trias.GetMesh(), \r
1388  circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>\r
1389 \r
1390 <p class="whs7">&nbsp;</p>\r
1391 \r
1392 <p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
1393  </p>\r
1394 \r
1395 <h3><a name=bookmark11>Revolution</a></h3>\r
1396 \r
1397 <p class="whs7">import SMESH</p>\r
1398 \r
1399 <p class="whs7">import SMESH_mechanic</p>\r
1400 \r
1401 <p class="whs7">import math</p>\r
1402 \r
1403 <p class="whs7">&nbsp;</p>\r
1404 \r
1405 <p class="whs7">smesh &nbsp;= \r
1406  SMESH_mechanic.smesh</p>\r
1407 \r
1408 <p class="whs7">mesh &nbsp;&nbsp;= \r
1409  SMESH_mechanic.mesh</p>\r
1410 \r
1411 <p class="whs7">salome = SMESH_mechanic.salome</p>\r
1412 \r
1413 <p class="whs8">&nbsp;</p>\r
1414 \r
1415 <p class="whs8"># rotate a sweep object</p>\r
1416 \r
1417 <p class="whs7">FacesRotate = [492, \r
1418  493, 502, 503]</p>\r
1419 \r
1420 <p class="whs7">GroupRotate = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
1421  of faces (rotate)&quot;)</p>\r
1422 \r
1423 <p class="whs7">GroupRotate.Add(FacesRotate)</p>\r
1424 \r
1425 <p class="whs7">angle45 = &nbsp;45*math.pi/180</p>\r
1426 \r
1427 <p class="whs7">axisXYZ = SMESH.AxisStruct(-38.3128, \r
1428  -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>\r
1429 \r
1430 <p class="whs7">&nbsp;</p>\r
1431 \r
1432 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
1433 \r
1434 <p class="whs7">aMeshEditor.RotationSweepObject(GroupRotate, \r
1435  axisXYZ, angle45, 4, 1e-5)</p>\r
1436 \r
1437 <p class="whs7">&nbsp;</p>\r
1438 \r
1439 <p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
1440  </p>\r
1441 \r
1442 <p class="whs8">&nbsp;</p>\r
1443 \r
1444 <h3><a name=bookmark13>Pattern Mapping</a></h3>\r
1445 \r
1446 <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
1447 <br>&nbsp;\r
1448 \r
1449 <p class="whs7">import salome</p>\r
1450 \r
1451 <p class="whs7">import geompy</p>\r
1452 \r
1453 <p class="whs7">import SMESH, smesh</p>\r
1454 \r
1455 <p class="whs7">&nbsp;</p>\r
1456 \r
1457 <p class="whs7">geompy.init_geom(salome.myStudy)</p>\r
1458 \r
1459 <p class="whs7">smesh.smesh.SetCurrentStudy(salome.myStudy)</p>\r
1460 \r
1461 <p class="whs7">&nbsp;</p>\r
1462 \r
1463 <p class="whs8"># define geometry</p>\r
1464 \r
1465 <p class="whs7">Box_1 = geompy.MakeBoxDXDYDZ(200, \r
1466  200, 200)</p>\r
1467 \r
1468 <p class="whs7">geompy.addToStudy(Box_1, \r
1469  &quot;Box_1&quot;)</p>\r
1470 \r
1471 <p class="whs7">&nbsp;</p>\r
1472 \r
1473 <p class="whs7">faces = geompy.SubShapeAll(Box_1, \r
1474  geompy.ShapeType[&quot;FACE&quot;])</p>\r
1475 \r
1476 <p class="whs7">Face_1 = faces[0]</p>\r
1477 \r
1478 <p class="whs7">Face_2 = faces[1]</p>\r
1479 \r
1480 <p class="whs7">geompy.addToStudyInFather(Box_1, \r
1481  Face_1, &quot;Face_1&quot;)</p>\r
1482 \r
1483 <p class="whs7">geompy.addToStudyInFather(Box_1, \r
1484  Face_2, &quot;Face_2&quot;)</p>\r
1485 \r
1486 <p class="whs7">&nbsp;</p>\r
1487 \r
1488 <p class="whs8"># build quadrangle mesh \r
1489  3x3 on Face_1</p>\r
1490 \r
1491 <p class="whs7">Mesh_1 = smesh.Mesh(Face_1)</p>\r
1492 \r
1493 <p class="whs7">Wire_discretisation \r
1494  = Mesh_1.Segment()</p>\r
1495 \r
1496 <p class="whs7">Wire_discretisation.NumberOfSegments(3)</p>\r
1497 \r
1498 <p class="whs7">Mesh_1.Quadrangle()</p>\r
1499 \r
1500 <p class="whs7">&nbsp;</p>\r
1501 \r
1502 <p class="whs7">isDone = Mesh_1.Compute()</p>\r
1503 \r
1504 <p class="whs7">if not isDone: print \r
1505  'Mesh Mesh_1 : computation failed'</p>\r
1506 \r
1507 <p class="whs7">&nbsp;</p>\r
1508 \r
1509 <p class="whs8"># pattern the mesh</p>\r
1510 \r
1511 <p class="whs7">Mesh_2 = smesh.Mesh(Face_2)</p>\r
1512 \r
1513 <p class="whs7">Nb_Segments_1 = smesh.smesh.CreateHypothesis('NumberOfSegments', \r
1514  'libStdMeshersEngine.so')</p>\r
1515 \r
1516 <p class="whs7">Nb_Segments_1.SetNumberOfSegments(1)</p>\r
1517 \r
1518 <p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2, \r
1519  Nb_Segments_1)</p>\r
1520 \r
1521 <p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2, \r
1522  Wire_discretisation.GetAlgorithm())</p>\r
1523 \r
1524 <p class="whs7">Triangle_Mefisto = \r
1525  Mesh_2.Triangle()</p>\r
1526 \r
1527 <p class="whs7">Max_Element_Area = \r
1528  Triangle_Mefisto.MaxElementArea(240)</p>\r
1529 \r
1530 <p class="whs7">&nbsp;</p>\r
1531 \r
1532 <p class="whs7">isDone = Mesh_2.Compute()</p>\r
1533 \r
1534 <p class="whs7">if not isDone: print \r
1535  'Mesh Mesh_2 : computation failed'</p>\r
1536 \r
1537 <p class="whs7">&nbsp;</p>\r
1538 \r
1539 <p class="whs8"># create a pattern</p>\r
1540 \r
1541 <p class="whs7">pattern = smesh.smesh.GetPattern()</p>\r
1542 \r
1543 <p class="whs7">isDone = pattern.LoadFromFace(Mesh_2.GetMesh(), \r
1544  Face_2, 0)</p>\r
1545 \r
1546 <p class="whs7">if (isDone != 1):</p>\r
1547 \r
1548 <p class="whs9">print \r
1549  'LoadFromFace :', pattern.GetErrorCode()</p>\r
1550 \r
1551 <p class="whs7">&nbsp;</p>\r
1552 \r
1553 <p class="whs8"># apply the pattern to \r
1554  a face of the first mesh</p>\r
1555 \r
1556 <p class="whs7">pattern.ApplyToMeshFaces(Mesh_1.GetMesh(), \r
1557  [17], 0, 0)</p>\r
1558 \r
1559 <p class="whs7">isDone = pattern.MakeMesh(Mesh_1.GetMesh(), \r
1560  0, 0)</p>\r
1561 \r
1562 <p class="whs7">if (isDone != 1):</p>\r
1563 \r
1564 <p class="whs9">print \r
1565  'MakeMesh :', pattern.GetErrorCode()</p>\r
1566 \r
1567 <p class="whs7">&nbsp;</p>\r
1568 \r
1569 <p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
1570  </p>\r
1571 \r
1572 <script type="text/javascript" language="javascript1.2">\r
1573 <!--\r
1574 if (window.writeIntopicBar)\r
1575         writeIntopicBar(0);\r
1576 //-->\r
1577 </script>\r
1578 </body>\r
1579 </html>\r