Salome HOME
Merge from OCC_development_generic_2006
[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 -->\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("GEOM module\nTUI Scripts\nTransformation\nBlocks 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>Blocks Operations</h1>\r
74 \r
75 <h3><a name=bookmark4>Multi Transformation</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 vertices</p>\r
86 \r
87 <p class="whs1">p_25_25_50 = geompy.MakeVertex(25., \r
88  25., 50.)</p>\r
89 \r
90 <p class="whs1">p_50_25_25 = geompy.MakeVertex(50., \r
91  25., 25.)</p>\r
92 \r
93 <p class="whs1">p_25_50_25 = geompy.MakeVertex(25., \r
94  50., 25.)</p>\r
95 \r
96 <p class="whs1">box = geompy.MakeBoxDXDYDZ(50, \r
97  50, 50)</p>\r
98 \r
99 <p class="whs1">top_face = geompy.GetFaceNearPoint(box, \r
100  p_25_25_50)</p>\r
101 \r
102 <p class="whs1">yz_face = geompy.GetFaceNearPoint(box, \r
103  p_50_25_25)</p>\r
104 \r
105 <p class="whs1">xz_face = geompy.GetFaceNearPoint(box, \r
106  p_25_50_25)</p>\r
107 \r
108 <p class="whs1">top_face_ind = geompy.LocalOp.GetSubShapeIndex(box, \r
109  top_face)</p>\r
110 \r
111 <p class="whs1">yz_face_ind = geompy.LocalOp.GetSubShapeIndex(box, \r
112  yz_face)</p>\r
113 \r
114 <p class="whs1">xz_face_ind = geompy.LocalOp.GetSubShapeIndex(box, \r
115  xz_face)</p>\r
116 \r
117 <p>&nbsp;</p>\r
118 \r
119 <p># Multi-transformate block and glue the result</p>\r
120 \r
121 <p class="whs1">box_tr1 = geompy.MakeMultiTransformation1D(box, \r
122  yz_face_ind, top_face_ind, 3)</p>\r
123 \r
124 <p class="whs1">box_tr2 = geompy.MakeMultiTransformation2D(box, \r
125  xz_face_ind, yz_face_ind, 3, top_face_ind, 0, 2)</p>\r
126 \r
127 <p>&nbsp;</p>\r
128 \r
129 <p># add objects in the study</p>\r
130 \r
131 <p class="whs1">id_box = geompy.addToStudy(box, \r
132  &quot;Box&quot;)</p>\r
133 \r
134 <p class="whs1">id_box_tr1 = geompy.addToStudy(box_tr1, \r
135  &quot;Multi-transformed Block 1D&quot;)</p>\r
136 \r
137 <p class="whs1">id_box_tr2 = geompy.addToStudy(box_tr2, \r
138  &quot;Multi-transformed Block 2D&quot;)</p>\r
139 \r
140 <p>&nbsp;</p>\r
141 \r
142 <p># display the results</p>\r
143 \r
144 <p class="whs1">gg.createAndDisplayGO(id_box)</p>\r
145 \r
146 <p class="whs1">gg.setDisplayMode(id_box,1)</p>\r
147 \r
148 <p class="whs1">gg.createAndDisplayGO(id_box_tr1)</p>\r
149 \r
150 <p><span style="font-family: 'Lucida Console', monospace;">gg.createAndDisplayGO(id_box_tr2)</span> \r
151  </p>\r
152 \r
153 <p>&nbsp;</p>\r
154 \r
155 <h3><a name=bookmark5>Explode on Blocks</a></h3>\r
156 \r
157 <p class="whs1">import geompy</p>\r
158 \r
159 <p class="whs1">import salome</p>\r
160 \r
161 <p class="whs1">gg = salome.ImportComponentGUI(&quot;GEOM&quot;)</p>\r
162 \r
163 <p>&nbsp;</p>\r
164 \r
165 <p># create a box and a sphere</p>\r
166 \r
167 <p class="whs1">box = geompy.MakeBoxDXDYDZ(200, \r
168  200, 200)</p>\r
169 \r
170 <p class="whs1">sphere = geompy.MakeSphereR(100)</p>\r
171 \r
172 <p class="whs1">&nbsp;</p>\r
173 \r
174 <p># make a compound</p>\r
175 \r
176 <p class="whs1">compound = geompy.MakeCompound([box, \r
177  sphere])</p>\r
178 \r
179 <p>&nbsp;</p>\r
180 \r
181 <p># get all the blocks, contained in the given compound</p>\r
182 \r
183 <p class="whs1">make_block_explode \r
184  = geompy.MakeBlockExplode(compound, 1, 1)</p>\r
185 \r
186 <p>&nbsp;</p>\r
187 \r
188 <p># add objects in the study</p>\r
189 \r
190 <p class="whs1">id_compound = geompy.addToStudy(compound, \r
191  &quot;Compound&quot;)</p>\r
192 \r
193 <p class="whs1">id_make_block_explode \r
194  = geompy.addToStudy(make_block_explode[0], &quot;MakeBlockExplode&quot;)</p>\r
195 \r
196 <p>&nbsp;</p>\r
197 \r
198 <p># display the results</p>\r
199 \r
200 <p class="whs1">gg.createAndDisplayGO(id_compound)</p>\r
201 \r
202 <p class="whs1">gg.createAndDisplayGO(id_make_block_explode)</p>\r
203 \r
204 <p><span style="font-family: 'Lucida Console', monospace;">gg.setDisplayMode(id_make_block_explode,1)</span> \r
205  </p>\r
206 \r
207 <p>&nbsp;</p>\r
208 \r
209 <h3><a name=bookmark6>Propagate</a></h3>\r
210 \r
211 <p class="whs1">import geompy</p>\r
212 \r
213 <p class="whs1">import salome</p>\r
214 \r
215 <p>&nbsp;</p>\r
216 \r
217 <p># create a box and a sphere</p>\r
218 \r
219 <p class="whs1">box = geompy.MakeBoxDXDYDZ(200, \r
220  200, 200)</p>\r
221 \r
222 <p>&nbsp;</p>\r
223 \r
224 <p># check and improve</p>\r
225 \r
226 <p class="whs1">check_box = geompy.CheckAndImprove(box)</p>\r
227 \r
228 <p>&nbsp;&nbsp;</p>\r
229 \r
230 <p># build all possible propagation groups</p>\r
231 \r
232 <p class="whs1">listChains = geompy.Propagate(check_box)</p>\r
233 \r
234 <p>&nbsp;</p>\r
235 \r
236 <p># add objects in the study</p>\r
237 \r
238 <p class="whs1">geompy.addToStudy(check_box, \r
239  &quot;Box&quot;)</p>\r
240 \r
241 <p class="whs1">for chain in listChains:</p>\r
242 \r
243 <p class="whs1">&nbsp;&nbsp;&nbsp;&nbsp;geompy.addToStudyInFather(check_box, \r
244  chain, &quot;propagation chain&quot;)</p>\r
245 \r
246 <p><span style="font-family: 'Lucida Console', monospace;">salome.sg.updateObjBrowser(1)</span> \r
247  </p>\r
248 \r
249 <p>&nbsp;</p>\r
250 \r
251 <script type="text/javascript" language="javascript1.2">\r
252 <!--\r
253 if (window.writeIntopicBar)\r
254         writeIntopicBar(0);\r
255 //-->\r
256 </script>\r
257 </body>\r
258 </html>\r