Salome HOME
PAL10872 (aspect retio not conform with specifications). Add picture for aspect ratio...
[modules/smesh.git] / doc / salome / gui / SMESH / modifying_meshes.htm
1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
2 \r
3 <html>\r
4 \r
5 <head>\r
6 <title>Modifying Meshes</title>\r
7 <meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
8 <meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com"><style>\r
9 <!--\r
10 P { margin-top:0pt; margin-bottom:0pt; }\r
11 LI.kadov-P {  }\r
12 -->\r
13 </style><style type="text/css">\r
14 <!--\r
15 p.whs1 { margin-top:0pt; margin-bottom:0pt; font-family:'Lucida Console' , monospace; }\r
16 p.whs2 { margin-top:0pt; margin-bottom:0pt; }\r
17 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
22 -->\r
23 </style><script type="text/javascript" language="JavaScript">\r
24 <!--\r
25 if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))\r
26 {\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
35 }\r
36 //-->\r
37 </script>\r
38 <script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
39 <!--\r
40 function reDo() {\r
41   if (innerWidth != origWidth || innerHeight != origHeight)\r
42      location.reload();\r
43 }\r
44 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
45         origWidth = innerWidth;\r
46         origHeight = innerHeight;\r
47         onresize = reDo;\r
48 }\r
49 onerror = null; \r
50 //-->\r
51 </script>\r
52 <style type="text/css">\r
53 <!--\r
54 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
55 -->\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
61 </head>\r
62 <body><script type="text/javascript" language="javascript1.2">\r
63 <!--\r
64 if (window.gbWhTopic)\r
65 {\r
66         if (window.addTocInfo)\r
67         {\r
68         addTocInfo("MESH module\nTUI Scripts\nModifying Meshes");\r
69 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
70 \r
71         }\r
72         if (window.writeBtnStyle)\r
73                 writeBtnStyle();\r
74 \r
75         if (window.writeIntopicBar)\r
76                 writeIntopicBar(1);\r
77 \r
78         if (window.setRelStartPage)\r
79         {\r
80         setRelStartPage("smesh.htm");\r
81 \r
82                 autoSync(1);\r
83                 sendSyncInfo();\r
84                 sendAveInfoOut();\r
85         }\r
86 }\r
87 else\r
88         if (window.gbIE4)\r
89                 document.location.reload();\r
90 //-->\r
91 </script>\r
92 <h1>Modifying Meshes</h1>\r
93 \r
94 <h3><a name=bookmark>Adding Nodes and Elements</a></h3>\r
95 \r
96 <h4>Add Node</h4>\r
97 \r
98 <p class="whs1">import SMESH</p>\r
99 \r
100 <p class="whs1">import SMESH_mechanic</p>\r
101 \r
102 <p class="whs1">&nbsp;</p>\r
103 \r
104 <p class="whs1">smesh &nbsp;= \r
105  SMESH_mechanic.smesh</p>\r
106 \r
107 <p class="whs1">mesh &nbsp;&nbsp;= \r
108  SMESH_mechanic.mesh</p>\r
109 \r
110 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
111 \r
112 <p class="whs2">&nbsp;</p>\r
113 \r
114 <p class="whs2"># add node</p>\r
115 \r
116 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
117 \r
118 <p class="whs1">if aMeshEditor.AddNode(50, \r
119  10, 0) == 1:</p>\r
120 \r
121 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
122  &quot;Node addition is OK!&quot;</p>\r
123 \r
124 <p class="whs1">else:</p>\r
125 \r
126 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
127  &quot;KO node addition.&quot;</p>\r
128 \r
129 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
130 \r
131 <p class="whs1">salome.sg.updateObjBrowser(1) \r
132  </p>\r
133 \r
134 <p class="whs1">&nbsp;</p>\r
135 \r
136 <h4>Add Edge</h4>\r
137 \r
138 <p class="whs1">import SMESH</p>\r
139 \r
140 <p class="whs1">import SMESH_mechanic</p>\r
141 \r
142 <p class="whs1">&nbsp;</p>\r
143 \r
144 <p class="whs1">smesh &nbsp;= \r
145  SMESH_mechanic.smesh</p>\r
146 \r
147 <p class="whs1">mesh &nbsp;&nbsp;= \r
148  SMESH_mechanic.mesh</p>\r
149 \r
150 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
151 \r
152 <p class="whs2">&nbsp;</p>\r
153 \r
154 <p class="whs2"># add node</p>\r
155 \r
156 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
157 \r
158 <p class="whs1">if aMeshEditor.AddNode(50, \r
159  10, 0) == 1:</p>\r
160 \r
161 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
162  &quot;Node addition is OK!&quot;</p>\r
163 \r
164 <p class="whs1">else:</p>\r
165 \r
166 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
167  &quot;KO node addition.&quot;</p>\r
168 \r
169 <p class="whs1">&nbsp;</p>\r
170 \r
171 <p class="whs2"># add edge</p>\r
172 \r
173 <p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
174 \r
175 <p class="whs1">if aMeshEditor.AddEdge([LastNodeId, \r
176  38]) == 1:</p>\r
177 \r
178 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
179  &quot;Edge addition is OK!&quot;</p>\r
180 \r
181 <p class="whs1">else:</p>\r
182 \r
183 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
184  &quot;KO edge addition.&quot;</p>\r
185 \r
186 <p class="whs1">&nbsp;</p>\r
187 \r
188 <p class="whs1">salome.sg.updateObjBrowser(1) \r
189  </p>\r
190 \r
191 <p class="whs1">&nbsp;</p>\r
192 \r
193 <h4>Add Triangle</h4>\r
194 \r
195 <p class="whs1">import SMESH</p>\r
196 \r
197 <p class="whs1">import SMESH_mechanic</p>\r
198 \r
199 <p class="whs1">&nbsp;</p>\r
200 \r
201 <p class="whs1">smesh &nbsp;= \r
202  SMESH_mechanic.smesh</p>\r
203 \r
204 <p class="whs1">mesh &nbsp;&nbsp;= \r
205  SMESH_mechanic.mesh</p>\r
206 \r
207 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
208 \r
209 <p class="whs1">&nbsp;</p>\r
210 \r
211 <p class="whs2"># add node</p>\r
212 \r
213 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
214 \r
215 <p class="whs1">if aMeshEditor.AddNode(50, \r
216  10, 0) == 1:</p>\r
217 \r
218 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
219  &quot;Node addition is OK!&quot;</p>\r
220 \r
221 <p class="whs1">else:</p>\r
222 \r
223 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
224  &quot;KO node addition.&quot;</p>\r
225 \r
226 <p class="whs1">&nbsp;</p>\r
227 \r
228 <p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
229 \r
230 <p class="whs2">&nbsp;</p>\r
231 \r
232 <p class="whs2"># add triangle</p>\r
233 \r
234 <p class="whs1">if aMeshEditor.AddFace([LastNodeId, \r
235  38, 39]) == 1:</p>\r
236 \r
237 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
238  &quot;Triangle addition is OK!&quot;</p>\r
239 \r
240 <p class="whs1">else:</p>\r
241 \r
242 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
243  &quot;KO triangle addition.&quot;</p>\r
244 \r
245 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
246 \r
247 <p class="whs1">salome.sg.updateObjBrowser(1) \r
248  </p>\r
249 \r
250 <p class="whs1">&nbsp;</p>\r
251 \r
252 <h4>Add Quadrangle</h4>\r
253 \r
254 <p class="whs1">import SMESH</p>\r
255 \r
256 <p class="whs1">import SMESH_mechanic</p>\r
257 \r
258 <p class="whs1">&nbsp;</p>\r
259 \r
260 <p class="whs1">smesh &nbsp;= \r
261  SMESH_mechanic.smesh</p>\r
262 \r
263 <p class="whs1">mesh &nbsp;&nbsp;= \r
264  SMESH_mechanic.mesh</p>\r
265 \r
266 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
267 \r
268 <p class="whs1">&nbsp;</p>\r
269 \r
270 <p class="whs2"># add node</p>\r
271 \r
272 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
273 \r
274 <p class="whs1">if aMeshEditor.AddNode(50, \r
275  10, 0) == 1:</p>\r
276 \r
277 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
278  &quot;Node addition is OK!&quot;</p>\r
279 \r
280 <p class="whs1">else:</p>\r
281 \r
282 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
283  &quot;KO node addition.&quot;</p>\r
284 \r
285 <p class="whs1">&nbsp;</p>\r
286 \r
287 <p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
288 \r
289 <p class="whs2">&nbsp;</p>\r
290 \r
291 <p class="whs2"># add quadrangle</p>\r
292 \r
293 <p class="whs1">if aMeshEditor.AddNode(40, \r
294  20, 0) == 1:</p>\r
295 \r
296 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
297  &quot;Node addition is OK!&quot;</p>\r
298 \r
299 <p class="whs1">else:</p>\r
300 \r
301 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
302  &quot;KO node addition.&quot;</p>\r
303 \r
304 <p class="whs1">if aMeshEditor.AddFace([mesh.NbNodes(), \r
305  LastNodeId, 38, 39]) == 1:</p>\r
306 \r
307 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
308  &quot;Quadrangle addition is OK!&quot;</p>\r
309 \r
310 <p class="whs1">else:</p>\r
311 \r
312 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
313  &quot;KO quadrangle addition.&quot;</p>\r
314 \r
315 <p class="whs1">&nbsp;</p>\r
316 \r
317 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
318  </p>\r
319 \r
320 <p class="whs2">&nbsp;</p>\r
321 \r
322 <h4>Add Tetrahedron</h4>\r
323 \r
324 <p class="whs1">import SMESH</p>\r
325 \r
326 <p class="whs1">import SMESH_mechanic</p>\r
327 \r
328 <p class="whs1">&nbsp;</p>\r
329 \r
330 <p class="whs1">smesh &nbsp;= \r
331  SMESH_mechanic.smesh</p>\r
332 \r
333 <p class="whs1">mesh &nbsp;&nbsp;= \r
334  SMESH_mechanic.mesh</p>\r
335 \r
336 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
337 \r
338 <p class="whs1">&nbsp;</p>\r
339 \r
340 <p class="whs2"># add node</p>\r
341 \r
342 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
343 \r
344 <p class="whs1">if aMeshEditor.AddNode(50, \r
345  10, 0) == 1:</p>\r
346 \r
347 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
348  &quot;Node addition is OK!&quot;</p>\r
349 \r
350 <p class="whs1">else:</p>\r
351 \r
352 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
353  &quot;KO node addition.&quot;</p>\r
354 \r
355 <p class="whs1">&nbsp;</p>\r
356 \r
357 <p class="whs1">LastNodeId = mesh.NbNodes()</p>\r
358 \r
359 <p class="whs2">&nbsp;</p>\r
360 \r
361 <p class="whs2"># add tetrahedron</p>\r
362 \r
363 <p class="whs1">if aMeshEditor.AddVolume([LastNodeId, \r
364  38, 39, 246]) == 1:</p>\r
365 \r
366 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
367  &quot;Tetrahedron addition is OK!&quot;</p>\r
368 \r
369 <p class="whs1">else:</p>\r
370 \r
371 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
372  &quot;KO tetrahedron addition.&quot;</p>\r
373 \r
374 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
375 \r
376 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
377  </p>\r
378 \r
379 <p class="whs2">&nbsp;</p>\r
380 \r
381 <h4>Add Hexahedron</h4>\r
382 \r
383 <p class="whs1">import SMESH</p>\r
384 \r
385 <p class="whs1">import SMESH_mechanic</p>\r
386 \r
387 <p class="whs1">&nbsp;</p>\r
388 \r
389 <p class="whs1">smesh &nbsp;= \r
390  SMESH_mechanic.smesh</p>\r
391 \r
392 <p class="whs1">mesh &nbsp;&nbsp;= \r
393  SMESH_mechanic.mesh</p>\r
394 \r
395 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
396 \r
397 <p class="whs1">&nbsp;</p>\r
398 \r
399 <p class="whs2"># add nodes</p>\r
400 \r
401 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
402 \r
403 <p class="whs1">if aMeshEditor.AddNode(50, \r
404  10, 0) == 1:</p>\r
405 \r
406 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
407  &quot;Node addition is OK!&quot;</p>\r
408 \r
409 <p class="whs1">else:</p>\r
410 \r
411 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
412  &quot;KO node addition.&quot;</p>\r
413 \r
414 <p class="whs1">aNodeId1 = mesh.NbNodes()</p>\r
415 \r
416 <p class="whs1">&nbsp;</p>\r
417 \r
418 <p class="whs1">if aMeshEditor.AddNode(47, \r
419  12, 0) == 1:</p>\r
420 \r
421 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
422  &quot;Node addition is OK!&quot;</p>\r
423 \r
424 <p class="whs1">else:</p>\r
425 \r
426 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
427  &quot;KO node addition.&quot;</p>\r
428 \r
429 <p class="whs1">aNodeId2 = mesh.NbNodes()</p>\r
430 \r
431 <p class="whs1">&nbsp;</p>\r
432 \r
433 <p class="whs1">if aMeshEditor.AddNode(50, \r
434  10, 10) == 1:</p>\r
435 \r
436 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
437  &quot;Node addition is OK!&quot;</p>\r
438 \r
439 <p class="whs1">else:</p>\r
440 \r
441 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
442  &quot;KO node addition.&quot;</p>\r
443 \r
444 <p class="whs1">aNodeId3 = mesh.NbNodes()</p>\r
445 \r
446 <p class="whs1">&nbsp;</p>\r
447 \r
448 <p class="whs1">if aMeshEditor.AddNode(47, \r
449  12, 10) == 1:</p>\r
450 \r
451 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
452  &quot;Node addition is OK!&quot;</p>\r
453 \r
454 <p class="whs1">else:</p>\r
455 \r
456 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
457  &quot;KO node addition.&quot;</p>\r
458 \r
459 <p class="whs1">aNodeId4 = mesh.NbNodes()</p>\r
460 \r
461 <p class="whs1">&nbsp;</p>\r
462 \r
463 <p class="whs2"># add hexahedron</p>\r
464 \r
465 <p class="whs1">if aMeshEditor.AddVolume([aNodeId2, \r
466  aNodeId1, 38, 39, aNodeId4, aNodeId3, 245, 246]) == 1:</p>\r
467 \r
468 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
469  &quot;Hexahedron addition is OK!&quot;</p>\r
470 \r
471 <p class="whs1">else:</p>\r
472 \r
473 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
474  &quot;KO Hexahedron addition.&quot;</p>\r
475 \r
476 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
477 \r
478 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
479  </p>\r
480 \r
481 <p class="whs2">&nbsp;</p>\r
482 \r
483 <h3><a name=bookmark1>Removing Nodes and Elements</a></h3>\r
484 \r
485 <h4 class="whs3">Removing Nodes</h4>\r
486 \r
487 <p class="whs2">&nbsp;</p>\r
488 \r
489 <p class="whs1">import SMESH</p>\r
490 \r
491 <p class="whs1">import SMESH_mechanic</p>\r
492 \r
493 <p class="whs1">&nbsp;</p>\r
494 \r
495 <p class="whs1">smesh &nbsp;= \r
496  SMESH_mechanic.smesh</p>\r
497 \r
498 <p class="whs1">mesh &nbsp;&nbsp;= \r
499  SMESH_mechanic.mesh</p>\r
500 \r
501 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
502 \r
503 <p class="whs2">&nbsp;</p>\r
504 \r
505 <p class="whs2"># add node</p>\r
506 \r
507 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
508 \r
509 <p class="whs1">if aMeshEditor.RemoveNodes([246, \r
510  255]) == 1:</p>\r
511 \r
512 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
513  &quot;Node removing is OK!&quot;</p>\r
514 \r
515 <p class="whs1">else:</p>\r
516 \r
517 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;print \r
518  &quot;KO node removing.&quot;</p>\r
519 \r
520 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
521 \r
522 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
523  </p>\r
524 \r
525 <p class="whs2">&nbsp;</p>\r
526 \r
527 <h4>Removing Elements</h4>\r
528 \r
529 <p class="whs1">import SMESH</p>\r
530 \r
531 <p class="whs1">import SMESH_mechanic</p>\r
532 \r
533 <p class="whs1">&nbsp;</p>\r
534 \r
535 <p class="whs1">smesh &nbsp;= \r
536  SMESH_mechanic.smesh</p>\r
537 \r
538 <p class="whs1">mesh &nbsp;&nbsp;= \r
539  SMESH_mechanic.mesh</p>\r
540 \r
541 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
542 \r
543 <p class="whs1">&nbsp;</p>\r
544 \r
545 <p class="whs1">anEditor = mesh.GetMeshEditor()</p>\r
546 \r
547 <p class="whs1">anEditor.RemoveElements([850, \r
548  859, 814])</p>\r
549 \r
550 <p class="whs1">&nbsp;</p>\r
551 \r
552 <p class="whs1">salome.sg.updateObjBrowser(1) \r
553  </p>\r
554 \r
555 <p class="whs1">&nbsp;</p>\r
556 \r
557 <h3><a name=bookmark2>Renumbering Nodes and Elements</a></h3>\r
558 \r
559 <p class="whs4">import SMESH</p>\r
560 \r
561 <p class="whs4">import SMESH_mechanic</p>\r
562 \r
563 <p class="whs4">&nbsp;</p>\r
564 \r
565 <p class="whs4">mesh &nbsp;&nbsp;= \r
566  SMESH_mechanic.mesh</p>\r
567 \r
568 <p class="whs4">salome = SMESH_mechanic.salome</p>\r
569 \r
570 <p class="whs4">&nbsp;</p>\r
571 \r
572 <p class="whs4">anEditor = mesh.GetMeshEditor()</p>\r
573 \r
574 <p class="whs4">anEditor.RenumberNodes()</p>\r
575 \r
576 <p class="whs4">&nbsp;</p>\r
577 \r
578 <p class="whs5"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
579  </p>\r
580 \r
581 <p class="whs5">&nbsp;</p>\r
582 \r
583 <p>&nbsp;</p>\r
584 \r
585 <h3><a name=bookmark3>Moving Nodes</a></h3>\r
586 \r
587 <p class="whs1">import SMESH</p>\r
588 \r
589 <p class="whs1">import SMESH_mechanic</p>\r
590 \r
591 <p class="whs1">&nbsp;</p>\r
592 \r
593 <p class="whs1">smesh &nbsp;= \r
594  SMESH_mechanic.smesh</p>\r
595 \r
596 <p class="whs1">mesh &nbsp;&nbsp;= \r
597  SMESH_mechanic.mesh</p>\r
598 \r
599 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
600 \r
601 <p class="whs1">&nbsp;</p>\r
602 \r
603 <p class="whs2"># move node</p>\r
604 \r
605 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
606 \r
607 <p class="whs1">aMeshEditor.MoveNode(38, \r
608  20, 10, 0)</p>\r
609 \r
610 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
611 \r
612 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
613  </p>\r
614 \r
615 <p class="whs2">&nbsp;</p>\r
616 \r
617 <h3><a name=bookmark4>Diagonal Inversion</a></h3>\r
618 \r
619 <p class="whs1">import SMESH</p>\r
620 \r
621 <p class="whs1">import SMESH_mechanic</p>\r
622 \r
623 <p class="whs1">&nbsp;</p>\r
624 \r
625 <p class="whs1">smesh &nbsp;= \r
626  SMESH_mechanic.smesh</p>\r
627 \r
628 <p class="whs1">mesh &nbsp;&nbsp;= \r
629  SMESH_mechanic.mesh</p>\r
630 \r
631 <p class="whs1">salome = SMESH_mechanic.salome</p>\r
632 \r
633 <p class="whs1">&nbsp;</p>\r
634 \r
635 <p class="whs2"># inverse diagonal</p>\r
636 \r
637 <p class="whs1">aMeshEditor = mesh.GetMeshEditor()</p>\r
638 \r
639 <p class="whs1">aMeshEditor.InverseDiag(700, \r
640  642)</p>\r
641 \r
642 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
643 \r
644 <p class="whs2"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
645  </p>\r
646 \r
647 <p class="whs2">&nbsp;</p>\r
648 \r
649 <h3><a name=bookmark5>Uniting two Triangles</a></h3>\r
650 \r
651 <p class="whs6">import SMESH</p>\r
652 \r
653 <p class="whs6">import SMESH_mechanic</p>\r
654 \r
655 <p class="whs6">&nbsp;</p>\r
656 \r
657 <p class="whs6">smesh &nbsp;= \r
658  SMESH_mechanic.smesh</p>\r
659 \r
660 <p class="whs6">mesh &nbsp;&nbsp;= \r
661  SMESH_mechanic.mesh</p>\r
662 \r
663 <p class="whs6">salome = SMESH_mechanic.salome</p>\r
664 \r
665 <p class="whs6">&nbsp;</p>\r
666 \r
667 <p># delete diagonal</p>\r
668 \r
669 <p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
670 \r
671 <p class="whs6">aMeshEditor.DeleteDiag(700, \r
672  642)</p>\r
673 \r
674 <p class="whs6">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
675 \r
676 <p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
677  </p>\r
678 \r
679 <p>&nbsp;</p>\r
680 \r
681 <h3><a name=bookmark6>Uniting a Set of Triangles</a></h3>\r
682 \r
683 <p class="whs6">import SMESH</p>\r
684 \r
685 <p class="whs6">import SMESH_mechanic</p>\r
686 \r
687 <p class="whs6">&nbsp;</p>\r
688 \r
689 <p class="whs6">smesh &nbsp;= \r
690  SMESH_mechanic.smesh</p>\r
691 \r
692 <p class="whs6">mesh &nbsp;&nbsp;= \r
693  SMESH_mechanic.mesh</p>\r
694 \r
695 <p class="whs6">salome = SMESH_mechanic.salome</p>\r
696 \r
697 <p class="whs6">&nbsp;</p>\r
698 \r
699 <p># unite a set of triangles</p>\r
700 \r
701 <p class="whs6">aFilterMgr = smesh.CreateFilterManager()</p>\r
702 \r
703 <p class="whs6">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
704 \r
705 <p class="whs6">&nbsp;</p>\r
706 \r
707 <p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
708 \r
709 <p class="whs6">aMeshEditor.TriToQuad([1145, \r
710  1147, 1159, 1135], aFunctor, 60)</p>\r
711 \r
712 <p class="whs6">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
713 \r
714 <p class="whs6">salome.sg.updateObjBrowser(1) \r
715  </p>\r
716 \r
717 <p class="whs6">&nbsp;</p>\r
718 \r
719 <h3><a name=bookmark7>Cutting Quadrangles</a></h3>\r
720 \r
721 <p class="whs6">import SMESH</p>\r
722 \r
723 <p class="whs6">import SMESH_mechanic</p>\r
724 \r
725 <p class="whs6">&nbsp;</p>\r
726 \r
727 <p class="whs6">smesh &nbsp;= \r
728  SMESH_mechanic.smesh</p>\r
729 \r
730 <p class="whs6">mesh &nbsp;&nbsp;= \r
731  SMESH_mechanic.mesh</p>\r
732 \r
733 <p class="whs6">salome = SMESH_mechanic.salome</p>\r
734 \r
735 <p class="whs6">&nbsp;</p>\r
736 \r
737 <p class="whs7"># unite a set of triangles</p>\r
738 \r
739 <p class="whs6">aFilterMgr = smesh.CreateFilterManager()</p>\r
740 \r
741 <p class="whs6">aFunctor = aFilterMgr.CreateMinimumAngle()</p>\r
742 \r
743 <p class="whs6">&nbsp;</p>\r
744 \r
745 <p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
746 \r
747 <p class="whs6">aMeshEditor.QuadToTri([405, \r
748  406], aFunctor)</p>\r
749 \r
750 <p class="whs6">&nbsp;&nbsp;&nbsp;&nbsp;</p>\r
751 \r
752 <p class="whs6">salome.sg.updateObjBrowser(1) \r
753  </p>\r
754 \r
755 <p class="whs7">&nbsp;</p>\r
756 \r
757 <h3><a name=bookmark8>Smoothing</a></h3>\r
758 \r
759 <p class="whs6">import SMESH</p>\r
760 \r
761 <p class="whs6">import SMESH_mechanic</p>\r
762 \r
763 <p class="whs6">&nbsp;</p>\r
764 \r
765 <p class="whs6">smesh &nbsp;= \r
766  SMESH_mechanic.smesh</p>\r
767 \r
768 <p class="whs6">mesh &nbsp;&nbsp;= \r
769  SMESH_mechanic.mesh</p>\r
770 \r
771 <p class="whs6">salome = SMESH_mechanic.salome</p>\r
772 \r
773 <p class="whs6">&nbsp;</p>\r
774 \r
775 <p class="whs7"># smooth</p>\r
776 \r
777 <p class="whs6">FacesSmooth = [911, \r
778  931, 950, 864, 932]</p>\r
779 \r
780 <p class="whs6">GroupSmooth = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
781  of faces (smooth)&quot;)</p>\r
782 \r
783 <p class="whs6">GroupSmooth.Add(FacesSmooth)</p>\r
784 \r
785 <p class="whs6">&nbsp;</p>\r
786 \r
787 <p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
788 \r
789 <p class="whs6">aMeshEditor.SmoothObject(GroupSmooth, \r
790  [], 20, 2, SMESH.SMESH_MeshEditor.CENTROIDAL_SMOOTH)</p>\r
791 \r
792 <p class="whs6">&nbsp;</p>\r
793 \r
794 <p class="whs6">salome.sg.updateObjBrowser(1) \r
795  </p>\r
796 \r
797 <p class="whs6">&nbsp;</p>\r
798 \r
799 <p class="whs6">&nbsp;</p>\r
800 \r
801 <h3><a name=bookmark9>Extrusion</a></h3>\r
802 \r
803 <p class="whs7">import SMESH</p>\r
804 \r
805 <p class="whs7">import SMESH_mechanic</p>\r
806 \r
807 <p class="whs7">&nbsp;</p>\r
808 \r
809 <p class="whs7">smesh &nbsp;= \r
810  SMESH_mechanic.smesh</p>\r
811 \r
812 <p class="whs7">mesh &nbsp;&nbsp;= \r
813  SMESH_mechanic.mesh</p>\r
814 \r
815 <p class="whs7">salome = SMESH_mechanic.salome</p>\r
816 \r
817 <p class="whs6">&nbsp;</p>\r
818 \r
819 <p class="whs7"># extrusion of the group</p>\r
820 \r
821 <p class="whs7">point = SMESH.PointStruct(0, \r
822  0, 5)</p>\r
823 \r
824 <p class="whs7">vector = SMESH.DirStruct(point)</p>\r
825 \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
831 \r
832 <p class="whs7">&nbsp;</p>\r
833 \r
834 <p class="whs7">GroupTriToQuad = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
835  of faces (quad)&quot;)</p>\r
836 \r
837 <p class="whs7">GroupTriToQuad.Add(FacesTriToQuad)</p>\r
838 \r
839 <p class="whs7">&nbsp;</p>\r
840 \r
841 <p class="whs7">aMeshEditor = mesh.GetMeshEditor()</p>\r
842 \r
843 <p class="whs7">aMeshEditor.ExtrusionSweepObject(GroupTriToQuad, \r
844  vector, 5)</p>\r
845 \r
846 <p class="whs7">&nbsp;</p>\r
847 \r
848 <p class="whs7">salome.sg.updateObjBrowser(1) \r
849  </p>\r
850 \r
851 <p class="whs7">&nbsp;</p>\r
852 \r
853 <h3><a name=bookmark10>Extrusion along a Path</a></h3>\r
854 \r
855 <p class="whs6">import geompy</p>\r
856 \r
857 <p class="whs6">import smesh</p>\r
858 \r
859 <p class="whs6">import salome</p>\r
860 \r
861 <p class="whs6">import SMESH</p>\r
862 \r
863 <p class="whs7">&nbsp;</p>\r
864 \r
865 <p class="whs7"># create a 2D mesh on \r
866  a face</p>\r
867 \r
868 <p class="whs7"># create vertices</p>\r
869 \r
870 <p class="whs6">px &nbsp;&nbsp;= \r
871  geompy.MakeVertex(100., 0. &nbsp;, \r
872  0. &nbsp;)</p>\r
873 \r
874 <p class="whs6">py &nbsp;&nbsp;= \r
875  geompy.MakeVertex(0. &nbsp;, \r
876  100., 0. &nbsp;)</p>\r
877 \r
878 <p class="whs6">pz &nbsp;&nbsp;= \r
879  geompy.MakeVertex(0. &nbsp;, \r
880  0. &nbsp;, 100.)</p>\r
881 \r
882 <p class="whs6">&nbsp;</p>\r
883 \r
884 <p class="whs7"># create a vector from \r
885  two points</p>\r
886 \r
887 <p class="whs6">vxy = geompy.MakeVector(px, \r
888  py)</p>\r
889 \r
890 <p class="whs7">&nbsp;</p>\r
891 \r
892 <p class="whs7"># create an arc from \r
893  three points</p>\r
894 \r
895 <p class="whs6">arc = geompy.MakeArc(py, \r
896  pz, px)</p>\r
897 \r
898 <p class="whs7">&nbsp;</p>\r
899 \r
900 <p class="whs7"># create a wire</p>\r
901 \r
902 <p class="whs6">wire = geompy.MakeWire([vxy, \r
903  arc])</p>\r
904 \r
905 <p class="whs6">isPlanarFace = 1</p>\r
906 \r
907 <p class="whs7">&nbsp;</p>\r
908 \r
909 <p class="whs7"># create a face from \r
910  the wire</p>\r
911 \r
912 <p class="whs6">face1 = geompy.MakeFace(wire, \r
913  isPlanarFace)</p>\r
914 \r
915 <p class="whs7">&nbsp;</p>\r
916 \r
917 <p class="whs7"># add objects in the \r
918  study</p>\r
919 \r
920 <p class="whs6">id_face1 = geompy.addToStudy(face1,&quot;Face1&quot;)</p>\r
921 \r
922 <p class="whs7">&nbsp;</p>\r
923 \r
924 <p class="whs7"># create hexahedrical \r
925  mesh</p>\r
926 \r
927 <p class="whs6">hexa = smesh.Mesh(face1, \r
928  &quot;Face compound : hexahedrical mesh&quot;)</p>\r
929 \r
930 <p class="whs6">algo = hexa.Triangle()</p>\r
931 \r
932 <p class="whs7">&nbsp;</p>\r
933 \r
934 <p class="whs7"># define &quot;MaxElementArea&quot; \r
935  hypothesis to be applied to each triangle</p>\r
936 \r
937 <p class="whs6">algo.MaxElementArea(30)</p>\r
938 \r
939 <p class="whs7">&nbsp;</p>\r
940 \r
941 <p class="whs7"># create a quadrangle \r
942  2D algorithm for faces</p>\r
943 \r
944 <p class="whs6">hexa.Quadrangle()</p>\r
945 \r
946 <p class="whs7">&nbsp;</p>\r
947 \r
948 <p class="whs7"># create a local hypothesis</p>\r
949 \r
950 <p class="whs6">algo = hexa.Segment(wire)</p>\r
951 \r
952 <p class="whs7">&nbsp;</p>\r
953 \r
954 <p class="whs7"># define &quot;NumberOfSegments&quot; \r
955  hypothesis to cut an edge in a fixed number of segments</p>\r
956 \r
957 <p class="whs6">algo.NumberOfSegments(6)</p>\r
958 \r
959 <p class="whs7">&nbsp;</p>\r
960 \r
961 <p class="whs7"># compute the mesh</p>\r
962 \r
963 <p class="whs6">hexa.Compute()</p>\r
964 \r
965 <p class="whs7">&nbsp;</p>\r
966 \r
967 <p class="whs7"># create path mesh and \r
968  path shape</p>\r
969 \r
970 <p class="whs7"># create a circle from \r
971  three points</p>\r
972 \r
973 <p class="whs6">px1 &nbsp;&nbsp;= \r
974  geompy.MakeVertex(100., 100. &nbsp;, \r
975  0. &nbsp;)</p>\r
976 \r
977 <p class="whs6">py1 &nbsp;&nbsp;= \r
978  geompy.MakeVertex(-100. &nbsp;, \r
979  -100., 0. &nbsp;)</p>\r
980 \r
981 <p class="whs6">pz1 &nbsp;&nbsp;= \r
982  geompy.MakeVertex(0. &nbsp;, \r
983  0. &nbsp;, 50.)</p>\r
984 \r
985 <p class="whs6">circle = geompy.MakeCircleThreePnt(py1, \r
986  pz1, px1)</p>\r
987 \r
988 <p class="whs7">&nbsp;</p>\r
989 \r
990 <p class="whs7"># add objects in the \r
991  study</p>\r
992 \r
993 <p class="whs6">id_circle = geompy.addToStudy(circle,&quot;Path&quot;)</p>\r
994 \r
995 <p class="whs6">circlemesh = smesh.Mesh(circle, \r
996  &quot;Path mesh&quot;)</p>\r
997 \r
998 <p class="whs7">&nbsp;</p>\r
999 \r
1000 <p class="whs7"># create a local hypothesis</p>\r
1001 \r
1002 <p class="whs6">algo = circlemesh.Segment()</p>\r
1003 \r
1004 <p class="whs7"># define &quot;NumberOfSegments&quot; \r
1005  hypothesis to cut an edge in a fixed number of segments</p>\r
1006 \r
1007 <p class="whs6">algo.NumberOfSegments(10)</p>\r
1008 \r
1009 <p class="whs7">&nbsp;</p>\r
1010 \r
1011 <p class="whs7"># compute the mesh</p>\r
1012 \r
1013 <p class="whs6">circlemesh.Compute()</p>\r
1014 \r
1015 <p class="whs7">&nbsp;</p>\r
1016 \r
1017 <p class="whs7"># extrusion of the mesh</p>\r
1018 \r
1019 <p class="whs6">aMeshEditor = hexa.GetMesh().GetMeshEditor()</p>\r
1020 \r
1021 <p class="whs6">aMeshEditor.ExtrusionAlongPathObject(hexa.GetMesh(), \r
1022  circlemesh.GetMesh(), circle, 1, 0, [], 0, SMESH.PointStruct(0, 0, 0))</p>\r
1023 \r
1024 <p class="whs6">&nbsp;</p>\r
1025 \r
1026 <p class="whs7"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
1027  </p>\r
1028 \r
1029 <p class="whs7">&nbsp;</p>\r
1030 \r
1031 <h3><a name=bookmark11>Revolution</a></h3>\r
1032 \r
1033 <p class="whs6">import SMESH</p>\r
1034 \r
1035 <p class="whs6">import SMESH_mechanic</p>\r
1036 \r
1037 <p class="whs6">import math</p>\r
1038 \r
1039 <p class="whs6">&nbsp;</p>\r
1040 \r
1041 <p class="whs6">smesh &nbsp;= \r
1042  SMESH_mechanic.smesh</p>\r
1043 \r
1044 <p class="whs6">mesh &nbsp;&nbsp;= \r
1045  SMESH_mechanic.mesh</p>\r
1046 \r
1047 <p class="whs6">salome = SMESH_mechanic.salome</p>\r
1048 \r
1049 <p class="whs7">&nbsp;</p>\r
1050 \r
1051 <p class="whs7"># rotate a sweep object</p>\r
1052 \r
1053 <p class="whs6">FacesRotate = [492, \r
1054  493, 502, 503]</p>\r
1055 \r
1056 <p class="whs6">GroupRotate = mesh.CreateGroup(SMESH.FACE,&quot;Group \r
1057  of faces (rotate)&quot;)</p>\r
1058 \r
1059 <p class="whs6">GroupRotate.Add(FacesRotate)</p>\r
1060 \r
1061 <p class="whs6">angle45 = &nbsp;45*math.pi/180</p>\r
1062 \r
1063 <p class="whs6">axisXYZ = SMESH.AxisStruct(-38.3128, \r
1064  -73.3658, -23.321, -13.3402, -13.3265, 6.66632)</p>\r
1065 \r
1066 <p class="whs6">&nbsp;</p>\r
1067 \r
1068 <p class="whs6">aMeshEditor = mesh.GetMeshEditor()</p>\r
1069 \r
1070 <p class="whs6">aMeshEditor.RotationSweepObject(GroupRotate, \r
1071  axisXYZ, angle45, 4, 1e-5)</p>\r
1072 \r
1073 <p class="whs6">&nbsp;</p>\r
1074 \r
1075 <p class="whs7"><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
1076  </p>\r
1077 \r
1078 <script type="text/javascript" language="javascript1.2">\r
1079 <!--\r
1080 if (window.writeIntopicBar)\r
1081         writeIntopicBar(0);\r
1082 //-->\r
1083 </script>\r
1084 </body>\r
1085 </html>\r