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