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 h4.whs3 { margin-top:0pt; margin-bottom:0pt; }
\r
18 p.whs4 { margin-top:0.5pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }
\r
19 p.whs5 { margin-top:0.5pt; margin-bottom:0pt; }
\r
20 p.whs6 { font-family:'Lucida Console' , monospace; }
\r
21 p.whs7 { font-family:'Times New Roman' , serif; }
\r
23 </style><script type="text/javascript" language="JavaScript">
\r
25 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
\r
27 var strNSS = "<style type='text/css'>";
\r
28 strNSS += "p.whs1 {margin-top:1pt;margin-bottom:1pt; }";
\r
29 strNSS += "p.whs2 {margin-top:1pt;margin-bottom:1pt; }";
\r
30 strNSS += "h4.whs3 {margin-top:1pt;margin-bottom:1pt; }";
\r
31 strNSS += "p.whs4 {margin-top:1pt;margin-bottom:1pt; }";
\r
32 strNSS += "p.whs5 {margin-top:1pt;margin-bottom:1pt; }";
\r
33 strNSS +="</style>";
\r
34 document.write(strNSS);
\r
38 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
\r
41 if (innerWidth != origWidth || innerHeight != origHeight)
\r
44 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
\r
45 origWidth = innerWidth;
\r
46 origHeight = innerHeight;
\r
52 <style type="text/css">
\r
54 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
\r
56 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
\r
57 <script type="text/javascript" language="javascript" src="whver.js"></script>
\r
58 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
\r
59 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
\r
60 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
\r
62 <body><script type="text/javascript" language="javascript1.2">
\r
64 if (window.gbWhTopic)
\r
66 if (window.addTocInfo)
\r
68 addTocInfo("MESH module\nTUI Scripts\nModifying Meshes");
\r
69 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");
\r
72 if (window.writeBtnStyle)
\r
75 if (window.writeIntopicBar)
\r
78 if (window.setRelStartPage)
\r
80 setRelStartPage("smesh.htm");
\r
89 document.location.reload();
\r
92 <h1>Modifying Meshes</h1>
\r
94 <h3><a name=bookmark>Adding Nodes and Elements</a></h3>
\r
98 <p class="whs1">import SMESH</p>
\r
100 <p class="whs1">import SMESH_mechanic</p>
\r
102 <p class="whs1"> </p>
\r
104 <p class="whs1">smesh =
\r
105 SMESH_mechanic.smesh</p>
\r
107 <p class="whs1">mesh =
\r
108 SMESH_mechanic.mesh</p>
\r
110 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
112 <p class="whs2"> </p>
\r
114 <p class="whs2"># add node</p>
\r
116 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
118 <p class="whs1">if aMeshEditor.AddNode(50,
\r
121 <p class="whs1"> print
\r
122 "Node addition is OK!"</p>
\r
124 <p class="whs1">else:</p>
\r
126 <p class="whs1"> print
\r
127 "KO node addition."</p>
\r
129 <p class="whs1"> </p>
\r
131 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
134 <p class="whs1"> </p>
\r
138 <p class="whs1">import SMESH</p>
\r
140 <p class="whs1">import SMESH_mechanic</p>
\r
142 <p class="whs1"> </p>
\r
144 <p class="whs1">smesh =
\r
145 SMESH_mechanic.smesh</p>
\r
147 <p class="whs1">mesh =
\r
148 SMESH_mechanic.mesh</p>
\r
150 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
152 <p class="whs2"> </p>
\r
154 <p class="whs2"># add node</p>
\r
156 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
158 <p class="whs1">if aMeshEditor.AddNode(50,
\r
161 <p class="whs1"> print
\r
162 "Node addition is OK!"</p>
\r
164 <p class="whs1">else:</p>
\r
166 <p class="whs1"> print
\r
167 "KO node addition."</p>
\r
169 <p class="whs1"> </p>
\r
171 <p class="whs2"># add edge</p>
\r
173 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
\r
175 <p class="whs1">if aMeshEditor.AddEdge([LastNodeId,
\r
178 <p class="whs1"> print
\r
179 "Edge addition is OK!"</p>
\r
181 <p class="whs1">else:</p>
\r
183 <p class="whs1"> print
\r
184 "KO edge addition."</p>
\r
186 <p class="whs1"> </p>
\r
188 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
191 <p class="whs1"> </p>
\r
193 <h4>Add Triangle</h4>
\r
195 <p class="whs1">import SMESH</p>
\r
197 <p class="whs1">import SMESH_mechanic</p>
\r
199 <p class="whs1"> </p>
\r
201 <p class="whs1">smesh =
\r
202 SMESH_mechanic.smesh</p>
\r
204 <p class="whs1">mesh =
\r
205 SMESH_mechanic.mesh</p>
\r
207 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
209 <p class="whs1"> </p>
\r
211 <p class="whs2"># add node</p>
\r
213 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
215 <p class="whs1">if aMeshEditor.AddNode(50,
\r
218 <p class="whs1"> print
\r
219 "Node addition is OK!"</p>
\r
221 <p class="whs1">else:</p>
\r
223 <p class="whs1"> print
\r
224 "KO node addition."</p>
\r
226 <p class="whs1"> </p>
\r
228 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
\r
230 <p class="whs2"> </p>
\r
232 <p class="whs2"># add triangle</p>
\r
234 <p class="whs1">if aMeshEditor.AddFace([LastNodeId,
\r
237 <p class="whs1"> print
\r
238 "Triangle addition is OK!"</p>
\r
240 <p class="whs1">else:</p>
\r
242 <p class="whs1"> print
\r
243 "KO triangle addition."</p>
\r
245 <p class="whs1"> </p>
\r
247 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
250 <p class="whs1"> </p>
\r
252 <h4>Add Quadrangle</h4>
\r
254 <p class="whs1">import SMESH</p>
\r
256 <p class="whs1">import SMESH_mechanic</p>
\r
258 <p class="whs1"> </p>
\r
260 <p class="whs1">smesh =
\r
261 SMESH_mechanic.smesh</p>
\r
263 <p class="whs1">mesh =
\r
264 SMESH_mechanic.mesh</p>
\r
266 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
268 <p class="whs1"> </p>
\r
270 <p class="whs2"># add node</p>
\r
272 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
274 <p class="whs1">if aMeshEditor.AddNode(50,
\r
277 <p class="whs1"> print
\r
278 "Node addition is OK!"</p>
\r
280 <p class="whs1">else:</p>
\r
282 <p class="whs1"> print
\r
283 "KO node addition."</p>
\r
285 <p class="whs1"> </p>
\r
287 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
\r
289 <p class="whs2"> </p>
\r
291 <p class="whs2"># add quadrangle</p>
\r
293 <p class="whs1">if aMeshEditor.AddNode(40,
\r
296 <p class="whs1"> print
\r
297 "Node addition is OK!"</p>
\r
299 <p class="whs1">else:</p>
\r
301 <p class="whs1"> print
\r
302 "KO node addition."</p>
\r
304 <p class="whs1">if aMeshEditor.AddFace([mesh.NbNodes(),
\r
305 LastNodeId, 38, 39]) == 1:</p>
\r
307 <p class="whs1"> print
\r
308 "Quadrangle addition is OK!"</p>
\r
310 <p class="whs1">else:</p>
\r
312 <p class="whs1"> print
\r
313 "KO quadrangle addition."</p>
\r
315 <p class="whs1"> </p>
\r
317 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
320 <p class="whs2"> </p>
\r
322 <h4>Add Tetrahedron</h4>
\r
324 <p class="whs1">import SMESH</p>
\r
326 <p class="whs1">import SMESH_mechanic</p>
\r
328 <p class="whs1"> </p>
\r
330 <p class="whs1">smesh =
\r
331 SMESH_mechanic.smesh</p>
\r
333 <p class="whs1">mesh =
\r
334 SMESH_mechanic.mesh</p>
\r
336 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
338 <p class="whs1"> </p>
\r
340 <p class="whs2"># add node</p>
\r
342 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
344 <p class="whs1">if aMeshEditor.AddNode(50,
\r
347 <p class="whs1"> print
\r
348 "Node addition is OK!"</p>
\r
350 <p class="whs1">else:</p>
\r
352 <p class="whs1"> print
\r
353 "KO node addition."</p>
\r
355 <p class="whs1"> </p>
\r
357 <p class="whs1">LastNodeId = mesh.NbNodes()</p>
\r
359 <p class="whs2"> </p>
\r
361 <p class="whs2"># add tetrahedron</p>
\r
363 <p class="whs1">if aMeshEditor.AddVolume([LastNodeId,
\r
364 38, 39, 246]) == 1:</p>
\r
366 <p class="whs1"> print
\r
367 "Tetrahedron addition is OK!"</p>
\r
369 <p class="whs1">else:</p>
\r
371 <p class="whs1"> print
\r
372 "KO tetrahedron addition."</p>
\r
374 <p class="whs1"> </p>
\r
376 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
379 <p class="whs2"> </p>
\r
381 <h4>Add Hexahedron</h4>
\r
383 <p class="whs1">import SMESH</p>
\r
385 <p class="whs1">import SMESH_mechanic</p>
\r
387 <p class="whs1"> </p>
\r
389 <p class="whs1">smesh =
\r
390 SMESH_mechanic.smesh</p>
\r
392 <p class="whs1">mesh =
\r
393 SMESH_mechanic.mesh</p>
\r
395 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
397 <p class="whs1"> </p>
\r
399 <p class="whs2"># add nodes</p>
\r
401 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
403 <p class="whs1">if aMeshEditor.AddNode(50,
\r
406 <p class="whs1"> print
\r
407 "Node addition is OK!"</p>
\r
409 <p class="whs1">else:</p>
\r
411 <p class="whs1"> print
\r
412 "KO node addition."</p>
\r
414 <p class="whs1">aNodeId1 = mesh.NbNodes()</p>
\r
416 <p class="whs1"> </p>
\r
418 <p class="whs1">if aMeshEditor.AddNode(47,
\r
421 <p class="whs1"> print
\r
422 "Node addition is OK!"</p>
\r
424 <p class="whs1">else:</p>
\r
426 <p class="whs1"> print
\r
427 "KO node addition."</p>
\r
429 <p class="whs1">aNodeId2 = mesh.NbNodes()</p>
\r
431 <p class="whs1"> </p>
\r
433 <p class="whs1">if aMeshEditor.AddNode(50,
\r
436 <p class="whs1"> print
\r
437 "Node addition is OK!"</p>
\r
439 <p class="whs1">else:</p>
\r
441 <p class="whs1"> print
\r
442 "KO node addition."</p>
\r
444 <p class="whs1">aNodeId3 = mesh.NbNodes()</p>
\r
446 <p class="whs1"> </p>
\r
448 <p class="whs1">if aMeshEditor.AddNode(47,
\r
451 <p class="whs1"> print
\r
452 "Node addition is OK!"</p>
\r
454 <p class="whs1">else:</p>
\r
456 <p class="whs1"> print
\r
457 "KO node addition."</p>
\r
459 <p class="whs1">aNodeId4 = mesh.NbNodes()</p>
\r
461 <p class="whs1"> </p>
\r
463 <p class="whs2"># add hexahedron</p>
\r
465 <p class="whs1">if aMeshEditor.AddVolume([aNodeId2,
\r
466 aNodeId1, 38, 39, aNodeId4, aNodeId3, 245, 246]) == 1:</p>
\r
468 <p class="whs1"> print
\r
469 "Hexahedron addition is OK!"</p>
\r
471 <p class="whs1">else:</p>
\r
473 <p class="whs1"> print
\r
474 "KO Hexahedron addition."</p>
\r
476 <p class="whs1"> </p>
\r
478 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
481 <p class="whs2"> </p>
\r
483 <h3><a name=bookmark1>Removing Nodes and Elements</a></h3>
\r
485 <h4 class="whs3">Removing Nodes</h4>
\r
487 <p class="whs2"> </p>
\r
489 <p class="whs1">import SMESH</p>
\r
491 <p class="whs1">import SMESH_mechanic</p>
\r
493 <p class="whs1"> </p>
\r
495 <p class="whs1">smesh =
\r
496 SMESH_mechanic.smesh</p>
\r
498 <p class="whs1">mesh =
\r
499 SMESH_mechanic.mesh</p>
\r
501 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
503 <p class="whs2"> </p>
\r
505 <p class="whs2"># add node</p>
\r
507 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
509 <p class="whs1">if aMeshEditor.RemoveNodes([246,
\r
512 <p class="whs1"> print
\r
513 "Node removing is OK!"</p>
\r
515 <p class="whs1">else:</p>
\r
517 <p class="whs1"> print
\r
518 "KO node removing."</p>
\r
520 <p class="whs1"> </p>
\r
522 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
525 <p class="whs2"> </p>
\r
527 <h4>Removing Elements</h4>
\r
529 <p class="whs1">import SMESH</p>
\r
531 <p class="whs1">import SMESH_mechanic</p>
\r
533 <p class="whs1"> </p>
\r
535 <p class="whs1">smesh =
\r
536 SMESH_mechanic.smesh</p>
\r
538 <p class="whs1">mesh =
\r
539 SMESH_mechanic.mesh</p>
\r
541 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
543 <p class="whs1"> </p>
\r
545 <p class="whs1">anEditor = mesh.GetMeshEditor()</p>
\r
547 <p class="whs1">anEditor.RemoveElements([850,
\r
550 <p class="whs1"> </p>
\r
552 <p class="whs1">salome.sg.updateObjBrowser(1)
\r
555 <p class="whs1"> </p>
\r
557 <h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>
\r
559 <p class="whs4">import SMESH</p>
\r
561 <p class="whs4">import SMESH_mechanic</p>
\r
563 <p class="whs4"> </p>
\r
565 <p class="whs4">mesh =
\r
566 SMESH_mechanic.mesh</p>
\r
568 <p class="whs4">salome = SMESH_mechanic.salome</p>
\r
570 <p class="whs4"> </p>
\r
572 <p class="whs4">anEditor = mesh.GetMeshEditor()</p>
\r
574 <p class="whs4">anEditor.RenumberNodes()</p>
\r
576 <p class="whs4"> </p>
\r
578 <p class="whs5"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
581 <p class="whs5"> </p>
\r
585 <h3><a name=bookmark3>Moving Nodes</a></h3>
\r
587 <p class="whs1">import SMESH</p>
\r
589 <p class="whs1">import SMESH_mechanic</p>
\r
591 <p class="whs1"> </p>
\r
593 <p class="whs1">smesh =
\r
594 SMESH_mechanic.smesh</p>
\r
596 <p class="whs1">mesh =
\r
597 SMESH_mechanic.mesh</p>
\r
599 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
601 <p class="whs1"> </p>
\r
603 <p class="whs2"># move node</p>
\r
605 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
607 <p class="whs1">aMeshEditor.MoveNode(38,
\r
610 <p class="whs1"> </p>
\r
612 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
615 <p class="whs2"> </p>
\r
617 <h3><a name=bookmark4>Diagonal Inversion</a></h3>
\r
619 <p class="whs1">import SMESH</p>
\r
621 <p class="whs1">import SMESH_mechanic</p>
\r
623 <p class="whs1"> </p>
\r
625 <p class="whs1">smesh =
\r
626 SMESH_mechanic.smesh</p>
\r
628 <p class="whs1">mesh =
\r
629 SMESH_mechanic.mesh</p>
\r
631 <p class="whs1">salome = SMESH_mechanic.salome</p>
\r
633 <p class="whs1"> </p>
\r
635 <p class="whs2"># inverse diagonal</p>
\r
637 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>
\r
639 <p class="whs1">aMeshEditor.InverseDiag(700,
\r
642 <p class="whs1"> </p>
\r
644 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
647 <p class="whs2"> </p>
\r
649 <h3><a name=bookmark5>Uniting two Triangles</a></h3>
\r
651 <p class="whs6">import SMESH</p>
\r
653 <p class="whs6">import SMESH_mechanic</p>
\r
655 <p class="whs6"> </p>
\r
657 <p class="whs6">smesh =
\r
658 SMESH_mechanic.smesh</p>
\r
660 <p class="whs6">mesh =
\r
661 SMESH_mechanic.mesh</p>
\r
663 <p class="whs6">salome = SMESH_mechanic.salome</p>
\r
665 <p class="whs6"> </p>
\r
667 <p># delete diagonal</p>
\r
669 <p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>
\r
671 <p class="whs6">aMeshEditor.DeleteDiag(700,
\r
674 <p class="whs6"> </p>
\r
676 <p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
681 <h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>
\r
683 <p class="whs6">import SMESH</p>
\r
685 <p class="whs6">import SMESH_mechanic</p>
\r
687 <p class="whs6"> </p>
\r
689 <p class="whs6">smesh =
\r
690 SMESH_mechanic.smesh</p>
\r
692 <p class="whs6">mesh =
\r
693 SMESH_mechanic.mesh</p>
\r
695 <p class="whs6">salome = SMESH_mechanic.salome</p>
\r
697 <p class="whs6"> </p>
\r
699 <p># unite a set of triangles</p>
\r
701 <p class="whs6">aFilterMgr = smesh.CreateFilterManager()</p>
\r
703 <p class="whs6">aFunctor = aFilterMgr.CreateMinimumAngle()</p>
\r
705 <p class="whs6"> </p>
\r
707 <p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>
\r
709 <p class="whs6">aMeshEditor.TriToQuad([1145,
\r
710 1147, 1159, 1135], aFunctor, 60)</p>
\r
712 <p class="whs6"> </p>
\r
714 <p class="whs6">salome.sg.updateObjBrowser(1)
\r
717 <p class="whs6"> </p>
\r
719 <h3><a name=bookmark7>Cutting Quadrangles</a></h3>
\r
721 <p class="whs6">import SMESH</p>
\r
723 <p class="whs6">import SMESH_mechanic</p>
\r
725 <p class="whs6"> </p>
\r
727 <p class="whs6">smesh =
\r
728 SMESH_mechanic.smesh</p>
\r
730 <p class="whs6">mesh =
\r
731 SMESH_mechanic.mesh</p>
\r
733 <p class="whs6">salome = SMESH_mechanic.salome</p>
\r
735 <p class="whs6"> </p>
\r
737 <p class="whs7"># unite a set of triangles</p>
\r
739 <p class="whs6">aFilterMgr = smesh.CreateFilterManager()</p>
\r
741 <p class="whs6">aFunctor = aFilterMgr.CreateMinimumAngle()</p>
\r
743 <p class="whs6"> </p>
\r
745 <p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>
\r
747 <p class="whs6">aMeshEditor.QuadToTri([405,
\r
748 406], aFunctor)</p>
\r
750 <p class="whs6"> </p>
\r
752 <p class="whs6">salome.sg.updateObjBrowser(1)
\r
755 <p class="whs7"> </p>
\r
757 <h3><a name=bookmark8>Smoothing</a></h3>
\r
759 <p class="whs6">import SMESH</p>
\r
761 <p class="whs6">import SMESH_mechanic</p>
\r
763 <p class="whs6"> </p>
\r
765 <p class="whs6">smesh =
\r
766 SMESH_mechanic.smesh</p>
\r
768 <p class="whs6">mesh =
\r
769 SMESH_mechanic.mesh</p>
\r
771 <p class="whs6">salome = SMESH_mechanic.salome</p>
\r
773 <p class="whs6"> </p>
\r
775 <p class="whs7"># smooth</p>
\r
777 <p class="whs6">FacesSmooth = [911,
\r
778 931, 950, 864, 932]</p>
\r
780 <p class="whs6">GroupSmooth = mesh.CreateGroup(SMESH.FACE,"Group
\r
781 of faces (smooth)")</p>
\r
783 <p class="whs6">GroupSmooth.Add(FacesSmooth)</p>
\r
785 <p class="whs6"> </p>
\r
787 <p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>
\r
789 <p class="whs6">aMeshEditor.SmoothObject(GroupSmooth,
\r
790 [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)</p>
\r
792 <p class="whs6"> </p>
\r
794 <p class="whs6">salome.sg.updateObjBrowser(1)
\r
797 <p class="whs6"> </p>
\r
799 <p class="whs6"> </p>
\r
801 <h3><a name=bookmark9>Extrusion</a></h3>
\r
803 <p class="whs7">import SMESH</p>
\r
805 <p class="whs7">import SMESH_mechanic</p>
\r
807 <p class="whs7"> </p>
\r
809 <p class="whs7">smesh =
\r
810 SMESH_mechanic.smesh</p>
\r
812 <p class="whs7">mesh =
\r
813 SMESH_mechanic.mesh</p>
\r
815 <p class="whs7">salome = SMESH_mechanic.salome</p>
\r
817 <p class="whs6"> </p>
\r
819 <p class="whs7"># extrusion of the group</p>
\r
821 <p class="whs7">point = SMESH.PointStruct(0,
\r
824 <p class="whs7">vector = SMESH.DirStruct(point)</p>
\r
826 <p class="whs7">FacesTriToQuad = [2381,
\r
827 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393,
\r
828 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405,
\r
829 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417,
\r
830 2418, 2419, 2420, 2421, 2422]</p>
\r
832 <p class="whs7"> </p>
\r
834 <p class="whs7">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,"Group
\r
835 of faces (quad)")</p>
\r
837 <p class="whs7">GroupTriToQuad.Add(FacesTriToQuad)</p>
\r
839 <p class="whs7"> </p>
\r
841 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>
\r
843 <p class="whs7">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad,
\r
846 <p class="whs7"> </p>
\r
848 <p class="whs7">salome.sg.updateObjBrowser(1)
\r
851 <p class="whs7"> </p>
\r
853 <h3><a name=bookmark10>Extrusion along a Path</a></h3>
\r
855 <p class="whs6">import geompy</p>
\r
857 <p class="whs6">import smesh</p>
\r
859 <p class="whs6">import salome</p>
\r
861 <p class="whs6">import SMESH</p>
\r
863 <p class="whs7"> </p>
\r
865 <p class="whs7"># create a 2D mesh on
\r
868 <p class="whs7"># create vertices</p>
\r
870 <p class="whs6">px =
\r
871 geompy.MakeVertex(100., 0. ,
\r
874 <p class="whs6">py =
\r
875 geompy.MakeVertex(0. ,
\r
876 100., 0. )</p>
\r
878 <p class="whs6">pz =
\r
879 geompy.MakeVertex(0. ,
\r
880 0. , 100.)</p>
\r
882 <p class="whs6"> </p>
\r
884 <p class="whs7"># create a vector from
\r
887 <p class="whs6">vxy = geompy.MakeVector(px,
\r
890 <p class="whs7"> </p>
\r
892 <p class="whs7"># create an arc from
\r
895 <p class="whs6">arc = geompy.MakeArc(py,
\r
898 <p class="whs7"> </p>
\r
900 <p class="whs7"># create a wire</p>
\r
902 <p class="whs6">wire = geompy.MakeWire([vxy,
\r
905 <p class="whs6">isPlanarFace = 1</p>
\r
907 <p class="whs7"> </p>
\r
909 <p class="whs7"># create a face from
\r
912 <p class="whs6">face1 = geompy.MakeFace(wire,
\r
915 <p class="whs7"> </p>
\r
917 <p class="whs7"># add objects in the
\r
920 <p class="whs6">id_face1 = geompy.addToStudy(face1,"Face1")</p>
\r
922 <p class="whs7"> </p>
\r
924 <p class="whs7"># create hexahedrical
\r
927 <p class="whs6">hexa = smesh.Mesh(face1,
\r
928 "Face compound : hexahedrical mesh")</p>
\r
930 <p class="whs6">algo = hexa.Triangle()</p>
\r
932 <p class="whs7"> </p>
\r
934 <p class="whs7"># define "MaxElementArea"
\r
935 hypothesis to be applied to each triangle</p>
\r
937 <p class="whs6">algo.MaxElementArea(30)</p>
\r
939 <p class="whs7"> </p>
\r
941 <p class="whs7"># create a quadrangle
\r
942 2D algorithm for faces</p>
\r
944 <p class="whs6">hexa.Quadrangle()</p>
\r
946 <p class="whs7"> </p>
\r
948 <p class="whs7"># create a local hypothesis</p>
\r
950 <p class="whs6">algo = hexa.Segment(wire)</p>
\r
952 <p class="whs7"> </p>
\r
954 <p class="whs7"># define "NumberOfSegments"
\r
955 hypothesis to cut an edge in a fixed number of segments</p>
\r
957 <p class="whs6">algo.NumberOfSegments(6)</p>
\r
959 <p class="whs7"> </p>
\r
961 <p class="whs7"># compute the mesh</p>
\r
963 <p class="whs6">hexa.Compute()</p>
\r
965 <p class="whs7"> </p>
\r
967 <p class="whs7"># create path mesh and
\r
970 <p class="whs7"># create a circle from
\r
973 <p class="whs6">px1 =
\r
974 geompy.MakeVertex(100., 100. ,
\r
977 <p class="whs6">py1 =
\r
978 geompy.MakeVertex(-100. ,
\r
979 -100., 0. )</p>
\r
981 <p class="whs6">pz1 =
\r
982 geompy.MakeVertex(0. ,
\r
983 0. , 50.)</p>
\r
985 <p class="whs6">circle = geompy.MakeCircleThreePnt(py1,
\r
988 <p class="whs7"> </p>
\r
990 <p class="whs7"># add objects in the
\r
993 <p class="whs6">id_circle = geompy.addToStudy(circle,"Path")</p>
\r
995 <p class="whs6">circlemesh = smesh.Mesh(circle,
\r
996 "Path mesh")</p>
\r
998 <p class="whs7"> </p>
\r
1000 <p class="whs7"># create a local hypothesis</p>
\r
1002 <p class="whs6">algo = circlemesh.Segment()</p>
\r
1004 <p class="whs7"># define "NumberOfSegments"
\r
1005 hypothesis to cut an edge in a fixed number of segments</p>
\r
1007 <p class="whs6">algo.NumberOfSegments(10)</p>
\r
1009 <p class="whs7"> </p>
\r
1011 <p class="whs7"># compute the mesh</p>
\r
1013 <p class="whs6">circlemesh.Compute()</p>
\r
1015 <p class="whs7"> </p>
\r
1017 <p class="whs7"># extrusion of the mesh</p>
\r
1019 <p class="whs6">aMeshEditor = hexa.GetMesh().GetMeshEditor()</p>
\r
1021 <p class="whs6">aMeshEditor.ExtrusionAlongPathObject(hexa.GetMesh(),
\r
1022 circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>
\r
1024 <p class="whs6"> </p>
\r
1026 <p class="whs7"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1029 <p class="whs7"> </p>
\r
1031 <h3><a name=bookmark11>Revolution</a></h3>
\r
1033 <p class="whs6">import SMESH</p>
\r
1035 <p class="whs6">import SMESH_mechanic</p>
\r
1037 <p class="whs6">import math</p>
\r
1039 <p class="whs6"> </p>
\r
1041 <p class="whs6">smesh =
\r
1042 SMESH_mechanic.smesh</p>
\r
1044 <p class="whs6">mesh =
\r
1045 SMESH_mechanic.mesh</p>
\r
1047 <p class="whs6">salome = SMESH_mechanic.salome</p>
\r
1049 <p class="whs7"> </p>
\r
1051 <p class="whs7"># rotate a sweep object</p>
\r
1053 <p class="whs6">FacesRotate = [492,
\r
1054 493, 502, 503]</p>
\r
1056 <p class="whs6">GroupRotate = mesh.CreateGroup(SMESH.FACE,"Group
\r
1057 of faces (rotate)")</p>
\r
1059 <p class="whs6">GroupRotate.Add(FacesRotate)</p>
\r
1061 <p class="whs6">angle45 = 45*math.pi/180</p>
\r
1063 <p class="whs6">axisXYZ = SMESH.AxisStruct(-38.3128,
\r
1064 -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>
\r
1066 <p class="whs6"> </p>
\r
1068 <p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>
\r
1070 <p class="whs6">aMeshEditor.RotationSweepObject(GroupRotate,
\r
1071 axisXYZ, angle45, 4, 1e-5)</p>
\r
1073 <p class="whs6"> </p>
\r
1075 <p class="whs7"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span>
\r
1078 <script type="text/javascript" language="javascript1.2">
\r
1080 if (window.writeIntopicBar)
\r
1081 writeIntopicBar(0);
\r