1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
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>
10 P { margin-top:0pt; margin-bottom:0pt; }
13 </style><style type="text/css">
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; }
29 </style><script type="text/javascript" language="JavaScript">
31 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
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; }";
41 document.write(strNSS);
45 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
48 if (innerWidth != origWidth || innerHeight != origHeight)
51 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
52 origWidth = innerWidth;
53 origHeight = innerHeight;
59 <style type="text/css">
61 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
62 p.WebHelpNavBar { text-align:right; }
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">
73 if (window.setRelStartPage)
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");
82 if (window.setRelStartPage)
84 setRelStartPage("index.htm");
94 document.location.reload();
98 <body><script type="text/javascript" language="javascript1.2">
100 if (window.writeIntopicBar)
104 <h1>Modifying Meshes</h1>
106 <h3><a name=bookmark>Adding Nodes and Elements</a></h3>
110 <p class="whs1">import SMESH</p>
112 <p class="whs1">import SMESH_mechanic</p>
114 <p class="whs1"> </p>
116 <p class="whs1">smesh =
117 SMESH_mechanic.smesh</p>
119 <p class="whs1">mesh =
120 SMESH_mechanic.mesh</p>
122 <p class="whs1">salome = SMESH_mechanic.salome</p>
124 <p class="whs2"> </p>
126 <p class="whs2"># add node</p>
128 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
130 <p class="whs1">if aMeshEditor.AddNode(50,
133 <p class="whs1"> print
134 "Node addition is OK!"</p>
136 <p class="whs1">else:</p>
138 <p class="whs1"> print
139 "KO node addition."</p>
141 <p class="whs1"> </p>
143 <p class="whs1">salome.sg.updateObjBrowser(1)
146 <p class="whs1"> </p>
150 <p class="whs1">import SMESH</p>
152 <p class="whs1">import SMESH_mechanic</p>
154 <p class="whs1"> </p>
156 <p class="whs1">smesh =
157 SMESH_mechanic.smesh</p>
159 <p class="whs1">mesh =
160 SMESH_mechanic.mesh</p>
162 <p class="whs1">salome = SMESH_mechanic.salome</p>
164 <p class="whs2"> </p>
166 <p class="whs2"># add node</p>
168 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
170 <p class="whs1">if aMeshEditor.AddNode(50,
173 <p class="whs1"> print
174 "Node addition is OK!"</p>
176 <p class="whs1">else:</p>
178 <p class="whs1"> print
179 "KO node addition."</p>
181 <p class="whs1"> </p>
183 <p class="whs2"># add edge</p>
185 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
187 <p class="whs1">if aMeshEditor.AddEdge([LastNodeId,
190 <p class="whs1"> print
191 "Edge addition is OK!"</p>
193 <p class="whs1">else:</p>
195 <p class="whs1"> print
196 "KO edge addition."</p>
198 <p class="whs1"> </p>
200 <p class="whs1">salome.sg.updateObjBrowser(1)
203 <p class="whs1"> </p>
205 <h4>Add Triangle</h4>
207 <p class="whs1">import SMESH</p>
209 <p class="whs1">import SMESH_mechanic</p>
211 <p class="whs1"> </p>
213 <p class="whs1">smesh =
214 SMESH_mechanic.smesh</p>
216 <p class="whs1">mesh =
217 SMESH_mechanic.mesh</p>
219 <p class="whs1">salome = SMESH_mechanic.salome</p>
221 <p class="whs1"> </p>
223 <p class="whs2"># add node</p>
225 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
227 <p class="whs1">if aMeshEditor.AddNode(50,
230 <p class="whs1"> print
231 "Node addition is OK!"</p>
233 <p class="whs1">else:</p>
235 <p class="whs1"> print
236 "KO node addition."</p>
238 <p class="whs1"> </p>
240 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
242 <p class="whs2"> </p>
244 <p class="whs2"># add triangle</p>
246 <p class="whs1">if aMeshEditor.AddFace([LastNodeId,
249 <p class="whs1"> print
250 "Triangle addition is OK!"</p>
252 <p class="whs1">else:</p>
254 <p class="whs1"> print
255 "KO triangle addition."</p>
257 <p class="whs1"> </p>
259 <p class="whs1">salome.sg.updateObjBrowser(1)
262 <p class="whs1"> </p>
264 <h4>Add Quadrangle</h4>
266 <p class="whs1">import SMESH</p>
268 <p class="whs1">import SMESH_mechanic</p>
270 <p class="whs1"> </p>
272 <p class="whs1">smesh =
273 SMESH_mechanic.smesh</p>
275 <p class="whs1">mesh =
276 SMESH_mechanic.mesh</p>
278 <p class="whs1">salome = SMESH_mechanic.salome</p>
280 <p class="whs1"> </p>
282 <p class="whs2"># add node</p>
284 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
286 <p class="whs1">if aMeshEditor.AddNode(50,
289 <p class="whs1"> print
290 "Node addition is OK!"</p>
292 <p class="whs1">else:</p>
294 <p class="whs1"> print
295 "KO node addition."</p>
297 <p class="whs1"> </p>
299 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
301 <p class="whs2"> </p>
303 <p class="whs2"># add quadrangle</p>
305 <p class="whs1">if aMeshEditor.AddNode(40,
308 <p class="whs1"> print
309 "Node addition is OK!"</p>
311 <p class="whs1">else:</p>
313 <p class="whs1"> print
314 "KO node addition."</p>
316 <p class="whs1">if aMeshEditor.AddFace([mesh.NbNodes(),
317 LastNodeId, 38, 39]) == 1:</p>
319 <p class="whs1"> print
320 "Quadrangle addition is OK!"</p>
322 <p class="whs1">else:</p>
324 <p class="whs1"> print
325 "KO quadrangle addition."</p>
327 <p class="whs1"> </p>
329 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
332 <p class="whs2"> </p>
334 <h4>Add Tetrahedron</h4>
336 <p class="whs1">import SMESH</p>
338 <p class="whs1">import SMESH_mechanic</p>
340 <p class="whs1"> </p>
342 <p class="whs1">smesh =
343 SMESH_mechanic.smesh</p>
345 <p class="whs1">mesh =
346 SMESH_mechanic.mesh</p>
348 <p class="whs1">salome = SMESH_mechanic.salome</p>
350 <p class="whs1"> </p>
352 <p class="whs2"># add node</p>
354 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
356 <p class="whs1">if aMeshEditor.AddNode(50,
359 <p class="whs1"> print
360 "Node addition is OK!"</p>
362 <p class="whs1">else:</p>
364 <p class="whs1"> print
365 "KO node addition."</p>
367 <p class="whs1"> </p>
369 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
371 <p class="whs2"> </p>
373 <p class="whs2"># add tetrahedron</p>
375 <p class="whs1">if aMeshEditor.AddVolume([LastNodeId,
376 38, 39, 246]) == 1:</p>
378 <p class="whs1"> print
379 "Tetrahedron addition is OK!"</p>
381 <p class="whs1">else:</p>
383 <p class="whs1"> print
384 "KO tetrahedron addition."</p>
386 <p class="whs1"> </p>
388 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
391 <p class="whs2"> </p>
393 <h4>Add Hexahedron</h4>
395 <p class="whs1">import SMESH</p>
397 <p class="whs1">import SMESH_mechanic</p>
399 <p class="whs1"> </p>
401 <p class="whs1">smesh =
402 SMESH_mechanic.smesh</p>
404 <p class="whs1">mesh =
405 SMESH_mechanic.mesh</p>
407 <p class="whs1">salome = SMESH_mechanic.salome</p>
409 <p class="whs1"> </p>
411 <p class="whs2"># add nodes</p>
413 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
415 <p class="whs1">if aMeshEditor.AddNode(50,
418 <p class="whs1"> print
419 "Node addition is OK!"</p>
421 <p class="whs1">else:</p>
423 <p class="whs1"> print
424 "KO node addition."</p>
426 <p class="whs1">aNodeId1 = mesh.NbNodes()</p>
428 <p class="whs1"> </p>
430 <p class="whs1">if aMeshEditor.AddNode(47,
433 <p class="whs1"> print
434 "Node addition is OK!"</p>
436 <p class="whs1">else:</p>
438 <p class="whs1"> print
439 "KO node addition."</p>
441 <p class="whs1">aNodeId2 = mesh.NbNodes()</p>
443 <p class="whs1"> </p>
445 <p class="whs1">if aMeshEditor.AddNode(50,
448 <p class="whs1"> print
449 "Node addition is OK!"</p>
451 <p class="whs1">else:</p>
453 <p class="whs1"> print
454 "KO node addition."</p>
456 <p class="whs1">aNodeId3 = mesh.NbNodes()</p>
458 <p class="whs1"> </p>
460 <p class="whs1">if aMeshEditor.AddNode(47,
463 <p class="whs1"> print
464 "Node addition is OK!"</p>
466 <p class="whs1">else:</p>
468 <p class="whs1"> print
469 "KO node addition."</p>
471 <p class="whs1">aNodeId4 = mesh.NbNodes()</p>
473 <p class="whs1"> </p>
475 <p class="whs2"># add hexahedron</p>
477 <p class="whs1">if aMeshEditor.AddVolume([aNodeId2,
478 aNodeId1, 38, 39, aNodeId4, aNodeId3, 245, 246]) == 1:</p>
480 <p class="whs1"> print
481 "Hexahedron addition is OK!"</p>
483 <p class="whs1">else:</p>
485 <p class="whs1"> print
486 "KO Hexahedron addition."</p>
488 <p class="whs1"> </p>
490 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
493 <p class="whs2"> </p>
497 <p class="whs1">import salome</p>
499 <p class="whs1">import geompy</p>
501 <p class="whs1">import math</p>
503 <p class="whs1"> </p>
505 <p class="whs1">import StdMeshers</p>
507 <p class="whs1"> </p>
509 <p class="whs2"># GEOM module </p>
511 <p class="whs1">shape_mesh = geompy.MakeCylinderRH(13,
514 <p class="whs1">geompy.addToStudy(shape_mesh,
515 "cylinder")</p>
517 <p class="whs1"> </p>
519 <p class="whs2"># SMESH module</p>
521 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
522 "SMESH")</p>
524 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
526 <p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>
528 <p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>
530 <p class="whs1"> </p>
532 <p class="whs2"># a method to build a polygonal
533 mesh element with nb_vert angles:</p>
535 <p class="whs1">def MakePolygon
536 (a_mesh, x0, y0, z0, radius, nb_vert):</p>
538 <p class="whs1"> node_start_id
539 = a_mesh.NbNodes() + 1</p>
541 <p class="whs1"> al
542 = 2.0 * math.pi / nb_vert</p>
544 <p class="whs1"> node_ids
547 <p class="whs2"> </p>
549 <p class="whs2"># Create nodes for a polyhedron</p>
551 <p class="whs1"> for
552 ii in range(nb_vert):</p>
554 <p class="whs1"> MeshEditor.AddNode(x0
555 + radius * math.cos(ii*al),</p>
557 <p class="whs1"> y0
558 + radius * math.sin(ii*al),</p>
560 <p class="whs1"> z0)</p>
562 <p class="whs1"> node_ids.append(node_start_id
565 <p class="whs1"> pass</p>
567 <p class="whs2"> </p>
569 <p class="whs2"># Create a polygon</p>
571 <p class="whs1"> MeshEditor.AddPolygonalFace(node_ids)</p>
573 <p class="whs1"> return
576 <p class="whs1"> </p>
578 <p class="whs2"># Create three polygons</p>
580 <p class="whs1">MakePolygon(mesh,
584 <p class="whs1">MakePolygon(mesh,
585 0, 0, 10, 21, 9)</p>
587 <p class="whs1">MakePolygon(mesh,
588 0, 0, 20, 13, 6)</p>
590 <p class="whs1"> </p>
592 <p class="whs1">salome.sg.updateObjBrowser(1)
595 <p class="whs1"> </p>
597 <h4>Add polyhedron</h4>
599 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import
602 <p class="whs1">import geompy</p>
604 <p class="whs1">import math</p>
606 <p class="whs1"> </p>
608 <p class="whs1">#import SMESH</p>
610 <p class="whs1">import StdMeshers</p>
612 <p class="whs1"> </p>
614 <p class="whs3"># GEOM</p>
616 <p class="whs1">shape_mesh = geompy.MakeCylinderRH(13,
619 <p class="whs1">geompy.addToStudy(shape_mesh,
620 "cylinder")</p>
622 <p class="whs1"> </p>
624 <p class="whs3"># SMESH</p>
626 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
627 "SMESH")</p>
629 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
631 <p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>
633 <p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>
635 <p class="whs1"> </p>
637 <p class="whs3"># Now we are going
638 to create a 12-hedron:</p>
640 <p class="whs3"> </p>
642 <p class="whs3"># Create nodes for
645 <p class="whs1">al = 2 * math.pi
648 <p class="whs1">cosal = math.cos(al)</p>
650 <p class="whs1"> </p>
652 <p class="whs1">aa = 13</p>
654 <p class="whs1">rr = aa / (2.0 *
655 math.sin(al/2.0))</p>
657 <p class="whs1">dr = 2.0 * rr *
660 <p class="whs1">r1 = rr + dr</p>
662 <p class="whs1">dh = rr * math.sqrt(2.0
663 * (1.0 - cosal * (1.0 + 2.0 * cosal)))</p>
665 <p class="whs1">hh = 2.0 * dh -
666 dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh</p>
668 <p class="whs1"> </p>
670 <p class="whs1">for i in range(5):</p>
672 <p class="whs1"> MeshEditor.AddNode(rr*math.cos(i*al),
673 rr*math.sin(i*al), 0)
674 <span style="font-family: 'Times New Roman', serif;"># 1,3,5,7, 9 # bottom</span></p>
676 <p class="whs1"> 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>
680 <p class="whs1"> </p>
682 <p class="whs1">for i in range(5):</p>
684 <p class="whs1"> MeshEditor.AddNode(rr*math.cos(i*al
687 <p class="whs1"> rr*math.sin(i*al
688 + al/2.0), hh) # 11,13,15,17,19 <span style="font-family: 'Times New Roman', serif;">#
691 <p class="whs1"> MeshEditor.AddNode(r1*math.cos(i*al
694 <p class="whs1"> r1*math.sin(i*al
695 + al/2.0), hh - dh) # 12,14,16,18,20 <span style="font-family: 'Times New Roman', serif;">#
698 <p class="whs1"> </p>
700 <p class="whs3"># Create a polyhedral
703 <p class="whs1">MeshEditor.AddPolyhedralVolume([
706 <span style="font-family: 'Times New Roman', serif;">#
709 <p class="whs1"> 1,
712 <span style="font-family: 'Times New Roman', serif;">#
715 <p class="whs1"> 3,
718 <span style="font-family: 'Times New Roman', serif;">#
721 <p class="whs1"> 5,
724 <span style="font-family: 'Times New Roman', serif;">#
725 . above bottom</span></p>
727 <p class="whs1"> 7,
730 <span style="font-family: 'Times New Roman', serif;">#
733 <p class="whs1"> 9,
736 style="font-family: 'Times New Roman', serif;">#
739 <p class="whs1"> 11,
741 14, 13, <span style="font-family: 'Times New Roman', serif;">#
744 <p class="whs1"> 13,
746 16, 15, <span style="font-family: 'Times New Roman', serif;">#
749 <p class="whs1"> 15,
751 18, 17, <span style="font-family: 'Times New Roman', serif;">#
752 - below top</span></p>
754 <p class="whs1"> 17,
755 18, 10, 20, 19, <span style="font-family: 'Times New Roman', serif;">#
758 <p class="whs1"> 19,
760 12, 11, <span style="font-family: 'Times New Roman', serif;">#
763 <p class="whs1"> 11,
764 13, 15, 17, 19], <span style="font-family: 'Times New Roman', serif;">#
767 <p class="whs1"> [5,5,5,5,5,5,5,5,5,5,5,5])</p>
769 <p class="whs1"> </p>
771 <p class="whs1">salome.sg.updateObjBrowser(1)
774 <p class="whs1"> </p>
776 <h3><a name=bookmark1>Removing Nodes and Elements</a></h3>
778 <h4 class="whs4">Removing Nodes</h4>
780 <p class="whs2"> </p>
782 <p class="whs1">import SMESH</p>
784 <p class="whs1">import SMESH_mechanic</p>
786 <p class="whs1"> </p>
788 <p class="whs1">smesh =
789 SMESH_mechanic.smesh</p>
791 <p class="whs1">mesh =
792 SMESH_mechanic.mesh</p>
794 <p class="whs1">salome = SMESH_mechanic.salome</p>
796 <p class="whs2"> </p>
798 <p class="whs2"># add node</p>
800 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
802 <p class="whs1">if aMeshEditor.RemoveNodes([246,
805 <p class="whs1"> print
806 "Node removing is OK!"</p>
808 <p class="whs1">else:</p>
810 <p class="whs1"> print
811 "KO node removing."</p>
813 <p class="whs1"> </p>
815 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
818 <p class="whs2"> </p>
820 <h4>Removing Elements</h4>
822 <p class="whs1">import SMESH</p>
824 <p class="whs1">import SMESH_mechanic</p>
826 <p class="whs1"> </p>
828 <p class="whs1">smesh =
829 SMESH_mechanic.smesh</p>
831 <p class="whs1">mesh =
832 SMESH_mechanic.mesh</p>
834 <p class="whs1">salome = SMESH_mechanic.salome</p>
836 <p class="whs1"> </p>
838 <p class="whs1">anEditor = mesh.GetMeshEditor()</p>
840 <p class="whs1">anEditor.RemoveElements([850,
843 <p class="whs1"> </p>
845 <p class="whs1">salome.sg.updateObjBrowser(1)
848 <p class="whs1"> </p>
850 <h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>
852 <p class="whs5">import SMESH</p>
854 <p class="whs5">import SMESH_mechanic</p>
856 <p class="whs5"> </p>
858 <p class="whs5">mesh =
859 SMESH_mechanic.mesh</p>
861 <p class="whs5">salome = SMESH_mechanic.salome</p>
863 <p class="whs5"> </p>
865 <p class="whs5">anEditor = mesh.GetMeshEditor()</p>
867 <p class="whs5">anEditor.RenumberNodes()</p>
869 <p class="whs5"> </p>
871 <p class="whs6"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
874 <p class="whs6"> </p>
878 <h3><a name=bookmark3>Moving Nodes</a></h3>
880 <p class="whs1">import SMESH</p>
882 <p class="whs1">import SMESH_mechanic</p>
884 <p class="whs1"> </p>
886 <p class="whs1">smesh =
887 SMESH_mechanic.smesh</p>
889 <p class="whs1">mesh =
890 SMESH_mechanic.mesh</p>
892 <p class="whs1">salome = SMESH_mechanic.salome</p>
894 <p class="whs1"> </p>
896 <p class="whs2"># move node</p>
898 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
900 <p class="whs1">aMeshEditor.MoveNode(38,
903 <p class="whs1"> </p>
905 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
908 <p class="whs2"> </p>
910 <h3><a name=bookmark4>Diagonal Inversion</a></h3>
912 <p class="whs1">import SMESH</p>
914 <p class="whs1">import SMESH_mechanic</p>
916 <p class="whs1"> </p>
918 <p class="whs1">smesh =
919 SMESH_mechanic.smesh</p>
921 <p class="whs1">mesh =
922 SMESH_mechanic.mesh</p>
924 <p class="whs1">salome = SMESH_mechanic.salome</p>
926 <p class="whs1"> </p>
928 <p class="whs2"># inverse diagonal</p>
930 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
932 <p class="whs1">aMeshEditor.InverseDiag(700,
935 <p class="whs1"> </p>
937 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
940 <p class="whs2"> </p>
942 <h3><a name=bookmark5>Uniting two Triangles</a></h3>
944 <p class="whs7">import SMESH</p>
946 <p class="whs7">import SMESH_mechanic</p>
948 <p class="whs7"> </p>
950 <p class="whs7">smesh =
951 SMESH_mechanic.smesh</p>
953 <p class="whs7">mesh =
954 SMESH_mechanic.mesh</p>
956 <p class="whs7">salome = SMESH_mechanic.salome</p>
958 <p class="whs7"> </p>
960 <p># delete diagonal</p>
962 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
964 <p class="whs7">aMeshEditor.DeleteDiag(700,
967 <p class="whs7"> </p>
969 <p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
974 <h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>
976 <p class="whs7">import SMESH</p>
978 <p class="whs7">import SMESH_mechanic</p>
980 <p class="whs7"> </p>
982 <p class="whs7">smesh =
983 SMESH_mechanic.smesh</p>
985 <p class="whs7">mesh =
986 SMESH_mechanic.mesh</p>
988 <p class="whs7">salome = SMESH_mechanic.salome</p>
990 <p class="whs7"> </p>
992 <p># unite a set of triangles</p>
994 <p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>
996 <p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>
998 <p class="whs7"> </p>
1000 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
1002 <p class="whs7">aMeshEditor.TriToQuad([1145,
1003 1147, 1159, 1135], aFunctor, 60)</p>
1005 <p class="whs7"> </p>
1007 <p class="whs7">salome.sg.updateObjBrowser(1)
1010 <p class="whs7"> </p>
1012 <h3><a name=bookmark12>Orientation</a></h3>
1014 <p class="whs7"><span style="font-family: 'Lucida Console', monospace;">import
1017 <p class="whs7">import geompy</p>
1019 <p class="whs7"> </p>
1021 <p class="whs7">import StdMeshers</p>
1023 <p class="whs7"> </p>
1025 <p class="whs8"># GEOM module</p>
1027 <p class="whs7">shape_mesh = geompy.MakeCylinderRH(13,
1030 <p class="whs7">geompy.addToStudy(shape_mesh,
1031 "cylinder")</p>
1033 <p class="whs7"> </p>
1035 <p class="whs8"># SMESH module</p>
1037 <p class="whs7">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
1038 "SMESH")</p>
1040 <p class="whs7">smesh.SetCurrentStudy(salome.myStudy)</p>
1042 <p class="whs7">mesh = smesh.CreateMesh(shape_mesh)</p>
1044 <p class="whs7">MeshEditor = mesh.GetMeshEditor()</p>
1046 <p class="whs7"> </p>
1048 <p class="whs8"># build five quadrangles:</p>
1050 <p class="whs7">node_start_id = mesh.NbNodes()
1053 <p class="whs7">dx = 10</p>
1055 <p class="whs7">dy = 20</p>
1057 <p class="whs7"> </p>
1059 <p class="whs7">MeshEditor.AddNode(0.0
1062 <p class="whs7">MeshEditor.AddNode(1.0
1065 <p class="whs7">MeshEditor.AddNode(2.0
1068 <p class="whs7">MeshEditor.AddNode(3.0
1071 <p class="whs7">MeshEditor.AddNode(4.0
1074 <p class="whs7">MeshEditor.AddNode(5.0
1077 <p class="whs7"> </p>
1079 <p class="whs7">MeshEditor.AddNode(0.0
1080 * dx, dy, 0) # 7</p>
1082 <p class="whs7">MeshEditor.AddNode(1.0
1083 * dx, dy, 0) # 8</p>
1085 <p class="whs7">MeshEditor.AddNode(2.0
1086 * dx, dy, 0) # 9</p>
1088 <p class="whs7">MeshEditor.AddNode(3.0
1089 * dx, dy, 0) # 10</p>
1091 <p class="whs7">MeshEditor.AddNode(4.0
1092 * dx, dy, 0) # 11</p>
1094 <p class="whs7">MeshEditor.AddNode(5.0
1095 * dx, dy, 0) # 12</p>
1097 <p class="whs7"> </p>
1099 <p class="whs7">MeshEditor.AddFace([1,
1100 2, 8, 7])</p>
1102 <p class="whs7">MeshEditor.AddFace([2,
1103 3, 9, 8])</p>
1105 <p class="whs7">MeshEditor.AddFace([3,
1106 4, 10, 9])</p>
1108 <p class="whs7">MeshEditor.AddFace([4,
1111 <p class="whs7">MeshEditor.AddFace([5,
1114 <p class="whs7"> </p>
1116 <p class="whs8"># Change orientation
1117 of the second and the fourth faces.</p>
1119 <p class="whs7">MeshEditor.Reorient([2,
1122 <p class="whs7"> </p>
1124 <p class="whs7">salome.sg.updateObjBrowser(1)
1127 <p class="whs7"> </p>
1129 <h3><a name=bookmark7>Cutting Quadrangles</a></h3>
1131 <p class="whs7">import SMESH</p>
1133 <p class="whs7">import SMESH_mechanic</p>
1135 <p class="whs7"> </p>
1137 <p class="whs7">smesh =
1138 SMESH_mechanic.smesh</p>
1140 <p class="whs7">mesh =
1141 SMESH_mechanic.mesh</p>
1143 <p class="whs7">salome = SMESH_mechanic.salome</p>
1145 <p class="whs7"> </p>
1147 <p class="whs8"># unite a set of triangles</p>
1149 <p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>
1151 <p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>
1153 <p class="whs7"> </p>
1155 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
1157 <p class="whs7">aMeshEditor.QuadToTri([405,
1160 <p class="whs7"> </p>
1162 <p class="whs7">salome.sg.updateObjBrowser(1)
1165 <p class="whs8"> </p>
1167 <h3><a name=bookmark8>Smoothing</a></h3>
1169 <p class="whs7">import SMESH</p>
1171 <p class="whs7">import SMESH_mechanic</p>
1173 <p class="whs7"> </p>
1175 <p class="whs7">smesh =
1176 SMESH_mechanic.smesh</p>
1178 <p class="whs7">mesh =
1179 SMESH_mechanic.mesh</p>
1181 <p class="whs7">salome = SMESH_mechanic.salome</p>
1183 <p class="whs7"> </p>
1185 <p class="whs8"># smooth</p>
1187 <p class="whs7">FacesSmooth = [911,
1188 931, 950, 864, 932]</p>
1190 <p class="whs7">GroupSmooth = mesh.CreateGroup(SMESH.FACE,"Group
1191 of faces (smooth)")</p>
1193 <p class="whs7">GroupSmooth.Add(FacesSmooth)</p>
1195 <p class="whs7"> </p>
1197 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
1199 <p class="whs7">aMeshEditor.SmoothObject(GroupSmooth,
1200 [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)</p>
1202 <p class="whs7"> </p>
1204 <p class="whs7">salome.sg.updateObjBrowser(1)
1207 <p class="whs7"> </p>
1209 <p class="whs7"> </p>
1211 <h3><a name=bookmark9>Extrusion</a></h3>
1213 <p class="whs7">import SMESH</p>
1215 <p class="whs7">import SMESH_mechanic</p>
1217 <p class="whs7"> </p>
1219 <p class="whs7">smesh =
1220 SMESH_mechanic.smesh</p>
1222 <p class="whs7">mesh =
1223 SMESH_mechanic.mesh</p>
1225 <p class="whs7">salome = SMESH_mechanic.salome</p>
1227 <p class="whs7"> </p>
1229 <p class="whs8"># extrusion of the group</p>
1231 <p class="whs7">point = SMESH.PointStruct(0,
1234 <p class="whs7">vector = SMESH.DirStruct(point)</p>
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>
1242 <p class="whs7"> </p>
1244 <p class="whs7">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,"Group
1245 of faces (quad)")</p>
1247 <p class="whs7">GroupTriToQuad.Add(FacesTriToQuad)</p>
1249 <p class="whs7"> </p>
1251 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
1253 <p class="whs7">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad,
1256 <p class="whs7"> </p>
1258 <p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
1261 <p class="whs8"> </p>
1263 <h3><a name=bookmark10>Extrusion along a Path</a></h3>
1265 <p class="whs7">import math</p>
1267 <p class="whs7"> </p>
1269 <p class="whs7">import salome</p>
1271 <p class="whs7">salome.salome_init()</p>
1273 <p class="whs7"> </p>
1275 <p class="whs8"># Geometry</p>
1277 <p class="whs7">import geompy</p>
1279 <p class="whs8"> </p>
1281 <p class="whs8"># 1. Create points</p>
1283 <p class="whs7">points = [[0, 0],
1284 [50, 30], [50, 110], [0, 150], [-80, 150], [-130, 70], [-130, -20]]</p>
1286 <p class="whs7"> </p>
1288 <p class="whs7">iv = 1</p>
1290 <p class="whs7">vertices = []</p>
1292 <p class="whs7">for point in points:</p>
1294 <p class="whs9">vert
1295 = geompy.MakeVertex(point[0], point[1], 0)</p>
1297 <p class="whs9">geompy.addToStudy(vert,
1298 "Vertex_" + `iv`)</p>
1300 <p class="whs9">vertices.append(vert)</p>
1305 <p class="whs9">pass</p>
1307 <p class="whs8"> </p>
1309 <p class="whs8"># 2. Create edges and
1312 <p class="whs7">Edge_straight = geompy.MakeEdge(vertices[0],
1315 <p class="whs7">Edge_bezierrr = geompy.MakeBezier(vertices)</p>
1317 <p class="whs7">Wire_polyline = geompy.MakePolyline(vertices)</p>
1319 <p class="whs7">Edge_Circle =
1320 geompy.MakeCircleThreePnt(vertices[0], vertices[1], vertices[2])</p>
1322 <p class="whs7"> </p>
1324 <p class="whs7">geompy.addToStudy(Edge_straight,
1325 "Edge_straight")</p>
1327 <p class="whs7">geompy.addToStudy(Edge_bezierrr,
1328 "Edge_bezierrr")</p>
1330 <p class="whs7">geompy.addToStudy(Wire_polyline,
1331 "Wire_polyline")</p>
1333 <p class="whs7">geompy.addToStudy(Edge_Circle
1334 , "Edge_Circle")</p>
1336 <p class="whs8"> </p>
1338 <p class="whs8"># 3. Explode wire on
1339 edges, as they will be used for mesh extrusion</p>
1341 <p class="whs7">Wire_polyline_edges
1342 = geompy.SubShapeAll(Wire_polyline, geompy.ShapeType["EDGE"])</p>
1344 <p class="whs7">for ii in range(len(Wire_polyline_edges)):</p>
1346 <p class="whs9">geompy.addToStudyInFather(Wire_polyline,
1347 Wire_polyline_edges[ii], "Edge_" + `ii + 1`)</p>
1349 <p class="whs9">pass</p>
1351 <p class="whs10"> </p>
1353 <p class="whs8"># Mesh</p>
1355 <p class="whs7">import smesh</p>
1357 <p class="whs7">import SMESH</p>
1359 <p class="whs7"> </p>
1361 <p class="whs7">gen = smesh.smesh</p>
1363 <p class="whs7"> </p>
1365 <p class="whs7">smeshgui = salome.ImportComponentGUI("SMESH")</p>
1367 <p class="whs7">smeshgui.Init(salome.myStudyId)</p>
1369 <p class="whs8"> </p>
1371 <p class="whs8"># 1D algorithm and three
1374 <p class="whs7">Wire_discretisation
1375 = gen.CreateHypothesis('Regular_1D', 'libStdMeshersEngine.so')</p>
1377 <p class="whs7"> </p>
1379 <p class="whs7">Nb_Segments_3 = gen.CreateHypothesis('NumberOfSegments',
1380 'libStdMeshersEngine.so')</p>
1382 <p class="whs7">Nb_Segments_7 = gen.CreateHypothesis('NumberOfSegments',
1383 'libStdMeshersEngine.so')</p>
1385 <p class="whs7">Nb_Segments_8 = gen.CreateHypothesis('NumberOfSegments',
1386 'libStdMeshersEngine.so')</p>
1388 <p class="whs7"> </p>
1390 <p class="whs7">Nb_Segments_3.SetNumberOfSegments(3)</p>
1392 <p class="whs7">Nb_Segments_7.SetNumberOfSegments(7)</p>
1394 <p class="whs7">Nb_Segments_8.SetNumberOfSegments(8)</p>
1396 <p class="whs8"> </p>
1398 <p class="whs8"># Mesh given shape with
1399 given 1d hypothesis</p>
1401 <p class="whs7">def Mesh1D(shape1d,
1404 <p class="whs9">mesh1d_tool
1405 = smesh.Mesh(shape1d)</p>
1407 <p class="whs9">mesh1d
1408 = mesh1d_tool.GetMesh()</p>
1410 <p class="whs9">status
1411 = mesh1d.AddHypothesis(shape1d, hyp1d)</p>
1413 <p class="whs9">status
1414 = mesh1d.AddHypothesis(shape1d, Wire_discretisation)</p>
1416 <p class="whs9">isDone
1417 = mesh1d_tool.Compute()</p>
1420 not isDone: print 'Mesh ', name, ': computation failed'</p>
1422 <p class="whs9">return
1425 <p class="whs7"> </p>
1427 <p class="whs8"># Create mesh with six
1428 nodes, seven edges and two quadrangle faces</p>
1430 <p class="whs7">def MakeQuadMesh2(mesh_name):</p>
1432 <p class="whs9">quad_1
1433 = gen.CreateEmptyMesh()</p>
1435 <p class="whs9">smeshgui.SetName(salome.ObjectToID(quad_1),
1438 <p class="whs9">editor_1
1439 = quad_1.GetMeshEditor()</p>
1441 <p class="whs10"> </p>
1443 <p class="whs10"># six nodes</p>
1446 = editor_1.AddNode(0, 20, 10)</p>
1449 = editor_1.AddNode(0, 40, 10)</p>
1452 = editor_1.AddNode(0, 40, 30)</p>
1455 = editor_1.AddNode(0, 20, 30)</p>
1458 = editor_1.AddNode(0, 0,
1462 = editor_1.AddNode(0, 0,
1465 <p class="whs10"> </p>
1467 <p class="whs10"># seven edges</p>
1469 <p class="whs9">editor_1.AddEdge([n1,
1472 <p class="whs9">editor_1.AddEdge([n2,
1475 <p class="whs9">editor_1.AddEdge([n3,
1478 <p class="whs9">editor_1.AddEdge([n4,
1481 <p class="whs9">editor_1.AddEdge([n4,
1484 <p class="whs9">editor_1.AddEdge([n5,
1487 <p class="whs9">editor_1.AddEdge([n6,
1490 <p class="whs10"> </p>
1492 <p class="whs10"># two quadrangle faces</p>
1494 <p class="whs9">editor_1.AddFace([n1,
1495 n2, n3, n4]) # 8</p>
1497 <p class="whs9">editor_1.AddFace([n1,
1498 n4, n5, n6]) # 9</p>
1500 <p class="whs9">return
1501 [quad_1, editor_1, [1,2,3,4,5,6,7], [8,9]]</p>
1503 <p class="whs8"> </p>
1505 <p class="whs8"># Path meshes</p>
1507 <p class="whs7">Edge_straight_mesh
1508 = Mesh1D(Edge_straight, Nb_Segments_7, "Edge_straight")</p>
1510 <p class="whs7">Edge_bezierrr_mesh
1511 = Mesh1D(Edge_bezierrr, Nb_Segments_7, "Edge_bezierrr")</p>
1513 <p class="whs7">Wire_polyline_mesh
1514 = Mesh1D(Wire_polyline, Nb_Segments_3, "Wire_polyline")</p>
1516 <p class="whs7">Edge_Circle_mesh =
1517 Mesh1D(Edge_Circle ,
1518 Nb_Segments_8, "Edge_Circle")</p>
1520 <p class="whs8"> </p>
1522 <p class="whs8"># Initial meshes (to
1525 <p class="whs7">[quad_1, editor_1,
1526 ee_1, ff_1] = MakeQuadMesh2("quad_1")</p>
1528 <p class="whs7">[quad_2, editor_2,
1529 ee_2, ff_2] = MakeQuadMesh2("quad_2")</p>
1531 <p class="whs7">[quad_3, editor_3,
1532 ee_3, ff_3] = MakeQuadMesh2("quad_3")</p>
1534 <p class="whs7">[quad_4, editor_4,
1535 ee_4, ff_4] = MakeQuadMesh2("quad_4")</p>
1537 <p class="whs7">[quad_5, editor_5,
1538 ee_5, ff_5] = MakeQuadMesh2("quad_5")</p>
1540 <p class="whs7">[quad_6, editor_6,
1541 ee_6, ff_6] = MakeQuadMesh2("quad_6")</p>
1543 <p class="whs7">[quad_7, editor_7,
1544 ee_7, ff_7] = MakeQuadMesh2("quad_7")</p>
1546 <p class="whs8"> </p>
1548 <p class="whs8"># ExtrusionAlongPath</p>
1550 <p class="whs8"># IDsOfElements, PathMesh,
1551 PathShape, NodeStart,</p>
1553 <p class="whs8"># HasAngles, Angles,
1554 HasRefPoint, RefPoint</p>
1556 <p class="whs8"> </p>
1558 <p class="whs7">refPoint = SMESH.PointStruct(0,
1561 <p class="whs7"> </p>
1563 <p class="whs7">a10 = 10.0*math.pi/180.0</p>
1565 <p class="whs7">a45 = 45.0*math.pi/180.0</p>
1567 <p class="whs8"> </p>
1569 <p class="whs8"># 1. Extrusion of two
1570 mesh edges along straight path</p>
1572 <p class="whs7">error = editor_1.ExtrusionAlongPath([1,2],
1573 Edge_straight_mesh, Edge_straight, 1,</p>
1575 <p class="whs11"> 0,
1576 [], 0, refPoint)</p>
1578 <p class="whs8"> </p>
1580 <p class="whs8"># 2. Extrusion of one
1581 mesh edge along curved path</p>
1583 <p class="whs7">error = editor_2.ExtrusionAlongPath([2],
1584 Edge_bezierrr_mesh, Edge_bezierrr, 1,</p>
1586 <p class="whs11"> 0,
1587 [], 0, refPoint)</p>
1589 <p class="whs8"> </p>
1591 <p class="whs8"># 3. Extrusion of one
1592 mesh edge along curved path with angles usage</p>
1594 <p class="whs7">error = editor_3.ExtrusionAlongPath([2],
1595 Edge_bezierrr_mesh, Edge_bezierrr, 1,</p>
1597 <p class="whs11"> 1,
1598 [a45, a45, a45, 0, -a45, -a45, -a45], 0, refPoint)</p>
1600 <p class="whs8"> </p>
1602 <p class="whs8"># 4. Extrusion of one
1603 mesh edge along path, which is a part of meshed wire</p>
1605 <p class="whs7">error = editor_4.ExtrusionAlongPath([4],
1606 Wire_polyline_mesh, Wire_polyline_edges[0], 1,</p>
1608 <p class="whs11"> 1,
1609 [a10, a10, a10], 0, refPoint)</p>
1611 <p class="whs8"> </p>
1613 <p class="whs8"># 5. Extrusion of two
1614 mesh faces along path, which is a part of meshed wire</p>
1616 <p class="whs7">error = editor_5.ExtrusionAlongPath(ff_5
1617 , Wire_polyline_mesh, Wire_polyline_edges[2], 4,</p>
1619 <p class="whs11"> 0,
1620 [], 0, refPoint)</p>
1622 <p class="whs8"> </p>
1624 <p class="whs8"># 6. Extrusion of two
1625 mesh faces along closed path</p>
1627 <p class="whs7">error = editor_6.ExtrusionAlongPath(ff_6
1628 , Edge_Circle_mesh, Edge_Circle, 1,</p>
1630 <p class="whs11"> 0,
1631 [], 0, refPoint)</p>
1633 <p class="whs8"> </p>
1635 <p class="whs8"># 7. Extrusion of two
1636 mesh faces along closed path with angles usage</p>
1638 <p class="whs7">error = editor_7.ExtrusionAlongPath(ff_7,
1639 Edge_Circle_mesh, Edge_Circle, 1,</p>
1641 <p class="whs11"> 1,
1642 [a45, -a45, a45, -a45, a45, -a45, a45, -a45], 0, refPoint)</p>
1644 <p class="whs8"> </p>
1646 <p class="whs7">if salome.sg.hasDesktop():</p>
1648 <p class="whs12">salome.sg.updateObjBrowser(1)</p>
1650 <p class="whs12">pass</p>
1652 <h3><a name=bookmark11>Revolution</a></h3>
1654 <p class="whs7">import SMESH</p>
1656 <p class="whs7">import SMESH_mechanic</p>
1658 <p class="whs7">import math</p>
1660 <p class="whs7"> </p>
1662 <p class="whs7">smesh =
1663 SMESH_mechanic.smesh</p>
1665 <p class="whs7">mesh =
1666 SMESH_mechanic.mesh</p>
1668 <p class="whs7">salome = SMESH_mechanic.salome</p>
1670 <p class="whs8"> </p>
1672 <p class="whs8"># rotate a sweep object</p>
1674 <p class="whs7">FacesRotate = [492,
1677 <p class="whs7">GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group
1678 of faces (rotate)")</p>
1680 <p class="whs7">GroupRotate.Add(FacesRotate)</p>
1682 <p class="whs7">angle45 = 45*math.pi/180</p>
1684 <p class="whs7">axisXYZ = SMESH.AxisStruct(-38.3128,
1685 -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>
1687 <p class="whs7"> </p>
1689 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
1691 <p class="whs7">aMeshEditor.RotationSweepObject(GroupRotate,
1692 axisXYZ, angle45, 4, 1e-5)</p>
1694 <p class="whs7"> </p>
1696 <p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
1699 <p class="whs8"> </p>
1701 <h3><a name=bookmark13>Pattern Mapping</a></h3>
1703 <p class="whs7">import salome</p>
1705 <p class="whs7">import geompy</p>
1707 <p class="whs7">import SMESH, smesh</p>
1709 <p class="whs7"> </p>
1711 <p class="whs7">geompy.init_geom(salome.myStudy)</p>
1713 <p class="whs7">smesh.smesh.SetCurrentStudy(salome.myStudy)</p>
1715 <p class="whs7"> </p>
1717 <p class="whs8"># define geometry</p>
1719 <p class="whs7">Box_1 = geompy.MakeBoxDXDYDZ(200,
1722 <p class="whs7">geompy.addToStudy(Box_1,
1723 "Box_1")</p>
1725 <p class="whs7"> </p>
1727 <p class="whs7">faces = geompy.SubShapeAll(Box_1,
1728 geompy.ShapeType["FACE"])</p>
1730 <p class="whs7">Face_1 = faces[0]</p>
1732 <p class="whs7">Face_2 = faces[1]</p>
1734 <p class="whs7">geompy.addToStudyInFather(Box_1,
1735 Face_1, "Face_1")</p>
1737 <p class="whs7">geompy.addToStudyInFather(Box_1,
1738 Face_2, "Face_2")</p>
1740 <p class="whs7"> </p>
1742 <p class="whs8"># build quadrangle mesh
1745 <p class="whs7">Mesh_1 = smesh.Mesh(Face_1)</p>
1747 <p class="whs7">Wire_discretisation
1748 = Mesh_1.Segment()</p>
1750 <p class="whs7">Wire_discretisation.NumberOfSegments(3)</p>
1752 <p class="whs7">Mesh_1.Quadrangle()</p>
1754 <p class="whs7"> </p>
1756 <p class="whs7">isDone = Mesh_1.Compute()</p>
1758 <p class="whs7">if not isDone: print
1759 'Mesh Mesh_1 : computation failed'</p>
1761 <p class="whs7"> </p>
1763 <p class="whs8"># pattern the mesh</p>
1765 <p class="whs7">Mesh_2 = smesh.Mesh(Face_2)</p>
1767 <p class="whs7">Nb_Segments_1 = smesh.smesh.CreateHypothesis('NumberOfSegments',
1768 'libStdMeshersEngine.so')</p>
1770 <p class="whs7">Nb_Segments_1.SetNumberOfSegments(1)</p>
1772 <p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2,
1775 <p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2,
1776 Wire_discretisation.GetAlgorithm())</p>
1778 <p class="whs7">Triangle_Mefisto =
1779 Mesh_2.Triangle()</p>
1781 <p class="whs7">Max_Element_Area =
1782 Triangle_Mefisto.MaxElementArea(240)</p>
1784 <p class="whs7"> </p>
1786 <p class="whs7">isDone = Mesh_2.Compute()</p>
1788 <p class="whs7">if not isDone: print
1789 'Mesh Mesh_2 : computation failed'</p>
1791 <p class="whs7"> </p>
1793 <p class="whs8"># create a pattern</p>
1795 <p class="whs7">pattern = smesh.smesh.GetPattern()</p>
1797 <p class="whs7">isDone = pattern.LoadFromFace(Mesh_2.GetMesh(),
1800 <p class="whs7">if (isDone != 1):</p>
1802 <p class="whs13">print
1803 'LoadFromFace :', pattern.GetErrorCode()</p>
1805 <p class="whs7"> </p>
1807 <p class="whs8"># apply the pattern to
1808 a face of the first mesh</p>
1810 <p class="whs7">pattern.ApplyToMeshFaces(Mesh_1.GetMesh(),
1813 <p class="whs7">isDone = pattern.MakeMesh(Mesh_1.GetMesh(),
1816 <p class="whs7">if (isDone != 1):</p>
1818 <p class="whs13">print
1819 'MakeMesh :', pattern.GetErrorCode()</p>
1821 <p class="whs7"> </p>
1823 <p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
1826 <script type="text/javascript" language="javascript1.2">
1828 if (window.writeIntopicBar)