1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
\r
6 <title>Modifying Meshes</title>
\r
7 <meta http-equiv="content-type" content="text/html; charset=windows-1252">
\r
8 <meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style>
\r
10 P { margin-top:0pt; margin-bottom:0pt; }
\r
13 </style><style type="text/css">
\r
15 p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
\r
16 p.whs2 { margin-top:0pt; margin-bottom:0pt; }
\r
17 p.whs3 { margin-top:0pt; margin-bottom:0pt; font-family:'Times New Roman' , serif; }
\r
18 h4.whs4 { margin-top:0pt; margin-bottom:0pt; }
\r
19 p.whs5 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
\r
20 p.whs6 { margin-top:0.5pt; margin-bottom:0pt; }
\r
21 p.whs7 { font-family:'Lucida Console' , monospace; }
\r
22 p.whs8 { font-family:'Times New Roman' , serif; }
\r
23 p.whs9 { margin-left:40px; font-family:'Lucida Console' , monospace; }
\r
25 </style><script type="text/javascript" language="JavaScript">
\r
27 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
\r
29 var strNSS = "<style type='text/css'>";
\r
30 strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
\r
31 strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
\r
32 strNSS += "p.whs3 {margin-top:1pt;margin-bottom:1pt; }";
\r
33 strNSS += "h4.whs4 {margin-top:1pt;margin-bottom:1pt; }";
\r
34 strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
\r
35 strNSS += "p.whs6 {margin-top:1pt;margin-bottom:1pt; }";
\r
36 strNSS +="</style>";
\r
37 document.write(strNSS);
\r
41 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
\r
44 if (innerWidth != origWidth || innerHeight != origHeight)
\r
47 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
\r
48 origWidth = innerWidth;
\r
49 origHeight = innerHeight;
\r
55 <style type="text/css">
\r
57 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
\r
58 p.WebHelpNavBar { text-align:right; }
\r
60 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
\r
61 <script type="text/javascript" language="javascript" src="whver.js"></script>
\r
62 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
\r
63 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
\r
64 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
\r
65 <script type="text/javascript" language="javascript1.2">
\r
67 if (window.gbWhTopic)
\r
69 if (window.setRelStartPage)
\r
71 addTocInfo("MESH module\nTUI Scripts\nModifying Meshes");
\r
72 addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
\r
73 addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
\r
78 if (window.setRelStartPage)
\r
80 setRelStartPage("index.htm");
\r
90 document.location.reload();
\r
94 <body><script type="text/javascript" language="javascript1.2">
\r
96 if (window.writeIntopicBar)
\r
100 <h1>Modifying Meshes</h1>
\r
102 <h3><a name=bookmark>Adding Nodes and Elements</a></h3>
\r
106 <p class="whs1">import SMESH</p>
\r
108 <p class="whs1">import SMESH_mechanic</p>
\r
110 <p class="whs1"> </p>
\r
112 <p class="whs1">smesh =
\r
113 SMESH_mechanic.smesh</p>
\r
115 <p class="whs1">mesh =
\r
116 SMESH_mechanic.mesh</p>
\r
118 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
120 <p class="whs2"> </p>
\r
122 <p class="whs2"># add node</p>
\r
124 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
126 <p class="whs1">if aMeshEditor.AddNode(50,
\r
129 <p class="whs1"> print
\r
130 "Node addition is OK!"</p>
\r
132 <p class="whs1">else:</p>
\r
134 <p class="whs1"> print
\r
135 "KO node addition."</p>
\r
137 <p class="whs1"> </p>
\r
139 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
142 <p class="whs1"> </p>
\r
146 <p class="whs1">import SMESH</p>
\r
148 <p class="whs1">import SMESH_mechanic</p>
\r
150 <p class="whs1"> </p>
\r
152 <p class="whs1">smesh =
\r
153 SMESH_mechanic.smesh</p>
\r
155 <p class="whs1">mesh =
\r
156 SMESH_mechanic.mesh</p>
\r
158 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
160 <p class="whs2"> </p>
\r
162 <p class="whs2"># add node</p>
\r
164 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
166 <p class="whs1">if aMeshEditor.AddNode(50,
\r
169 <p class="whs1"> print
\r
170 "Node addition is OK!"</p>
\r
172 <p class="whs1">else:</p>
\r
174 <p class="whs1"> print
\r
175 "KO node addition."</p>
\r
177 <p class="whs1"> </p>
\r
179 <p class="whs2"># add edge</p>
\r
181 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
\r
183 <p class="whs1">if aMeshEditor.AddEdge([LastNodeId,
\r
186 <p class="whs1"> print
\r
187 "Edge addition is OK!"</p>
\r
189 <p class="whs1">else:</p>
\r
191 <p class="whs1"> print
\r
192 "KO edge addition."</p>
\r
194 <p class="whs1"> </p>
\r
196 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
199 <p class="whs1"> </p>
\r
201 <h4>Add Triangle</h4>
\r
203 <p class="whs1">import SMESH</p>
\r
205 <p class="whs1">import SMESH_mechanic</p>
\r
207 <p class="whs1"> </p>
\r
209 <p class="whs1">smesh =
\r
210 SMESH_mechanic.smesh</p>
\r
212 <p class="whs1">mesh =
\r
213 SMESH_mechanic.mesh</p>
\r
215 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
217 <p class="whs1"> </p>
\r
219 <p class="whs2"># add node</p>
\r
221 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
223 <p class="whs1">if aMeshEditor.AddNode(50,
\r
226 <p class="whs1"> print
\r
227 "Node addition is OK!"</p>
\r
229 <p class="whs1">else:</p>
\r
231 <p class="whs1"> print
\r
232 "KO node addition."</p>
\r
234 <p class="whs1"> </p>
\r
236 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
\r
238 <p class="whs2"> </p>
\r
240 <p class="whs2"># add triangle</p>
\r
242 <p class="whs1">if aMeshEditor.AddFace([LastNodeId,
\r
245 <p class="whs1"> print
\r
246 "Triangle addition is OK!"</p>
\r
248 <p class="whs1">else:</p>
\r
250 <p class="whs1"> print
\r
251 "KO triangle addition."</p>
\r
253 <p class="whs1"> </p>
\r
255 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
258 <p class="whs1"> </p>
\r
260 <h4>Add Quadrangle</h4>
\r
262 <p class="whs1">import SMESH</p>
\r
264 <p class="whs1">import SMESH_mechanic</p>
\r
266 <p class="whs1"> </p>
\r
268 <p class="whs1">smesh =
\r
269 SMESH_mechanic.smesh</p>
\r
271 <p class="whs1">mesh =
\r
272 SMESH_mechanic.mesh</p>
\r
274 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
276 <p class="whs1"> </p>
\r
278 <p class="whs2"># add node</p>
\r
280 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
282 <p class="whs1">if aMeshEditor.AddNode(50,
\r
285 <p class="whs1"> print
\r
286 "Node addition is OK!"</p>
\r
288 <p class="whs1">else:</p>
\r
290 <p class="whs1"> print
\r
291 "KO node addition."</p>
\r
293 <p class="whs1"> </p>
\r
295 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
\r
297 <p class="whs2"> </p>
\r
299 <p class="whs2"># add quadrangle</p>
\r
301 <p class="whs1">if aMeshEditor.AddNode(40,
\r
304 <p class="whs1"> print
\r
305 "Node addition is OK!"</p>
\r
307 <p class="whs1">else:</p>
\r
309 <p class="whs1"> print
\r
310 "KO node addition."</p>
\r
312 <p class="whs1">if aMeshEditor.AddFace([mesh.NbNodes(),
\r
313 LastNodeId, 38, 39]) == 1:</p>
\r
315 <p class="whs1"> print
\r
316 "Quadrangle addition is OK!"</p>
\r
318 <p class="whs1">else:</p>
\r
320 <p class="whs1"> print
\r
321 "KO quadrangle addition."</p>
\r
323 <p class="whs1"> </p>
\r
325 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
328 <p class="whs2"> </p>
\r
330 <h4>Add Tetrahedron</h4>
\r
332 <p class="whs1">import SMESH</p>
\r
334 <p class="whs1">import SMESH_mechanic</p>
\r
336 <p class="whs1"> </p>
\r
338 <p class="whs1">smesh =
\r
339 SMESH_mechanic.smesh</p>
\r
341 <p class="whs1">mesh =
\r
342 SMESH_mechanic.mesh</p>
\r
344 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
346 <p class="whs1"> </p>
\r
348 <p class="whs2"># add node</p>
\r
350 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
352 <p class="whs1">if aMeshEditor.AddNode(50,
\r
355 <p class="whs1"> print
\r
356 "Node addition is OK!"</p>
\r
358 <p class="whs1">else:</p>
\r
360 <p class="whs1"> print
\r
361 "KO node addition."</p>
\r
363 <p class="whs1"> </p>
\r
365 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
\r
367 <p class="whs2"> </p>
\r
369 <p class="whs2"># add tetrahedron</p>
\r
371 <p class="whs1">if aMeshEditor.AddVolume([LastNodeId,
\r
372 38, 39, 246]) == 1:</p>
\r
374 <p class="whs1"> print
\r
375 "Tetrahedron addition is OK!"</p>
\r
377 <p class="whs1">else:</p>
\r
379 <p class="whs1"> print
\r
380 "KO tetrahedron addition."</p>
\r
382 <p class="whs1"> </p>
\r
384 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
387 <p class="whs2"> </p>
\r
389 <h4>Add Hexahedron</h4>
\r
391 <p class="whs1">import SMESH</p>
\r
393 <p class="whs1">import SMESH_mechanic</p>
\r
395 <p class="whs1"> </p>
\r
397 <p class="whs1">smesh =
\r
398 SMESH_mechanic.smesh</p>
\r
400 <p class="whs1">mesh =
\r
401 SMESH_mechanic.mesh</p>
\r
403 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
405 <p class="whs1"> </p>
\r
407 <p class="whs2"># add nodes</p>
\r
409 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
411 <p class="whs1">if aMeshEditor.AddNode(50,
\r
414 <p class="whs1"> print
\r
415 "Node addition is OK!"</p>
\r
417 <p class="whs1">else:</p>
\r
419 <p class="whs1"> print
\r
420 "KO node addition."</p>
\r
422 <p class="whs1">aNodeId1 = mesh.NbNodes()</p>
\r
424 <p class="whs1"> </p>
\r
426 <p class="whs1">if aMeshEditor.AddNode(47,
\r
429 <p class="whs1"> print
\r
430 "Node addition is OK!"</p>
\r
432 <p class="whs1">else:</p>
\r
434 <p class="whs1"> print
\r
435 "KO node addition."</p>
\r
437 <p class="whs1">aNodeId2 = mesh.NbNodes()</p>
\r
439 <p class="whs1"> </p>
\r
441 <p class="whs1">if aMeshEditor.AddNode(50,
\r
444 <p class="whs1"> print
\r
445 "Node addition is OK!"</p>
\r
447 <p class="whs1">else:</p>
\r
449 <p class="whs1"> print
\r
450 "KO node addition."</p>
\r
452 <p class="whs1">aNodeId3 = mesh.NbNodes()</p>
\r
454 <p class="whs1"> </p>
\r
456 <p class="whs1">if aMeshEditor.AddNode(47,
\r
459 <p class="whs1"> print
\r
460 "Node addition is OK!"</p>
\r
462 <p class="whs1">else:</p>
\r
464 <p class="whs1"> print
\r
465 "KO node addition."</p>
\r
467 <p class="whs1">aNodeId4 = mesh.NbNodes()</p>
\r
469 <p class="whs1"> </p>
\r
471 <p class="whs2"># add hexahedron</p>
\r
473 <p class="whs1">if aMeshEditor.AddVolume([aNodeId2,
\r
474 aNodeId1, 38, 39, aNodeId4, aNodeId3, 245, 246]) == 1:</p>
\r
476 <p class="whs1"> print
\r
477 "Hexahedron addition is OK!"</p>
\r
479 <p class="whs1">else:</p>
\r
481 <p class="whs1"> print
\r
482 "KO Hexahedron addition."</p>
\r
484 <p class="whs1"> </p>
\r
486 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
489 <p class="whs2"> </p>
\r
491 <h4>Add Polygon</h4>
\r
493 <p class="whs1">import salome</p>
\r
495 <p class="whs1">import geompy</p>
\r
497 <p class="whs1">import math</p>
\r
499 <p class="whs1"> </p>
\r
501 <p class="whs1">import StdMeshers</p>
\r
503 <p class="whs1"> </p>
\r
505 <p class="whs2"># GEOM module </p>
\r
507 <p class="whs1">shape_mesh = geompy.MakeCylinderRH(13,
\r
510 <p class="whs1">geompy.addToStudy(shape_mesh,
\r
511 "cylinder")</p>
\r
513 <p class="whs1"> </p>
\r
515 <p class="whs2"># SMESH module</p>
\r
517 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
\r
518 "SMESH")</p>
\r
520 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
\r
522 <p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>
\r
524 <p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>
\r
526 <p class="whs1"> </p>
\r
528 <p class="whs2"># a method to build a polygonal
\r
529 mesh element with nb_vert angles:</p>
\r
531 <p class="whs1">def MakePolygon
\r
532 (a_mesh, x0, y0, z0, radius, nb_vert):</p>
\r
534 <p class="whs1"> node_start_id
\r
535 = a_mesh.NbNodes() + 1</p>
\r
537 <p class="whs1"> al
\r
538 = 2.0 * math.pi / nb_vert</p>
\r
540 <p class="whs1"> node_ids
\r
543 <p class="whs2"> </p>
\r
545 <p class="whs2"># Create nodes for a polyhedron</p>
\r
547 <p class="whs1"> for
\r
548 ii in range(nb_vert):</p>
\r
550 <p class="whs1"> MeshEditor.AddNode(x0
\r
551 + radius * math.cos(ii*al),</p>
\r
553 <p class="whs1"> y0
\r
554 + radius * math.sin(ii*al),</p>
\r
556 <p class="whs1"> z0)</p>
\r
558 <p class="whs1"> node_ids.append(node_start_id
\r
561 <p class="whs1"> pass</p>
\r
563 <p class="whs2"> </p>
\r
565 <p class="whs2"># Create a polygon</p>
\r
567 <p class="whs1"> MeshEditor.AddPolygonalFace(node_ids)</p>
\r
569 <p class="whs1"> return
\r
572 <p class="whs1"> </p>
\r
574 <p class="whs2"># Create three polygons</p>
\r
576 <p class="whs1">MakePolygon(mesh,
\r
580 <p class="whs1">MakePolygon(mesh,
\r
581 0, 0, 10, 21, 9)</p>
\r
583 <p class="whs1">MakePolygon(mesh,
\r
584 0, 0, 20, 13, 6)</p>
\r
586 <p class="whs1"> </p>
\r
588 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
591 <p class="whs1"> </p>
\r
593 <h4>Add polyhedron</h4>
\r
595 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import
\r
598 <p class="whs1">import geompy</p>
\r
600 <p class="whs1">import math</p>
\r
602 <p class="whs1"> </p>
\r
604 <p class="whs1">#import SMESH</p>
\r
606 <p class="whs1">import StdMeshers</p>
\r
608 <p class="whs1"> </p>
\r
610 <p class="whs3"># GEOM</p>
\r
612 <p class="whs1">shape_mesh = geompy.MakeCylinderRH(13,
\r
615 <p class="whs1">geompy.addToStudy(shape_mesh,
\r
616 "cylinder")</p>
\r
618 <p class="whs1"> </p>
\r
620 <p class="whs3"># SMESH</p>
\r
622 <p class="whs1">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
\r
623 "SMESH")</p>
\r
625 <p class="whs1">smesh.SetCurrentStudy(salome.myStudy)</p>
\r
627 <p class="whs1">mesh = smesh.CreateMesh(shape_mesh)</p>
\r
629 <p class="whs1">MeshEditor = mesh.GetMeshEditor()</p>
\r
631 <p class="whs1"> </p>
\r
633 <p class="whs3"># Now we are going
\r
634 to create a 12-hedron:</p>
\r
636 <p class="whs3"> </p>
\r
638 <p class="whs3"># Create nodes for
\r
641 <p class="whs1">al = 2 * math.pi
\r
644 <p class="whs1">cosal = math.cos(al)</p>
\r
646 <p class="whs1"> </p>
\r
648 <p class="whs1">aa = 13</p>
\r
650 <p class="whs1">rr = aa / (2.0 *
\r
651 math.sin(al/2.0))</p>
\r
653 <p class="whs1">dr = 2.0 * rr *
\r
656 <p class="whs1">r1 = rr + dr</p>
\r
658 <p class="whs1">dh = rr * math.sqrt(2.0
\r
659 * (1.0 - cosal * (1.0 + 2.0 * cosal)))</p>
\r
661 <p class="whs1">hh = 2.0 * dh -
\r
662 dr * (rr*(cosal - 1) + (rr + dr)*(math.cos(al/2) - 1)) / dh</p>
\r
664 <p class="whs1"> </p>
\r
666 <p class="whs1">for i in range(5):</p>
\r
668 <p class="whs1"> MeshEditor.AddNode(rr*math.cos(i*al),
\r
669 rr*math.sin(i*al), 0)
\r
670 <span style="font-family: 'Times New Roman', serif;"># 1,3,5,7, 9 # bottom</span></p>
\r
672 <p class="whs1"> MeshEditor.AddNode(r1*math.cos(i*al),
\r
673 r1*math.sin(i*al), dh) <span style="font-family: 'Times New Roman', serif;">#
\r
674 2,4,6,8,10 # above bottom</span></p>
\r
676 <p class="whs1"> </p>
\r
678 <p class="whs1">for i in range(5):</p>
\r
680 <p class="whs1"> MeshEditor.AddNode(rr*math.cos(i*al
\r
683 <p class="whs1"> rr*math.sin(i*al
\r
684 + al/2.0), hh) # 11,13,15,17,19 <span style="font-family: 'Times New Roman', serif;">#
\r
687 <p class="whs1"> MeshEditor.AddNode(r1*math.cos(i*al
\r
690 <p class="whs1"> r1*math.sin(i*al
\r
691 + al/2.0), hh - dh) # 12,14,16,18,20 <span style="font-family: 'Times New Roman', serif;">#
\r
692 below top</span></p>
\r
694 <p class="whs1"> </p>
\r
696 <p class="whs3"># Create a polyhedral
\r
699 <p class="whs1">MeshEditor.AddPolyhedralVolume([
\r
700 1, 3, 5,
\r
702 <span style="font-family: 'Times New Roman', serif;">#
\r
705 <p class="whs1"> 1,
\r
708 <span style="font-family: 'Times New Roman', serif;">#
\r
711 <p class="whs1"> 3,
\r
714 <span style="font-family: 'Times New Roman', serif;">#
\r
717 <p class="whs1"> 5,
\r
720 <span style="font-family: 'Times New Roman', serif;">#
\r
721 . above bottom</span></p>
\r
723 <p class="whs1"> 7,
\r
726 <span style="font-family: 'Times New Roman', serif;">#
\r
729 <p class="whs1"> 9,
\r
731 1, <span
\r
732 style="font-family: 'Times New Roman', serif;">#
\r
735 <p class="whs1"> 11,
\r
737 14, 13, <span style="font-family: 'Times New Roman', serif;">#
\r
740 <p class="whs1"> 13,
\r
742 16, 15, <span style="font-family: 'Times New Roman', serif;">#
\r
745 <p class="whs1"> 15,
\r
747 18, 17, <span style="font-family: 'Times New Roman', serif;">#
\r
748 - below top</span></p>
\r
750 <p class="whs1"> 17,
\r
751 18, 10, 20, 19, <span style="font-family: 'Times New Roman', serif;">#
\r
754 <p class="whs1"> 19,
\r
756 12, 11, <span style="font-family: 'Times New Roman', serif;">#
\r
759 <p class="whs1"> 11,
\r
760 13, 15, 17, 19], <span style="font-family: 'Times New Roman', serif;">#
\r
763 <p class="whs1"> [5,5,5,5,5,5,5,5,5,5,5,5])</p>
\r
765 <p class="whs1"> </p>
\r
767 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
770 <p class="whs1"> </p>
\r
772 <h3><a name=bookmark1>Removing Nodes and Elements</a></h3>
\r
774 <h4 class="whs4">Removing Nodes</h4>
\r
776 <p class="whs2"> </p>
\r
778 <p class="whs1">import SMESH</p>
\r
780 <p class="whs1">import SMESH_mechanic</p>
\r
782 <p class="whs1"> </p>
\r
784 <p class="whs1">smesh =
\r
785 SMESH_mechanic.smesh</p>
\r
787 <p class="whs1">mesh =
\r
788 SMESH_mechanic.mesh</p>
\r
790 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
792 <p class="whs2"> </p>
\r
794 <p class="whs2"># add node</p>
\r
796 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
798 <p class="whs1">if aMeshEditor.RemoveNodes([246,
\r
801 <p class="whs1"> print
\r
802 "Node removing is OK!"</p>
\r
804 <p class="whs1">else:</p>
\r
806 <p class="whs1"> print
\r
807 "KO node removing."</p>
\r
809 <p class="whs1"> </p>
\r
811 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
814 <p class="whs2"> </p>
\r
816 <h4>Removing Elements</h4>
\r
818 <p class="whs1">import SMESH</p>
\r
820 <p class="whs1">import SMESH_mechanic</p>
\r
822 <p class="whs1"> </p>
\r
824 <p class="whs1">smesh =
\r
825 SMESH_mechanic.smesh</p>
\r
827 <p class="whs1">mesh =
\r
828 SMESH_mechanic.mesh</p>
\r
830 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
832 <p class="whs1"> </p>
\r
834 <p class="whs1">anEditor = mesh.GetMeshEditor()</p>
\r
836 <p class="whs1">anEditor.RemoveElements([850,
\r
839 <p class="whs1"> </p>
\r
841 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
844 <p class="whs1"> </p>
\r
846 <h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>
\r
848 <p class="whs5">import SMESH</p>
\r
850 <p class="whs5">import SMESH_mechanic</p>
\r
852 <p class="whs5"> </p>
\r
854 <p class="whs5">mesh =
\r
855 SMESH_mechanic.mesh</p>
\r
857 <p class="whs5">salome = SMESH_mechanic.salome</p>
\r
859 <p class="whs5"> </p>
\r
861 <p class="whs5">anEditor = mesh.GetMeshEditor()</p>
\r
863 <p class="whs5">anEditor.RenumberNodes()</p>
\r
865 <p class="whs5"> </p>
\r
867 <p class="whs6"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
870 <p class="whs6"> </p>
\r
874 <h3><a name=bookmark3>Moving Nodes</a></h3>
\r
876 <p class="whs1">import SMESH</p>
\r
878 <p class="whs1">import SMESH_mechanic</p>
\r
880 <p class="whs1"> </p>
\r
882 <p class="whs1">smesh =
\r
883 SMESH_mechanic.smesh</p>
\r
885 <p class="whs1">mesh =
\r
886 SMESH_mechanic.mesh</p>
\r
888 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
890 <p class="whs1"> </p>
\r
892 <p class="whs2"># move node</p>
\r
894 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
896 <p class="whs1">aMeshEditor.MoveNode(38,
\r
899 <p class="whs1"> </p>
\r
901 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
904 <p class="whs2"> </p>
\r
906 <h3><a name=bookmark4>Diagonal Inversion</a></h3>
\r
908 <p class="whs1">import SMESH</p>
\r
910 <p class="whs1">import SMESH_mechanic</p>
\r
912 <p class="whs1"> </p>
\r
914 <p class="whs1">smesh =
\r
915 SMESH_mechanic.smesh</p>
\r
917 <p class="whs1">mesh =
\r
918 SMESH_mechanic.mesh</p>
\r
920 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
922 <p class="whs1"> </p>
\r
924 <p class="whs2"># inverse diagonal</p>
\r
926 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
928 <p class="whs1">aMeshEditor.InverseDiag(700,
\r
931 <p class="whs1"> </p>
\r
933 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
936 <p class="whs2"> </p>
\r
938 <h3><a name=bookmark5>Uniting two Triangles</a></h3>
\r
940 <p class="whs7">import SMESH</p>
\r
942 <p class="whs7">import SMESH_mechanic</p>
\r
944 <p class="whs7"> </p>
\r
946 <p class="whs7">smesh =
\r
947 SMESH_mechanic.smesh</p>
\r
949 <p class="whs7">mesh =
\r
950 SMESH_mechanic.mesh</p>
\r
952 <p class="whs7">salome = SMESH_mechanic.salome</p>
\r
954 <p class="whs7"> </p>
\r
956 <p># delete diagonal</p>
\r
958 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
\r
960 <p class="whs7">aMeshEditor.DeleteDiag(700,
\r
963 <p class="whs7"> </p>
\r
965 <p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
970 <h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>
\r
972 <p class="whs7">import SMESH</p>
\r
974 <p class="whs7">import SMESH_mechanic</p>
\r
976 <p class="whs7"> </p>
\r
978 <p class="whs7">smesh =
\r
979 SMESH_mechanic.smesh</p>
\r
981 <p class="whs7">mesh =
\r
982 SMESH_mechanic.mesh</p>
\r
984 <p class="whs7">salome = SMESH_mechanic.salome</p>
\r
986 <p class="whs7"> </p>
\r
988 <p># unite a set of triangles</p>
\r
990 <p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>
\r
992 <p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>
\r
994 <p class="whs7"> </p>
\r
996 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
\r
998 <p class="whs7">aMeshEditor.TriToQuad([1145,
\r
999 1147, 1159, 1135], aFunctor, 60)</p>
\r
1001 <p class="whs7"> </p>
\r
1003 <p class="whs7">salome.sg.updateObjBrowser(1)
\r
1006 <p class="whs7"> </p>
\r
1008 <h3><a name=bookmark12>Orientation</a></h3>
\r
1010 <p class="whs7"><span style="font-family: 'Lucida Console', monospace;">import
\r
1013 <p class="whs7">import geompy</p>
\r
1015 <p class="whs7"> </p>
\r
1017 <p class="whs7">import StdMeshers</p>
\r
1019 <p class="whs7"> </p>
\r
1021 <p class="whs8"># GEOM module</p>
\r
1023 <p class="whs7">shape_mesh = geompy.MakeCylinderRH(13,
\r
1026 <p class="whs7">geompy.addToStudy(shape_mesh,
\r
1027 "cylinder")</p>
\r
1029 <p class="whs7"> </p>
\r
1031 <p class="whs8"># SMESH module</p>
\r
1033 <p class="whs7">smesh = salome.lcc.FindOrLoadComponent("FactoryServer",
\r
1034 "SMESH")</p>
\r
1036 <p class="whs7">smesh.SetCurrentStudy(salome.myStudy)</p>
\r
1038 <p class="whs7">mesh = smesh.CreateMesh(shape_mesh)</p>
\r
1040 <p class="whs7">MeshEditor = mesh.GetMeshEditor()</p>
\r
1042 <p class="whs7"> </p>
\r
1044 <p class="whs8"># build five quadrangles:</p>
\r
1046 <p class="whs7">node_start_id = mesh.NbNodes()
\r
1049 <p class="whs7">dx = 10</p>
\r
1051 <p class="whs7">dy = 20</p>
\r
1053 <p class="whs7"> </p>
\r
1055 <p class="whs7">MeshEditor.AddNode(0.0
\r
1056 * dx, 0, 0) # 1</p>
\r
1058 <p class="whs7">MeshEditor.AddNode(1.0
\r
1059 * dx, 0, 0) # 2</p>
\r
1061 <p class="whs7">MeshEditor.AddNode(2.0
\r
1062 * dx, 0, 0) # 3</p>
\r
1064 <p class="whs7">MeshEditor.AddNode(3.0
\r
1065 * dx, 0, 0) # 4</p>
\r
1067 <p class="whs7">MeshEditor.AddNode(4.0
\r
1068 * dx, 0, 0) # 5</p>
\r
1070 <p class="whs7">MeshEditor.AddNode(5.0
\r
1071 * dx, 0, 0) # 6</p>
\r
1073 <p class="whs7"> </p>
\r
1075 <p class="whs7">MeshEditor.AddNode(0.0
\r
1076 * dx, dy, 0) # 7</p>
\r
1078 <p class="whs7">MeshEditor.AddNode(1.0
\r
1079 * dx, dy, 0) # 8</p>
\r
1081 <p class="whs7">MeshEditor.AddNode(2.0
\r
1082 * dx, dy, 0) # 9</p>
\r
1084 <p class="whs7">MeshEditor.AddNode(3.0
\r
1085 * dx, dy, 0) # 10</p>
\r
1087 <p class="whs7">MeshEditor.AddNode(4.0
\r
1088 * dx, dy, 0) # 11</p>
\r
1090 <p class="whs7">MeshEditor.AddNode(5.0
\r
1091 * dx, dy, 0) # 12</p>
\r
1093 <p class="whs7"> </p>
\r
1095 <p class="whs7">MeshEditor.AddFace([1,
\r
1096 2, 8, 7])</p>
\r
1098 <p class="whs7">MeshEditor.AddFace([2,
\r
1099 3, 9, 8])</p>
\r
1101 <p class="whs7">MeshEditor.AddFace([3,
\r
1102 4, 10, 9])</p>
\r
1104 <p class="whs7">MeshEditor.AddFace([4,
\r
1107 <p class="whs7">MeshEditor.AddFace([5,
\r
1110 <p class="whs7"> </p>
\r
1112 <p class="whs8"># Change orientation
\r
1113 of the second and the fourth faces.</p>
\r
1115 <p class="whs7">MeshEditor.Reorient([2,
\r
1118 <p class="whs7"> </p>
\r
1120 <p class="whs7">salome.sg.updateObjBrowser(1)
\r
1123 <p class="whs7"> </p>
\r
1125 <h3><a name=bookmark7>Cutting Quadrangles</a></h3>
\r
1127 <p class="whs7">import SMESH</p>
\r
1129 <p class="whs7">import SMESH_mechanic</p>
\r
1131 <p class="whs7"> </p>
\r
1133 <p class="whs7">smesh =
\r
1134 SMESH_mechanic.smesh</p>
\r
1136 <p class="whs7">mesh =
\r
1137 SMESH_mechanic.mesh</p>
\r
1139 <p class="whs7">salome = SMESH_mechanic.salome</p>
\r
1141 <p class="whs7"> </p>
\r
1143 <p class="whs8"># unite a set of triangles</p>
\r
1145 <p class="whs7">aFilterMgr = smesh.CreateFilterManager()</p>
\r
1147 <p class="whs7">aFunctor = aFilterMgr.CreateMinimumAngle()</p>
\r
1149 <p class="whs7"> </p>
\r
1151 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
\r
1153 <p class="whs7">aMeshEditor.QuadToTri([405,
\r
1154 406], aFunctor)</p>
\r
1156 <p class="whs7"> </p>
\r
1158 <p class="whs7">salome.sg.updateObjBrowser(1)
\r
1161 <p class="whs8"> </p>
\r
1163 <h3><a name=bookmark8>Smoothing</a></h3>
\r
1165 <p class="whs7">import SMESH</p>
\r
1167 <p class="whs7">import SMESH_mechanic</p>
\r
1169 <p class="whs7"> </p>
\r
1171 <p class="whs7">smesh =
\r
1172 SMESH_mechanic.smesh</p>
\r
1174 <p class="whs7">mesh =
\r
1175 SMESH_mechanic.mesh</p>
\r
1177 <p class="whs7">salome = SMESH_mechanic.salome</p>
\r
1179 <p class="whs7"> </p>
\r
1181 <p class="whs8"># smooth</p>
\r
1183 <p class="whs7">FacesSmooth = [911,
\r
1184 931, 950, 864, 932]</p>
\r
1186 <p class="whs7">GroupSmooth = mesh.CreateGroup(SMESH.FACE,"Group
\r
1187 of faces (smooth)")</p>
\r
1189 <p class="whs7">GroupSmooth.Add(FacesSmooth)</p>
\r
1191 <p class="whs7"> </p>
\r
1193 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
\r
1195 <p class="whs7">aMeshEditor.SmoothObject(GroupSmooth,
\r
1196 [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)</p>
\r
1198 <p class="whs7"> </p>
\r
1200 <p class="whs7">salome.sg.updateObjBrowser(1)
\r
1203 <p class="whs7"> </p>
\r
1205 <p class="whs7"> </p>
\r
1207 <h3><a name=bookmark9>Extrusion</a></h3>
\r
1209 <p class="whs8">import SMESH</p>
\r
1211 <p class="whs8">import SMESH_mechanic</p>
\r
1213 <p class="whs8"> </p>
\r
1215 <p class="whs8">smesh =
\r
1216 SMESH_mechanic.smesh</p>
\r
1218 <p class="whs8">mesh =
\r
1219 SMESH_mechanic.mesh</p>
\r
1221 <p class="whs8">salome = SMESH_mechanic.salome</p>
\r
1223 <p class="whs7"> </p>
\r
1225 <p class="whs8"># extrusion of the group</p>
\r
1227 <p class="whs8">point = SMESH.PointStruct(0,
\r
1230 <p class="whs8">vector = SMESH.DirStruct(point)</p>
\r
1232 <p class="whs8">FacesTriToQuad = [2381,
\r
1233 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393,
\r
1234 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405,
\r
1235 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417,
\r
1236 2418, 2419, 2420, 2421, 2422]</p>
\r
1238 <p class="whs8"> </p>
\r
1240 <p class="whs8">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,"Group
\r
1241 of faces (quad)")</p>
\r
1243 <p class="whs8">GroupTriToQuad.Add(FacesTriToQuad)</p>
\r
1245 <p class="whs8"> </p>
\r
1247 <p class="whs8">aMeshEditor = mesh.GetMeshEditor()</p>
\r
1249 <p class="whs8">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad,
\r
1252 <p class="whs8"> </p>
\r
1254 <p class="whs8">salome.sg.updateObjBrowser(1)
\r
1257 <p class="whs8"> </p>
\r
1259 <h3><a name=bookmark10>Extrusion along a Path</a></h3>
\r
1261 <p class="whs7">import geompy</p>
\r
1263 <p class="whs7">import smesh</p>
\r
1265 <p class="whs7">import salome</p>
\r
1267 <p class="whs7">import SMESH</p>
\r
1269 <p class="whs7"> </p>
\r
1271 <p class="whs8"># create a face to be
\r
1274 <p class="whs7">px = geompy.MakeVertex(100.,
\r
1278 <p class="whs7">py = geompy.MakeVertex(0.
\r
1282 <p class="whs7">pz = geompy.MakeVertex(0.
\r
1283 , 0. ,
\r
1286 <p class="whs7"> </p>
\r
1288 <p class="whs7">vxy = geompy.MakeVector(px,
\r
1291 <p class="whs7">arc = geompy.MakeArc(py,
\r
1294 <p class="whs7"> </p>
\r
1296 <p class="whs7">wire = geompy.MakeWire([vxy,
\r
1299 <p class="whs7">isPlanarFace = 1</p>
\r
1301 <p class="whs7"> </p>
\r
1303 <p class="whs7">face1 = geompy.MakeFace(wire,
\r
1306 <p class="whs7">id_face1 = geompy.addToStudy(face1,
\r
1307 "Face1")</p>
\r
1309 <p class="whs7"> </p>
\r
1311 <p class="whs8"># create a 2D mesh on
\r
1314 <p class="whs7">trias = smesh.Mesh(face1,
\r
1315 "Face : 2D mesh")</p>
\r
1317 <p class="whs7"> </p>
\r
1319 <p class="whs7">algo = trias.Segment()</p>
\r
1321 <p class="whs7">algo.NumberOfSegments(6)</p>
\r
1323 <p class="whs7"> </p>
\r
1325 <p class="whs7">algo = trias.Triangle()</p>
\r
1327 <p class="whs7">algo.LengthFromEdges()</p>
\r
1329 <p class="whs7"> </p>
\r
1331 <p class="whs7">trias.Compute()</p>
\r
1333 <p class="whs7"> </p>
\r
1335 <p class="whs8"># create a path mesh</p>
\r
1337 <p class="whs7">px1 = geompy.MakeVertex(100.,
\r
1341 <p class="whs7">py1 = geompy.MakeVertex(-100.
\r
1345 <p class="whs7">pz1 = geompy.MakeVertex(0.
\r
1346 , 0. ,
\r
1349 <p class="whs7"> </p>
\r
1351 <p class="whs7">circle = geompy.MakeCircleThreePnt(py1,
\r
1354 <p class="whs7">id_circle = geompy.addToStudy(circle,
\r
1355 "Path")</p>
\r
1357 <p class="whs7"> </p>
\r
1359 <p class="whs7">circlemesh = smesh.Mesh(circle,
\r
1360 "Path mesh")</p>
\r
1362 <p class="whs7"> </p>
\r
1364 <p class="whs7">algo = circlemesh.Segment()</p>
\r
1366 <p class="whs7">algo.NumberOfSegments(10)</p>
\r
1368 <p class="whs7"> </p>
\r
1370 <p class="whs7">circlemesh.Compute()</p>
\r
1372 <p class="whs7"> </p>
\r
1374 <p class="whs8"># extrusion of the mesh</p>
\r
1376 <p class="whs8"># The mesh "trias"
\r
1377 will be extruded along another mesh, which is a sub-mesh of "circlemesh",</p>
\r
1379 <p class="whs8"><span style="font-family: 'Times New Roman', serif;">#
\r
1380 corresponding to geometry "circle". In this particular case
\r
1381 the path mesh will be the whole "circlemesh"</span></p>
\r
1383 <p class="whs8"> </p>
\r
1385 <p class="whs7">aMeshEditor = trias.GetMesh().GetMeshEditor()</p>
\r
1387 <p class="whs7">aMeshEditor.ExtrusionAlongPathObject(trias.GetMesh(),
\r
1388 circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>
\r
1390 <p class="whs7"> </p>
\r
1392 <p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1395 <h3><a name=bookmark11>Revolution</a></h3>
\r
1397 <p class="whs7">import SMESH</p>
\r
1399 <p class="whs7">import SMESH_mechanic</p>
\r
1401 <p class="whs7">import math</p>
\r
1403 <p class="whs7"> </p>
\r
1405 <p class="whs7">smesh =
\r
1406 SMESH_mechanic.smesh</p>
\r
1408 <p class="whs7">mesh =
\r
1409 SMESH_mechanic.mesh</p>
\r
1411 <p class="whs7">salome = SMESH_mechanic.salome</p>
\r
1413 <p class="whs8"> </p>
\r
1415 <p class="whs8"># rotate a sweep object</p>
\r
1417 <p class="whs7">FacesRotate = [492,
\r
1418 493, 502, 503]</p>
\r
1420 <p class="whs7">GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group
\r
1421 of faces (rotate)")</p>
\r
1423 <p class="whs7">GroupRotate.Add(FacesRotate)</p>
\r
1425 <p class="whs7">angle45 = 45*math.pi/180</p>
\r
1427 <p class="whs7">axisXYZ = SMESH.AxisStruct(-38.3128,
\r
1428 -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>
\r
1430 <p class="whs7"> </p>
\r
1432 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
\r
1434 <p class="whs7">aMeshEditor.RotationSweepObject(GroupRotate,
\r
1435 axisXYZ, angle45, 4, 1e-5)</p>
\r
1437 <p class="whs7"> </p>
\r
1439 <p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1442 <p class="whs8"> </p>
\r
1444 <h3><a name=bookmark13>Pattern Mapping</a></h3>
\r
1446 <p>Attention! This script was written using old approach, based on direct usage of SMESH idl interface. To be updated for version 3.2.1 to use <b>smesh</b> package.
\r
1449 <p class="whs7">import salome</p>
\r
1451 <p class="whs7">import geompy</p>
\r
1453 <p class="whs7">import SMESH, smesh</p>
\r
1455 <p class="whs7"> </p>
\r
1457 <p class="whs7">geompy.init_geom(salome.myStudy)</p>
\r
1459 <p class="whs7">smesh.smesh.SetCurrentStudy(salome.myStudy)</p>
\r
1461 <p class="whs7"> </p>
\r
1463 <p class="whs8"># define geometry</p>
\r
1465 <p class="whs7">Box_1 = geompy.MakeBoxDXDYDZ(200,
\r
1468 <p class="whs7">geompy.addToStudy(Box_1,
\r
1469 "Box_1")</p>
\r
1471 <p class="whs7"> </p>
\r
1473 <p class="whs7">faces = geompy.SubShapeAll(Box_1,
\r
1474 geompy.ShapeType["FACE"])</p>
\r
1476 <p class="whs7">Face_1 = faces[0]</p>
\r
1478 <p class="whs7">Face_2 = faces[1]</p>
\r
1480 <p class="whs7">geompy.addToStudyInFather(Box_1,
\r
1481 Face_1, "Face_1")</p>
\r
1483 <p class="whs7">geompy.addToStudyInFather(Box_1,
\r
1484 Face_2, "Face_2")</p>
\r
1486 <p class="whs7"> </p>
\r
1488 <p class="whs8"># build quadrangle mesh
\r
1491 <p class="whs7">Mesh_1 = smesh.Mesh(Face_1)</p>
\r
1493 <p class="whs7">Wire_discretisation
\r
1494 = Mesh_1.Segment()</p>
\r
1496 <p class="whs7">Wire_discretisation.NumberOfSegments(3)</p>
\r
1498 <p class="whs7">Mesh_1.Quadrangle()</p>
\r
1500 <p class="whs7"> </p>
\r
1502 <p class="whs7">isDone = Mesh_1.Compute()</p>
\r
1504 <p class="whs7">if not isDone: print
\r
1505 'Mesh Mesh_1 : computation failed'</p>
\r
1507 <p class="whs7"> </p>
\r
1509 <p class="whs8"># pattern the mesh</p>
\r
1511 <p class="whs7">Mesh_2 = smesh.Mesh(Face_2)</p>
\r
1513 <p class="whs7">Nb_Segments_1 = smesh.smesh.CreateHypothesis('NumberOfSegments',
\r
1514 'libStdMeshersEngine.so')</p>
\r
1516 <p class="whs7">Nb_Segments_1.SetNumberOfSegments(1)</p>
\r
1518 <p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2,
\r
1519 Nb_Segments_1)</p>
\r
1521 <p class="whs7">status = Mesh_2.GetMesh().AddHypothesis(Face_2,
\r
1522 Wire_discretisation.GetAlgorithm())</p>
\r
1524 <p class="whs7">Triangle_Mefisto =
\r
1525 Mesh_2.Triangle()</p>
\r
1527 <p class="whs7">Max_Element_Area =
\r
1528 Triangle_Mefisto.MaxElementArea(240)</p>
\r
1530 <p class="whs7"> </p>
\r
1532 <p class="whs7">isDone = Mesh_2.Compute()</p>
\r
1534 <p class="whs7">if not isDone: print
\r
1535 'Mesh Mesh_2 : computation failed'</p>
\r
1537 <p class="whs7"> </p>
\r
1539 <p class="whs8"># create a pattern</p>
\r
1541 <p class="whs7">pattern = smesh.smesh.GetPattern()</p>
\r
1543 <p class="whs7">isDone = pattern.LoadFromFace(Mesh_2.GetMesh(),
\r
1546 <p class="whs7">if (isDone != 1):</p>
\r
1548 <p class="whs9">print
\r
1549 'LoadFromFace :', pattern.GetErrorCode()</p>
\r
1551 <p class="whs7"> </p>
\r
1553 <p class="whs8"># apply the pattern to
\r
1554 a face of the first mesh</p>
\r
1556 <p class="whs7">pattern.ApplyToMeshFaces(Mesh_1.GetMesh(),
\r
1559 <p class="whs7">isDone = pattern.MakeMesh(Mesh_1.GetMesh(),
\r
1562 <p class="whs7">if (isDone != 1):</p>
\r
1564 <p class="whs9">print
\r
1565 'MakeMesh :', pattern.GetErrorCode()</p>
\r
1567 <p class="whs7"> </p>
\r
1569 <p class="whs8"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1572 <script type="text/javascript" language="javascript1.2">
\r
1574 if (window.writeIntopicBar)
\r
1575 writeIntopicBar(0);
\r