Salome HOME
PAL12557: Documentation for scripts is not up to date.
[modules/geom.git] / doc / salome / gui / GEOM / blocks_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>Blocks 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\nBlocks 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>Blocks Operations</h1>\r
80 \r
81 <h3><a name=bookmark4>Multi Transformation</a></h3>\r
82 \r
83 <p class="whs1"><span style="font-family: 'Lucida Console', monospace;">import \r
84  geompy</span></p>\r
85 \r
86 <p class="whs1">import salome</p>\r
87 \r
88 <p class="whs1">&nbsp;</p>\r
89 \r
90 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
91 \r
92 <p class="whs1">&nbsp;</p>\r
93 \r
94 <p class="whs2"># create vertices</p>\r
95 \r
96 <p class="whs1">p_25_25_50 = geompy.MakeVertex(25., \r
97  25., 50.)</p>\r
98 \r
99 <p class="whs1">p_50_25_25 = geompy.MakeVertex(50., \r
100  25., 25.)</p>\r
101 \r
102 <p class="whs1">p_25_50_25 = geompy.MakeVertex(25., \r
103  50., 25.)</p>\r
104 \r
105 <p class="whs1">&nbsp;</p>\r
106 \r
107 <p class="whs1">box = geompy.MakeBoxDXDYDZ(50, \r
108  50, 50)</p>\r
109 \r
110 <p class="whs1">&nbsp;</p>\r
111 \r
112 <p class="whs1">top_face = geompy.GetFaceNearPoint(box, \r
113  p_25_25_50)</p>\r
114 \r
115 <p class="whs1">yz_face = geompy.GetFaceNearPoint(box, \r
116  p_50_25_25)</p>\r
117 \r
118 <p class="whs1">xz_face = geompy.GetFaceNearPoint(box, \r
119  p_25_50_25)</p>\r
120 \r
121 <p class="whs1">&nbsp;</p>\r
122 \r
123 <p class="whs1">top_face_ind = geompy.GetSubShapeID(box, \r
124  top_face)</p>\r
125 \r
126 <p class="whs1">yz_face_ind = geompy.GetSubShapeID(box, \r
127  yz_face)</p>\r
128 \r
129 <p class="whs1">xz_face_ind = geompy.GetSubShapeID(box, \r
130  xz_face)</p>\r
131 \r
132 <p class="whs1">&nbsp;</p>\r
133 \r
134 <p class="whs2"># Multi-transformate \r
135  block and glue the result</p>\r
136 \r
137 <p class="whs1">box_tr1 = geompy.MakeMultiTransformation1D(box, \r
138  yz_face_ind, top_face_ind, 3)</p>\r
139 \r
140 <p class="whs1">box_tr2 = geompy.MakeMultiTransformation2D(box, \r
141  xz_face_ind, yz_face_ind, 3, top_face_ind, 0, 2)</p>\r
142 \r
143 <p class="whs1">&nbsp;</p>\r
144 \r
145 <p class="whs2"># add objects in the \r
146  study</p>\r
147 \r
148 <p class="whs1">id_box = geompy.addToStudy(box, \r
149  &quot;Box&quot;)</p>\r
150 \r
151 <p class="whs1">id_box_tr1 = geompy.addToStudy(box_tr1, \r
152  &quot;Multi-transformed Block 1D&quot;)</p>\r
153 \r
154 <p class="whs1">id_box_tr2 = geompy.addToStudy(box_tr2, \r
155  &quot;Multi-transformed Block 2D&quot;)</p>\r
156 \r
157 <p class="whs1">&nbsp;</p>\r
158 \r
159 <p class="whs2"># display the results</p>\r
160 \r
161 <p class="whs1">gg.createAndDisplayGO(id_box)</p>\r
162 \r
163 <p class="whs1">gg.setDisplayMode(id_box,1)</p>\r
164 \r
165 <p class="whs1">gg.createAndDisplayGO(id_box_tr1)</p>\r
166 \r
167 <p class="whs1">gg.createAndDisplayGO(id_box_tr2) \r
168  </p>\r
169 \r
170 <p class="whs1">&nbsp;</p>\r
171 \r
172 <h3><a name=bookmark5>Explode on Blocks</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">&nbsp;</p>\r
179 \r
180 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
181 \r
182 <p class="whs1">&nbsp;</p>\r
183 \r
184 <p class="whs2"># create a box and a \r
185  sphere</p>\r
186 \r
187 <p class="whs1">box = geompy.MakeBoxDXDYDZ(200, \r
188  200, 200)</p>\r
189 \r
190 <p class="whs1">sphere = geompy.MakeSphereR(100)</p>\r
191 \r
192 <p class="whs1">&nbsp;</p>\r
193 \r
194 <p class="whs2"># make a compound</p>\r
195 \r
196 <p class="whs1">compound = geompy.MakeCompound([box, \r
197  sphere])</p>\r
198 \r
199 <p class="whs2">&nbsp;</p>\r
200 \r
201 <p class="whs2"># get all the blocks \r
202  of the given compound, by criteria: min_nb_faces &lt;= nb. of faces &lt;= \r
203  max_nb_faces</p>\r
204 \r
205 <p class="whs1">min_nb_faces = 6</p>\r
206 \r
207 <p class="whs1">max_nb_faces = 6</p>\r
208 \r
209 <p class="whs1">make_block_explode \r
210  = geompy.MakeBlockExplode(compound, min_nb_faces, max_nb_faces)</p>\r
211 \r
212 <p class="whs1">&nbsp;</p>\r
213 \r
214 <p class="whs2"># add objects in the \r
215  study</p>\r
216 \r
217 <p class="whs1">id_compound = geompy.addToStudy(compound, \r
218  &quot;Compound&quot;)</p>\r
219 \r
220 <p class="whs1">id_make_block_explode \r
221  = geompy.addToStudyInFather(compound, make_block_explode[0], &quot;MakeBlockExplode&quot;)</p>\r
222 \r
223 <p class="whs1">&nbsp;</p>\r
224 \r
225 <p class="whs2"># display the results</p>\r
226 \r
227 <p class="whs1">gg.createAndDisplayGO(id_compound)</p>\r
228 \r
229 <p class="whs1">gg.createAndDisplayGO(id_make_block_explode)</p>\r
230 \r
231 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_make_block_explode,1)</span> \r
232  </p>\r
233 \r
234 <p>&nbsp;</p>\r
235 \r
236 <h3><a name=bookmark6>Propagate</a></h3>\r
237 \r
238 <p class="whs1">import geompy</p>\r
239 \r
240 <p class="whs1">import salome</p>\r
241 \r
242 <p class="whs1">&nbsp;</p>\r
243 \r
244 <p class="whs2"># create a box</p>\r
245 \r
246 <p class="whs1">box = geompy.MakeBoxDXDYDZ(200, \r
247  200, 200)</p>\r
248 \r
249 <p class="whs1">&nbsp;</p>\r
250 \r
251 <p class="whs2"># build all possible \r
252  propagation groups</p>\r
253 \r
254 <p class="whs1">listChains = geompy.Propagate(check_box)</p>\r
255 \r
256 <p class="whs1">&nbsp;</p>\r
257 \r
258 <p class="whs2"># add objects in the \r
259  study</p>\r
260 \r
261 <p class="whs1">geompy.addToStudy(check_box, \r
262  &quot;Box&quot;)</p>\r
263 \r
264 <p class="whs1">ii = 1</p>\r
265 \r
266 <p class="whs1">for chain in listChains:</p>\r
267 \r
268 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudyInFather(check_box, \r
269  chain, &quot;propagation chain &quot; + `ii`)</p>\r
270 \r
271 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;ii \r
272  = ii + 1</p>\r
273 \r
274 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;pass</p>\r
275 \r
276 <p>&nbsp;</p>\r
277 \r
278 <p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
279  </p>\r
280 \r
281 <script type="text/javascript" language="javascript1.2">\r
282 <!--\r
283 if (window.writeIntopicBar)\r
284         writeIntopicBar(0);\r
285 //-->\r
286 </script>\r
287 </body>\r
288 </html>\r