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