]> SALOME platform Git repositories - modules/geom.git/blob - doc/salome/gui/GEOM/transformation_operations.htm
Salome HOME
PAL12557: Documentation for scripts is not up to date.
[modules/geom.git] / doc / salome / gui / GEOM / transformation_operations.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>Transformation Operations</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">\r
9 <link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
10 <!--\r
11 if (navigator.appName !="Netscape")\r
12 {   document.write("<link rel='stylesheet' href='default.css'>");}\r
13 //-->\r
14 </script>\r
15 <style type="text/css">\r
16 <!--\r
17 p.whs1 { font-family:'Lucida Console' , monospace; }\r
18 p.whs2 { font-family:'Times New Roman' , serif; }\r
19 -->\r
20 </style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
21 <!--\r
22 function reDo() {\r
23   if (innerWidth != origWidth || innerHeight != origHeight)\r
24      location.reload();\r
25 }\r
26 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
27         origWidth = innerWidth;\r
28         origHeight = innerHeight;\r
29         onresize = reDo;\r
30 }\r
31 onerror = null; \r
32 //-->\r
33 </script>\r
34 <style type="text/css">\r
35 <!--\r
36 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
37 p.WebHelpNavBar { text-align:right; }\r
38 -->\r
39 </style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>\r
40 <script type="text/javascript" language="javascript" src="whver.js"></script>\r
41 <script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>\r
42 <script type="text/javascript" language="javascript1.2" src="whutils.js"></script>\r
43 <script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>\r
44 <script type="text/javascript" language="javascript1.2">\r
45 <!--\r
46 if (window.gbWhTopic)\r
47 {\r
48         if (window.setRelStartPage)\r
49         {\r
50         addTocInfo("Geometry module\nTUI Scripts\nTransformation\nTransformation Operations");\r
51 addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");\r
52 addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");\r
53 \r
54         }\r
55 \r
56 \r
57         if (window.setRelStartPage)\r
58         {\r
59         setRelStartPage("index.htm");\r
60 \r
61                 autoSync(1);\r
62                 sendSyncInfo();\r
63                 sendAveInfoOut();\r
64         }\r
65 \r
66 }\r
67 else\r
68         if (window.gbIE4)\r
69                 document.location.reload();\r
70 //-->\r
71 </script>\r
72 </head>\r
73 <body><script type="text/javascript" language="javascript1.2">\r
74 <!--\r
75 if (window.writeIntopicBar)\r
76         writeIntopicBar(4);\r
77 //-->\r
78 </script>\r
79 <h1>Transformation Operations</h1>\r
80 \r
81 <h3><a name=bookmark>Translation</a></h3>\r
82 \r
83 <p class="whs1">import geompy</p>\r
84 \r
85 <p class="whs1">import salome</p>\r
86 \r
87 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
88 \r
89 <p>&nbsp;</p>\r
90 \r
91 <p># create a vertex and a vector</p>\r
92 \r
93 <p class="whs1">p1 = geompy.MakeVertex(10, \r
94  40, 0)</p>\r
95 \r
96 <p class="whs1">p2 = geompy.MakeVertex( \r
97  0, &nbsp;0, 50)</p>\r
98 \r
99 <p class="whs1">p3 = geompy.MakeVertex(50, \r
100  80, 0)</p>\r
101 \r
102 <p class="whs1">v = geompy.MakeVector(p1, \r
103  p2)</p>\r
104 \r
105 <p class="whs1">vt = geompy.MakeVector(p1, \r
106  p3)</p>\r
107 \r
108 <p>&nbsp;</p>\r
109 \r
110 <p># create a cylinder</p>\r
111 \r
112 <p class="whs1">height = 35</p>\r
113 \r
114 <p class="whs1">radius1 = 20</p>\r
115 \r
116 <p class="whs1">cylinder = geompy.MakeCylinder(p1, \r
117  v, radius1, height)</p>\r
118 \r
119 <p>&nbsp;</p>\r
120 \r
121 <p># translate the given object along the vector, specified by its end \r
122  points</p>\r
123 \r
124 <p># (all three functions produce the same result)</p>\r
125 \r
126 <p class="whs1">translation1 = geompy.MakeTranslationTwoPoints(cylinder, \r
127  p1, p3)</p>\r
128 \r
129 <p class="whs1">translation2 = geompy.MakeTranslation(cylinder, \r
130  40, 40, 0)</p>\r
131 \r
132 <p class="whs1">translation3 = geompy.MakeTranslationVector(cylinder, \r
133  vt)</p>\r
134 \r
135 <p>&nbsp;</p>\r
136 \r
137 <p># add objects in the study</p>\r
138 \r
139 <p class="whs1">id_cylinder = geompy.addToStudy(cylinder, \r
140  &quot;Cylinder&quot;)</p>\r
141 \r
142 <p class="whs1">id_translation1 = \r
143  geompy.addToStudy(translation1, &quot;Translation1&quot;)</p>\r
144 \r
145 <p class="whs1">id_translation2 = \r
146  geompy.addToStudy(translation2, &quot;Translation2&quot;)</p>\r
147 \r
148 <p class="whs1">id_translation3 = \r
149  geompy.addToStudy(translation3, &quot;Translation3&quot;)</p>\r
150 \r
151 <p>&nbsp;</p>\r
152 \r
153 <p># display the results</p>\r
154 \r
155 <p class="whs1">gg.createAndDisplayGO(id_cylinder)</p>\r
156 \r
157 <p class="whs1">gg.setDisplayMode(id_cylinder,1)</p>\r
158 \r
159 <p class="whs1">gg.createAndDisplayGO(id_translation1)</p>\r
160 \r
161 <p class="whs1">gg.setDisplayMode(id_translation1,1)</p>\r
162 \r
163 <p class="whs1">gg.createAndDisplayGO(id_translation2)</p>\r
164 \r
165 <p class="whs1">gg.setDisplayMode(id_translation2,1)</p>\r
166 \r
167 <p class="whs1">gg.createAndDisplayGO(id_translation3)</p>\r
168 \r
169 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_translation3,1)</span> \r
170  </p>\r
171 \r
172 <h3><a name=bookmark1>Rotation</a></h3>\r
173 \r
174 <p class="whs1">import geompy</p>\r
175 \r
176 <p class="whs1">import salome</p>\r
177 \r
178 <p class="whs1">import math</p>\r
179 \r
180 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
181 \r
182 <p>&nbsp;</p>\r
183 \r
184 <p># create a vertex and a vector</p>\r
185 \r
186 <p class="whs1">p1 = geompy.MakeVertex(10, \r
187  40, 0)</p>\r
188 \r
189 <p class="whs1">p2 = geompy.MakeVertex( \r
190  0, &nbsp;0, 50)</p>\r
191 \r
192 <p class="whs1">p3 = geompy.MakeVertex(10, \r
193  50,-20)</p>\r
194 \r
195 <p class="whs1">p4 = geompy.MakeVertex(10, \r
196  50, 60)</p>\r
197 \r
198 <p class="whs1">v = geompy.MakeVector(p1, \r
199  p2)</p>\r
200 \r
201 <p class="whs1">vr = geompy.MakeVector(p3, \r
202  p4)</p>\r
203 \r
204 <p>&nbsp;</p>\r
205 \r
206 <p># create a cylinder</p>\r
207 \r
208 <p class="whs1">height = 35</p>\r
209 \r
210 <p class="whs1">radius1 = 20</p>\r
211 \r
212 <p class="whs1">cylinder = geompy.MakeCylinder(p1, \r
213  v, radius1, height)</p>\r
214 \r
215 <p>&nbsp;</p>\r
216 \r
217 <p># rotate the given object around the given axis by the given angle</p>\r
218 \r
219 <p class="whs1">rotation = geompy.MakeRotation(cylinder, \r
220  vr, math.pi)</p>\r
221 \r
222 <p>&nbsp;</p>\r
223 \r
224 <p># add objects in the study</p>\r
225 \r
226 <p class="whs1">id_vr = geompy.addToStudy(vr, \r
227  &quot;Rotation axis&quot;)</p>\r
228 \r
229 <p class="whs1">id_cylinder = geompy.addToStudy(cylinder, \r
230  &quot;Cylinder&quot;)</p>\r
231 \r
232 <p class="whs1">id_rotation = geompy.addToStudy(rotation, \r
233  &quot;Rotation&quot;)</p>\r
234 \r
235 <p>&nbsp;</p>\r
236 \r
237 <p># display the results</p>\r
238 \r
239 <p class="whs1">gg.createAndDisplayGO(id_vr)</p>\r
240 \r
241 <p class="whs1">gg.createAndDisplayGO(id_cylinder)</p>\r
242 \r
243 <p class="whs1">gg.setDisplayMode(id_cylinder,1)</p>\r
244 \r
245 <p class="whs1">gg.createAndDisplayGO(id_rotation)</p>\r
246 \r
247 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_rotation,1)</span> \r
248  </p>\r
249 \r
250 <p>&nbsp;</p>\r
251 \r
252 <h3><a name=bookmark4>Modify Location</a></h3>\r
253 \r
254 <p class="whs1">import geompy</p>\r
255 \r
256 <p class="whs1">import salome</p>\r
257 \r
258 <p class="whs1">import math</p>\r
259 \r
260 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
261 \r
262 <p>&nbsp;</p>\r
263 \r
264 <p># create a vertex and a vector</p>\r
265 \r
266 <p class="whs1">p1 = geompy.MakeVertex(10, \r
267  40, 0)</p>\r
268 \r
269 <p class="whs1">p2 = geompy.MakeVertex( \r
270  0, &nbsp;0, 50)</p>\r
271 \r
272 <p class="whs1">v = geompy.MakeVector(p1, \r
273  p2)</p>\r
274 \r
275 <p>&nbsp;</p>\r
276 \r
277 <p># create a cylinder</p>\r
278 \r
279 <p class="whs1">height = 35</p>\r
280 \r
281 <p class="whs1">radius1 = 20</p>\r
282 \r
283 <p class="whs1">cylinder = geompy.MakeCylinder(p1, \r
284  v, radius1, height)</p>\r
285 \r
286 <p>&nbsp;</p>\r
287 \r
288 <p># create local coordinate systems</p>\r
289 \r
290 <p class="whs1">cs1 = geompy.MakeMarker( \r
291  0, 0, 0, 1,0,0, 0,1,0)</p>\r
292 \r
293 <p class="whs1">cs2 = geompy.MakeMarker(30,40,40, \r
294  1,0,0, 0,1,0)</p>\r
295 \r
296 <p>&nbsp;</p>\r
297 \r
298 <p># modify the location of the given object</p>\r
299 \r
300 <p class="whs1">position = geompy.MakePosition(cylinder, \r
301  cs1, cs2)</p>\r
302 \r
303 <p>&nbsp;</p>\r
304 \r
305 <p># add objects in the study</p>\r
306 \r
307 <p class="whs1">id_cs1 = geompy.addToStudy(cs1, \r
308  &quot;Coordinate system 1&quot;)</p>\r
309 \r
310 <p class="whs1">id_cs2 = geompy.addToStudy(cs2, \r
311  &quot;Coordinate system 2&quot;)</p>\r
312 \r
313 <p class="whs1">id_cylinder = geompy.addToStudy(cylinder, \r
314  &quot;Cylinder&quot;)</p>\r
315 \r
316 <p class="whs1">id_position = geompy.addToStudy(position, \r
317  &quot;Position&quot;)</p>\r
318 \r
319 <p class="whs1">&nbsp;</p>\r
320 \r
321 <p># display the results</p>\r
322 \r
323 <p class="whs1">gg.createAndDisplayGO(id_cylinder)</p>\r
324 \r
325 <p class="whs1">gg.setDisplayMode(id_cylinder,1)</p>\r
326 \r
327 <p class="whs1">gg.createAndDisplayGO(id_position)</p>\r
328 \r
329 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_position,1)</span> \r
330  </p>\r
331 \r
332 <p>&nbsp;</p>\r
333 \r
334 <h3><a name=bookmark5>Mirror Image</a></h3>\r
335 \r
336 <p class="whs1">import geompy</p>\r
337 \r
338 <p class="whs1">import salome</p>\r
339 \r
340 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
341 \r
342 <p>&nbsp;</p>\r
343 \r
344 <p># create a box</p>\r
345 \r
346 <p class="whs1">box = geompy.MakeBoxDXDYDZ(200, \r
347  200, 200)</p>\r
348 \r
349 <p>&nbsp;</p>\r
350 \r
351 <p># create an object, symmetrical to another object through the given \r
352  plane</p>\r
353 \r
354 <p class="whs1">p1 = geompy.MakeVertex( \r
355  0, 25, &nbsp;0)</p>\r
356 \r
357 <p class="whs1">p2 = geompy.MakeVertex( \r
358  5, 25, &nbsp;0)</p>\r
359 \r
360 <p class="whs1">p3 = geompy.MakeVertex( \r
361  0,-30, 40)</p>\r
362 \r
363 <p class="whs1">plane = geompy.MakePlaneThreePnt(p1, \r
364  p2, p3, 1000.)</p>\r
365 \r
366 <p class="whs1">mirror1 = geompy.MakeMirrorByPlane(box, \r
367  plane)</p>\r
368 \r
369 <p>&nbsp;</p>\r
370 \r
371 <p># create an object, symmetrical to another object through the given \r
372  axis</p>\r
373 \r
374 <p class="whs1">p4 = geompy.MakeVertex( \r
375  210, 210, -20)</p>\r
376 \r
377 <p class="whs1">p5 = geompy.MakeVertex( \r
378  210, 210, 220)</p>\r
379 \r
380 <p class="whs1">axis = geompy.MakeVector(p4, \r
381  p5)</p>\r
382 \r
383 <p class="whs1">mirror2 = geompy.MakeMirrorByAxis(box, \r
384  axis)</p>\r
385 \r
386 <p>&nbsp;</p>\r
387 \r
388 <p># create an object, symmetrical to another object through the given \r
389  point</p>\r
390 \r
391 <p class="whs1">mirror3 = geompy.MakeMirrorByPoint(box, \r
392  p4)</p>\r
393 \r
394 <p>&nbsp;</p>\r
395 \r
396 <p># add objects in the study</p>\r
397 \r
398 <p class="whs1">id_box = geompy.addToStudy(box, \r
399  &quot;Box&quot;)</p>\r
400 \r
401 <p class="whs1">id_plane = geompy.addToStudy(plane, \r
402  &quot;Plane&quot;)</p>\r
403 \r
404 <p class="whs1">id_mirror1 = geompy.addToStudy(mirror1, \r
405  &quot;Mirror plane&quot;)</p>\r
406 \r
407 <p class="whs1">id_axis = geompy.addToStudy(axis, \r
408  &quot;Axis&quot;)</p>\r
409 \r
410 <p class="whs1">id_mirror2 = geompy.addToStudy(mirror2, \r
411  &quot;Mirror axis&quot;)</p>\r
412 \r
413 <p class="whs1">id_p4 = geompy.addToStudy(p4, \r
414  &quot;Point&quot;)</p>\r
415 \r
416 <p class="whs1">id_mirror3 = geompy.addToStudy(mirror3, \r
417  &quot;Mirror point&quot;)</p>\r
418 \r
419 <p>&nbsp;</p>\r
420 \r
421 <p># display the results</p>\r
422 \r
423 <p class="whs1">gg.createAndDisplayGO(id_box)</p>\r
424 \r
425 <p class="whs1">gg.setDisplayMode(id_box,1)</p>\r
426 \r
427 <p class="whs1">gg.createAndDisplayGO(id_plane)</p>\r
428 \r
429 <p class="whs1">gg.createAndDisplayGO(id_mirror1)</p>\r
430 \r
431 <p class="whs1">gg.setDisplayMode(id_mirror1,1)</p>\r
432 \r
433 <p class="whs1">gg.createAndDisplayGO(id_axis)</p>\r
434 \r
435 <p class="whs1">gg.createAndDisplayGO(id_mirror2)</p>\r
436 \r
437 <p class="whs1">gg.setDisplayMode(id_mirror2,1)</p>\r
438 \r
439 <p class="whs1">gg.createAndDisplayGO(id_p4)</p>\r
440 \r
441 <p class="whs1">gg.createAndDisplayGO(id_mirror3)</p>\r
442 \r
443 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_mirror3,1)</span> \r
444  </p>\r
445 \r
446 <p>&nbsp;</p>\r
447 \r
448 <h3><a name=bookmark6>Scale Transform </a></h3>\r
449 \r
450 <p class="whs1">import geompy</p>\r
451 \r
452 <p class="whs1">import salome</p>\r
453 \r
454 <p class="whs1">&nbsp;</p>\r
455 \r
456 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
457 \r
458 <p class="whs1">&nbsp;</p>\r
459 \r
460 <p class="whs2"># create a box and a \r
461  sphere</p>\r
462 \r
463 <p class="whs1">box = geompy.MakeBoxDXDYDZ(200, \r
464  200, 200)</p>\r
465 \r
466 <p class="whs1">&nbsp;</p>\r
467 \r
468 <p class="whs2"># scale the given object \r
469  by the factor</p>\r
470 \r
471 <p class="whs1">p0 = geompy.MakeVertex(100, \r
472  100, 100)</p>\r
473 \r
474 <p class="whs1">factor = 0.5</p>\r
475 \r
476 <p class="whs1">scale = geompy.MakeScaleTransform(box, \r
477  p0, factor)</p>\r
478 \r
479 <p class="whs1">&nbsp;</p>\r
480 \r
481 <p class="whs2"># add objects in the \r
482  study</p>\r
483 \r
484 <p class="whs1">id_box = geompy.addToStudy(box, \r
485  &quot;Box&quot;)</p>\r
486 \r
487 <p class="whs1">id_scale = geompy.addToStudy(scale, \r
488  &quot;Scale&quot;)</p>\r
489 \r
490 <p class="whs1">&nbsp;</p>\r
491 \r
492 <p class="whs2"># display the results</p>\r
493 \r
494 <p class="whs1">gg.createAndDisplayGO(id_box)</p>\r
495 \r
496 <p class="whs1">gg.setDisplayMode(id_box,1)</p>\r
497 \r
498 <p class="whs1">gg.setTransparency(id_box,0.5)</p>\r
499 \r
500 <p class="whs1">gg.createAndDisplayGO(id_scale)</p>\r
501 \r
502 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_scale,1)</span> \r
503  </p>\r
504 \r
505 <p>&nbsp;</p>\r
506 \r
507 <h3><a name=bookmark7>Offset Surface</a></h3>\r
508 \r
509 <p class="whs1">import geompy</p>\r
510 \r
511 <p class="whs1">import salome</p>\r
512 \r
513 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
514 \r
515 <p>&nbsp;</p>\r
516 \r
517 <p># create a box and a sphere</p>\r
518 \r
519 <p class="whs1">box = geompy.MakeBox(20, \r
520  20, 20, 200, 200, 200)</p>\r
521 \r
522 <p>&nbsp;</p>\r
523 \r
524 <p># create a new object as offset of the given object</p>\r
525 \r
526 <p class="whs1">offset = geompy.MakeOffset(box, \r
527  70.)</p>\r
528 \r
529 <p>&nbsp;</p>\r
530 \r
531 <p># add objects in the study</p>\r
532 \r
533 <p class="whs1">id_box = geompy.addToStudy(box, \r
534  &quot;Box&quot;)</p>\r
535 \r
536 <p class="whs1">id_offset = geompy.addToStudy(offset, \r
537  &quot;Offset&quot;)</p>\r
538 \r
539 <p class="whs1">&nbsp;</p>\r
540 \r
541 <p># display the results</p>\r
542 \r
543 <p class="whs1">gg.createAndDisplayGO(id_box)</p>\r
544 \r
545 <p class="whs1">gg.setDisplayMode(id_box,1)</p>\r
546 \r
547 <p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_offset)</span> \r
548  </p>\r
549 \r
550 <p>&nbsp;</p>\r
551 \r
552 <h3><a name=bookmark8>Multi Translation</a></h3>\r
553 \r
554 <p class="whs1">import geompy</p>\r
555 \r
556 <p class="whs1">import salome</p>\r
557 \r
558 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
559 \r
560 <p>&nbsp;</p>\r
561 \r
562 <p># create vertices and vectors</p>\r
563 \r
564 <p class="whs1">p0 &nbsp;= \r
565  geompy.MakeVertex( 0., &nbsp;0., \r
566  &nbsp;0.)</p>\r
567 \r
568 <p class="whs1">px &nbsp;= \r
569  geompy.MakeVertex(20., &nbsp;0., \r
570  &nbsp;0.)</p>\r
571 \r
572 <p class="whs1">py &nbsp;= \r
573  geompy.MakeVertex( 0., 20., &nbsp;0.)</p>\r
574 \r
575 <p class="whs1">pz &nbsp;= \r
576  geompy.MakeVertex( 0., &nbsp;0., \r
577  20.)</p>\r
578 \r
579 <p class="whs1">pxy = geompy.MakeVertex( \r
580  50., 0., 0.)</p>\r
581 \r
582 <p class="whs1">pxyz = geompy.MakeVertex( \r
583  50., 50., 50.)</p>\r
584 \r
585 <p class="whs1">vz &nbsp;= \r
586  geompy.MakeVector(p0, pz)</p>\r
587 \r
588 <p class="whs1">vxy = geompy.MakeVector(px, \r
589  py)</p>\r
590 \r
591 <p class="whs1">vtr1d = geompy.MakeVector(p0, \r
592  pxyz)</p>\r
593 \r
594 <p class="whs1">vtr2d = geompy.MakeVector(p0, \r
595  pxy)</p>\r
596 \r
597 <p>&nbsp;&nbsp;</p>\r
598 \r
599 <p># create an arc</p>\r
600 \r
601 <p class="whs1">arc = geompy.MakeArc(py, \r
602  pz, px)</p>\r
603 \r
604 <p>&nbsp;</p>\r
605 \r
606 <p># create a wire</p>\r
607 \r
608 <p class="whs1">wire = geompy.MakeWire([vxy, \r
609  arc])</p>\r
610 \r
611 <p>&nbsp;</p>\r
612 \r
613 <p># create a planar face</p>\r
614 \r
615 <p class="whs1">face = geompy.MakeFace(wire, \r
616  1)</p>\r
617 \r
618 <p>&nbsp;</p>\r
619 \r
620 <p># create a prism</p>\r
621 \r
622 <p class="whs1">prism = geompy.MakePrismVecH(face, \r
623  vz, 20.0)</p>\r
624 \r
625 <p>&nbsp;</p>\r
626 \r
627 <p># translate the given object along the given vector a given number of \r
628  times</p>\r
629 \r
630 <p class="whs1">tr1d = geompy.MakeMultiTranslation1D(prism, \r
631  vtr1d, 20, 4)</p>\r
632 \r
633 <p>&nbsp;</p>\r
634 \r
635 <p># consequently apply two specified translations to the object a given \r
636  number of times</p>\r
637 \r
638 <p class="whs1">tr2d = geompy.MakeMultiTranslation2D(prism, \r
639  vtr1d, 20, 4, vtr2d, 80, 3)</p>\r
640 \r
641 <p>&nbsp;</p>\r
642 \r
643 <p># add objects in the study</p>\r
644 \r
645 <p class="whs1">id_prism = geompy.addToStudy(prism,&quot;Prism&quot;)</p>\r
646 \r
647 <p class="whs1">id_tr1d = geompy.addToStudy(tr1d,&quot;Translation \r
648  1D&quot;)</p>\r
649 \r
650 <p class="whs1">id_tr2d = geompy.addToStudy(tr2d,&quot;Translation \r
651  2D&quot;)</p>\r
652 \r
653 <p>&nbsp;</p>\r
654 \r
655 <p># display the prism and the results of fillet operation</p>\r
656 \r
657 <p class="whs1">gg.createAndDisplayGO(id_prism)</p>\r
658 \r
659 <p class="whs1">gg.setDisplayMode(id_prism,1)</p>\r
660 \r
661 <p class="whs1">gg.createAndDisplayGO(id_tr1d)</p>\r
662 \r
663 <p class="whs1">gg.setDisplayMode(id_tr1d,1)</p>\r
664 \r
665 <p class="whs1">gg.createAndDisplayGO(id_tr2d)</p>\r
666 \r
667 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_tr2d,1)</span> \r
668  </p>\r
669 \r
670 <p>&nbsp;</p>\r
671 \r
672 <h3><a name=bookmark9>Multi Rotation</a></h3>\r
673 \r
674 <p class="whs1">import geompy</p>\r
675 \r
676 <p class="whs1">import salome</p>\r
677 \r
678 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
679 \r
680 <p>&nbsp;</p>\r
681 \r
682 <p># create vertices and vectors</p>\r
683 \r
684 <p class="whs1">p0 &nbsp;= \r
685  geompy.MakeVertex( 0., &nbsp;0., \r
686  &nbsp;0.)</p>\r
687 \r
688 <p class="whs1">px &nbsp;= \r
689  geompy.MakeVertex(20., &nbsp;0., \r
690  &nbsp;0.)</p>\r
691 \r
692 <p class="whs1">py &nbsp;= \r
693  geompy.MakeVertex( 0., 20., &nbsp;0.)</p>\r
694 \r
695 <p class="whs1">pz &nbsp;= \r
696  geompy.MakeVertex( 0., &nbsp;0., \r
697  20.)</p>\r
698 \r
699 <p class="whs1">pxyz = geompy.MakeVertex( \r
700  50., 50., 10.)</p>\r
701 \r
702 <p class="whs1">vz &nbsp;= \r
703  geompy.MakeVector(p0, pz)</p>\r
704 \r
705 <p class="whs1">vxy = geompy.MakeVector(px, \r
706  py)</p>\r
707 \r
708 <p class="whs1">vrot1d = geompy.MakeVector(p0, \r
709  pxyz)</p>\r
710 \r
711 <p>&nbsp;&nbsp;</p>\r
712 \r
713 <p># create an arc</p>\r
714 \r
715 <p class="whs1">arc = geompy.MakeArc(py, \r
716  pz, px)</p>\r
717 \r
718 <p>&nbsp;</p>\r
719 \r
720 <p># create a wire</p>\r
721 \r
722 <p class="whs1">wire = geompy.MakeWire([vxy, \r
723  arc])</p>\r
724 \r
725 <p>&nbsp;</p>\r
726 \r
727 <p># create a planar face</p>\r
728 \r
729 <p class="whs1">face = geompy.MakeFace(wire, \r
730  1)</p>\r
731 \r
732 <p>&nbsp;</p>\r
733 \r
734 <p># create a prism</p>\r
735 \r
736 <p class="whs1">prism = geompy.MakePrismVecH(face, \r
737  vz, 20.0)</p>\r
738 \r
739 <p>&nbsp;</p>\r
740 \r
741 <p># rotate the given object around the given axis by the given angle a \r
742  given number of times</p>\r
743 \r
744 <p class="whs1">rot1d = geompy.MultiRotate1D(prism, \r
745  vrot1d, 4)</p>\r
746 \r
747 <p>&nbsp;</p>\r
748 \r
749 <p># rotate the given object around the given axis by the given angle a \r
750  given number of times</p>\r
751 \r
752 <p># and multi-translate the result of each rotation</p>\r
753 \r
754 <p class="whs1">rot2d = geompy.MultiRotate2D(prism, \r
755  vrot1d, 60, 4, 50, 5)</p>\r
756 \r
757 <p>&nbsp;</p>\r
758 \r
759 <p># add objects in the study</p>\r
760 \r
761 <p class="whs1">id_prism = geompy.addToStudy(prism,&quot;Prism&quot;)</p>\r
762 \r
763 <p class="whs1">id_rot1d = geompy.addToStudy(rot1d,&quot;Rotation \r
764  1D&quot;)</p>\r
765 \r
766 <p class="whs1">id_rot2d = geompy.addToStudy(rot2d,&quot;Rotation \r
767  2D&quot;)</p>\r
768 \r
769 <p>&nbsp;</p>\r
770 \r
771 <p># display the prism and the results of fillet operation</p>\r
772 \r
773 <p class="whs1">gg.createAndDisplayGO(id_prism)</p>\r
774 \r
775 <p class="whs1">gg.setDisplayMode(id_prism,1)</p>\r
776 \r
777 <p class="whs1">gg.createAndDisplayGO(id_rot1d)</p>\r
778 \r
779 <p class="whs1">gg.setDisplayMode(id_rot1d,1)</p>\r
780 \r
781 <p class="whs1">gg.createAndDisplayGO(id_rot2d)</p>\r
782 \r
783 <p class="whs1">gg.setDisplayMode(id_rot2d,1) \r
784  </p>\r
785 \r
786 <p class="whs1">&nbsp;</p>\r
787 \r
788 <h3><a name=bookmark2>Fillet</a></h3>\r
789 \r
790 <p class="whs1">import geompy</p>\r
791 \r
792 <p class="whs1">import salome</p>\r
793 \r
794 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
795 \r
796 <p class="whs1">radius &nbsp;= \r
797  10.</p>\r
798 \r
799 <p class="whs1">ShapeTypeEdge = geompy.ShapeType[&quot;EDGE&quot;]</p>\r
800 \r
801 <p class="whs1">&nbsp;</p>\r
802 \r
803 <p># create vertices and vectors</p>\r
804 \r
805 <p class="whs1">p0 &nbsp;= \r
806  geompy.MakeVertex( &nbsp;0., \r
807  &nbsp;&nbsp;0., \r
808  &nbsp;&nbsp;0.)</p>\r
809 \r
810 <p class="whs1">px &nbsp;= \r
811  geompy.MakeVertex(100., &nbsp;&nbsp;0., \r
812  &nbsp;&nbsp;0.)</p>\r
813 \r
814 <p class="whs1">py &nbsp;= \r
815  geompy.MakeVertex( &nbsp;0., \r
816  100., &nbsp;&nbsp;0.)</p>\r
817 \r
818 <p class="whs1">pz &nbsp;= \r
819  geompy.MakeVertex( &nbsp;0., \r
820  &nbsp;&nbsp;0., \r
821  100.)</p>\r
822 \r
823 <p class="whs1">vz &nbsp;= \r
824  geompy.MakeVector(p0, pz)</p>\r
825 \r
826 <p class="whs1">vxy = geompy.MakeVector(px, \r
827  py)</p>\r
828 \r
829 <p>&nbsp;&nbsp;</p>\r
830 \r
831 <p># create an arc</p>\r
832 \r
833 <p class="whs1">arc = geompy.MakeArc(py, \r
834  pz, px)</p>\r
835 \r
836 <p>&nbsp;</p>\r
837 \r
838 <p># create a wire</p>\r
839 \r
840 <p class="whs1">wire = geompy.MakeWire([vxy, \r
841  arc])</p>\r
842 \r
843 <p>&nbsp;</p>\r
844 \r
845 <p># create a planar face</p>\r
846 \r
847 <p class="whs1">face = geompy.MakeFace(wire, \r
848  1)</p>\r
849 \r
850 <p>&nbsp;</p>\r
851 \r
852 <p># create a prism</p>\r
853 \r
854 <p class="whs1">prism = geompy.MakePrismVecH(face, \r
855  vz, 100.0)</p>\r
856 \r
857 <p>&nbsp;</p>\r
858 \r
859 <p># get the list of IDs (IDList) for the fillet</p>\r
860 \r
861 <p class="whs1">prism_edges = geompy.SubShapeAllSorted(prism, \r
862  ShapeTypeEdge)</p>\r
863 \r
864 <p class="whs1">IDlist_e = []</p>\r
865 \r
866 <p class="whs1">IDlist_e.append(geompy.GetSubShapeID(prism, \r
867  prism_edges[0]))</p>\r
868 \r
869 <p class="whs1">IDlist_e.append(geompy.GetSubShapeID(prism, \r
870  prism_edges[1]))</p>\r
871 \r
872 <p class="whs1">IDlist_e.append(geompy.GetSubShapeID(prism, \r
873  prism_edges[2]))</p>\r
874 \r
875 <p>&nbsp;</p>\r
876 \r
877 <p># make a fillet on the specified edges of the given shape</p>\r
878 \r
879 <p class="whs1">fillet = geompy.MakeFillet(prism, \r
880  radius, ShapeTypeEdge, IDlist_e)</p>\r
881 \r
882 <p>&nbsp;</p>\r
883 \r
884 <p># make a fillet on all edges of the given shape</p>\r
885 \r
886 <p class="whs1">filletall = geompy.MakeFilletAll(prism, \r
887  radius)</p>\r
888 \r
889 <p>&nbsp;</p>\r
890 \r
891 <p># add objects in the study</p>\r
892 \r
893 <p class="whs1">id_prism = geompy.addToStudy(prism,&quot;Prism&quot;)</p>\r
894 \r
895 <p class="whs1">id_fillet = geompy.addToStudy(fillet,&quot;Fillet&quot;)</p>\r
896 \r
897 <p class="whs1">id_filletall = geompy.addToStudy(filletall,&quot;Fillet \r
898  all&quot;)</p>\r
899 \r
900 <p>&nbsp;</p>\r
901 \r
902 <p># display the prism and the results of fillet operation</p>\r
903 \r
904 <p class="whs1">gg.createAndDisplayGO(id_prism)</p>\r
905 \r
906 <p class="whs1">gg.setDisplayMode(id_prism,1)</p>\r
907 \r
908 <p class="whs1">gg.createAndDisplayGO(id_fillet)</p>\r
909 \r
910 <p class="whs1">gg.setDisplayMode(id_fillet,1)</p>\r
911 \r
912 <p class="whs1">gg.createAndDisplayGO(id_filletall)</p>\r
913 \r
914 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_filletall,1)</span> \r
915  </p>\r
916 \r
917 <p>&nbsp;</p>\r
918 \r
919 <h3><a name=bookmark3>Chamfer</a></h3>\r
920 \r
921 <p class="whs1">import geompy</p>\r
922 \r
923 <p class="whs1">import salome</p>\r
924 \r
925 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
926 \r
927 <p class="whs1">d1 = 10.</p>\r
928 \r
929 <p class="whs1">d2 = 10.</p>\r
930 \r
931 <p class="whs1">ShapeTypeFace = geompy.ShapeType[&quot;FACE&quot;]</p>\r
932 \r
933 <p>&nbsp;</p>\r
934 \r
935 <p># create vertices and vectors</p>\r
936 \r
937 <p class="whs1">p0 &nbsp;= \r
938  geompy.MakeVertex( &nbsp;0., \r
939  &nbsp;&nbsp;0., \r
940  &nbsp;&nbsp;0.)</p>\r
941 \r
942 <p class="whs1">px &nbsp;= \r
943  geompy.MakeVertex(100., &nbsp;&nbsp;0., \r
944  &nbsp;&nbsp;0.)</p>\r
945 \r
946 <p class="whs1">py &nbsp;= \r
947  geompy.MakeVertex( &nbsp;0., \r
948  100., &nbsp;&nbsp;0.)</p>\r
949 \r
950 <p class="whs1">pz &nbsp;= \r
951  geompy.MakeVertex( &nbsp;0., \r
952  &nbsp;&nbsp;0., \r
953  100.)</p>\r
954 \r
955 <p class="whs1">vz &nbsp;= \r
956  geompy.MakeVector(p0, pz)</p>\r
957 \r
958 <p class="whs1">vxy = geompy.MakeVector(px, \r
959  py)</p>\r
960 \r
961 <p>&nbsp;&nbsp;</p>\r
962 \r
963 <p># create an arc</p>\r
964 \r
965 <p class="whs1">arc = geompy.MakeArc(py, \r
966  pz, px)</p>\r
967 \r
968 <p>&nbsp;</p>\r
969 \r
970 <p># create a wire</p>\r
971 \r
972 <p class="whs1">wire = geompy.MakeWire([vxy, \r
973  arc])</p>\r
974 \r
975 <p>&nbsp;</p>\r
976 \r
977 <p># create a planar face</p>\r
978 \r
979 <p class="whs1">face = geompy.MakeFace(wire, \r
980  1)</p>\r
981 \r
982 <p>&nbsp;</p>\r
983 \r
984 <p># create a prism</p>\r
985 \r
986 <p class="whs1">prism = geompy.MakePrismVecH(face, \r
987  vz, 100.0)</p>\r
988 \r
989 <p>&nbsp;</p>\r
990 \r
991 <p># get the list of IDs (IDList) for the chamfer</p>\r
992 \r
993 <p class="whs1">prism_faces = geompy.SubShapeAllSorted(prism, \r
994  ShapeTypeFace)</p>\r
995 \r
996 <p class="whs1">f_ind_1 = geompy.GetSubShapeID(prism, \r
997  prism_faces[0])</p>\r
998 \r
999 <p class="whs1">f_ind_2 = geompy.GetSubShapeID(prism, \r
1000  prism_faces[1])</p>\r
1001 \r
1002 <p class="whs1">IDlist_f = [f_ind_1, \r
1003  f_ind_2]</p>\r
1004 \r
1005 <p>&nbsp;</p>\r
1006 \r
1007 <p># perform a chamfer on the edges common to the specified faces</p>\r
1008 \r
1009 <p class="whs1">chamfer_e = geompy.MakeChamferEdge(prism, \r
1010  d1, d2, f_ind_1, f_ind_2)</p>\r
1011 \r
1012 <p>&nbsp;</p>\r
1013 \r
1014 <p># perform a chamfer on all edges of the specified faces</p>\r
1015 \r
1016 <p class="whs1">chamfer_f = geompy.MakeChamferFaces(prism, \r
1017  d1, d2, IDlist_f)</p>\r
1018 \r
1019 <p class="whs1">chamfer_f1 = geompy.MakeChamfer(prism, \r
1020  d1, d2, ShapeTypeFace, IDlist_f)</p>\r
1021 \r
1022 <p>&nbsp;</p>\r
1023 \r
1024 <p># perform a symmetric chamfer on all edges of the given shape</p>\r
1025 \r
1026 <p class="whs1">chamfer_all = geompy.MakeChamferAll(prism, \r
1027  d1)</p>\r
1028 \r
1029 <p>&nbsp;</p>\r
1030 \r
1031 <p># add objects in the study</p>\r
1032 \r
1033 <p class="whs1">id_prism = geompy.addToStudy(prism,&quot;Prism&quot;)</p>\r
1034 \r
1035 <p class="whs1">id_chamfer_e = geompy.addToStudy(chamfer_e,&quot;Chamfer \r
1036  edge&quot;)</p>\r
1037 \r
1038 <p class="whs1">id_chamfer_f = geompy.addToStudy(chamfer_f,&quot;Chamfer \r
1039  faces&quot;)</p>\r
1040 \r
1041 <p class="whs1">id_chamfer_f1 = geompy.addToStudy(chamfer_f1,&quot;Chamfer \r
1042  faces 1&quot;)</p>\r
1043 \r
1044 <p class="whs1">id_chamfer_all = geompy.addToStudy(chamfer_all,&quot;Chamfer \r
1045  all&quot;)</p>\r
1046 \r
1047 <p>&nbsp;</p>\r
1048 \r
1049 <p># display the prism and the results of chamfer operation</p>\r
1050 \r
1051 <p class="whs1">gg.createAndDisplayGO(id_prism)</p>\r
1052 \r
1053 <p class="whs1">gg.setDisplayMode(id_prism,1)</p>\r
1054 \r
1055 <p class="whs1">gg.createAndDisplayGO(id_chamfer_e)</p>\r
1056 \r
1057 <p class="whs1">gg.setDisplayMode(id_chamfer_e,1)</p>\r
1058 \r
1059 <p class="whs1">gg.createAndDisplayGO(id_chamfer_f)</p>\r
1060 \r
1061 <p class="whs1">gg.setDisplayMode(id_chamfer_f,1)</p>\r
1062 \r
1063 <p class="whs1">gg.createAndDisplayGO(id_chamfer_f1)</p>\r
1064 \r
1065 <p class="whs1">gg.setDisplayMode(id_chamfer_f1,1)</p>\r
1066 \r
1067 <p class="whs1">gg.createAndDisplayGO(id_chamfer_all)</p>\r
1068 \r
1069 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_chamfer_all,1)</span> \r
1070  </p>\r
1071 \r
1072 <p>&nbsp;</p>\r
1073 \r
1074 <p>&nbsp;</p>\r
1075 \r
1076 <script type="text/javascript" language="javascript1.2">\r
1077 <!--\r
1078 if (window.writeIntopicBar)\r
1079         writeIntopicBar(0);\r
1080 //-->\r
1081 </script>\r
1082 </body>\r
1083 </html>\r