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