Salome HOME
6e5efbb8a7e731ac349f24851cc58540dc7d773b
[modules/visu.git] / src / VISU_SWIG / VISU_Example_02.py
1 #  -*- coding: iso-8859-1 -*-
2 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
3 #
4 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 #
7 #  This library is free software; you can redistribute it and/or
8 #  modify it under the terms of the GNU Lesser General Public
9 #  License as published by the Free Software Foundation; either
10 #  version 2.1 of the License.
11 #
12 #  This library is distributed in the hope that it will be useful,
13 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 #  Lesser General Public License for more details.
16 #
17 #  You should have received a copy of the GNU Lesser General Public
18 #  License along with this library; if not, write to the Free Software
19 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
20 #
21 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 #
23 # T 2.24: Save/retrieve view parameters.
24 # Uses MED file fra.med from ${DATA_DIR}/MedFiles directory.
25 # This script is equivalent to non-regression test script 003/A3
26 #
27 import salome
28 import visu_gui
29 import SALOMEDS
30 import VISU
31 import os
32 import sys
33
34 medFile = os.getenv("DATA_DIR") + "/MedFiles/fra.med"
35
36 #%====================Stage1: Creating a new study====================%
37
38 print "**** Stage1: Creating a new study "
39
40 print "Creating a new study..................", 
41 myVisu = visu_gui.myVisu
42 myVisu.SetCurrentStudy(salome.myStudy)
43 myViewManager = myVisu.GetViewManager()
44 if myViewManager is None : print "Error"
45 else : print "OK"
46
47 #%====================Stage2: Saving view parameters before import====================%
48
49 print "**** Stage2: Saving view parameters before import "
50
51 myView = myViewManager.Create3DView()
52
53 print "Zooming trihedron.....................",
54 aScale = myView.GetParallelScale()
55 myView.SetParallelScale(aScale*4)
56 print "OK"
57
58 print "Rotating trihedron....................",
59 aPoint = (100,100,100)
60 myView.SetPointOfView(aPoint) 
61 print "OK"
62
63 print "Saving view parameters................",
64 aViewParamsName1 = 'ViewParams:1'
65 aSaveRes = myView.SaveViewParams(aViewParamsName1)
66 if aSaveRes != 1 : print "Error"
67 else : print "OK"
68
69 #%====================Stage3: Import MED file====================%
70
71 print "**** Stage3: Import MED file"
72
73 print 'Importing "fra.med"...................',
74 myResult = myVisu.ImportFile(medFile)
75 if myResult is None : print "Error"
76 else : print "OK"
77
78 print "Creating mesh.........................",
79 myMeshName = 'LE VOLUME'
80 myCellEntity = VISU.CELL
81 mesh = myVisu.MeshOnEntity(myResult,myMeshName,myCellEntity);
82 if mesh is None : print "Error"
83 else : print "OK"
84
85 myView.Maximize()
86 myView.Display(mesh)
87 myView.FitAll()
88
89 #%====================Stage4: Saving view parameters after import====================%
90
91 print "**** Stage4:  Saving view parameters after import"
92
93 print "Creating Scalar Map...................",
94 myFieldName = 'TAUX_DE_VIDE'
95 myNodeEntity = VISU.NODE
96 scalarmap = myVisu.ScalarMapOnField(myResult,myMeshName,myNodeEntity,myFieldName,1);
97 if scalarmap is None : print "Error"
98 else : print "OK"
99 myView.DisplayOnly(scalarmap)
100
101 print "Zooming 3D view.......................",
102 aScale = myView.GetParallelScale()
103 myView.SetParallelScale(aScale*2)
104 print "OK"
105
106 print "Setting view point(LEFT)..............",
107 myView.SetView((VISU.View3D.LEFT))
108 print "OK"
109
110 print "Saving view parameters................",
111 aViewParamsName2 = 'ViewParams:2'
112 aSaveRes = myView.SaveViewParams(aViewParamsName2)
113 if aSaveRes != 1 : print "Error"
114 else : print "OK"
115
116 print "Creating Cut Planes...................",
117 cutplanes = myVisu.CutPlanesOnField(myResult,myMeshName,myNodeEntity,myFieldName,1);
118 if cutplanes is None : print "Error"
119 else : print "OK"
120 cutplanes.SetNbPlanes(4)
121 myView.DisplayOnly(cutplanes)
122
123 print "Setting scaling.......................",
124
125 #Define parameters of scaling:
126 myXParam = 5
127 myYParam = 5
128 myZParam = 1
129
130 myXAxis = VISU.View3D.XAxis
131 myYAxis = VISU.View3D.YAxis
132 myZAxis = VISU.View3D.ZAxis
133
134 myView.ScaleView(myXAxis,myXParam)
135 myView.ScaleView(myYAxis,myYParam)
136 myView.ScaleView(myZAxis,myZParam)
137 print "OK"
138
139 print "Rotating 3d view......................",
140 aPoint = (100,40,0)
141 myView.SetPointOfView(aPoint) 
142 print "OK"
143
144 print "Fit All...............................",
145 myView.FitAll()
146 print "OK"
147
148 print "Saving view parameters................",
149 aViewParamsName3 = 'ViewParams:3'
150 aSaveRes = myView.SaveViewParams(aViewParamsName3)
151 if aSaveRes != 1 : print "Error"
152 else : print "OK"
153
154 #%====================Stage5: Restoring view parameters====================%
155
156 print "**** Stage5: Restoring view parameters"
157
158 print "Restoring first view parameters.......",
159 aRestoreRes = myView.RestoreViewParams(aViewParamsName1)
160 if aRestoreRes != 1 : print "Error"
161 else : print "OK"
162
163 print "Restoring second view parameters......",
164 aRestoreRes = myView.RestoreViewParams(aViewParamsName2)
165 if aRestoreRes != 1 : print "Error"
166 else : print "OK"
167
168 print "Displaing only Scalar Map.............",
169 myView.DisplayOnly(scalarmap)
170 print "OK"
171
172 print "Displaing only Cut Planes.............",
173 myView.DisplayOnly(cutplanes)
174 print "OK"
175
176 print "Restoring third view parameters.......",
177 aRestoreRes = myView.RestoreViewParams(aViewParamsName3)
178 if aRestoreRes != 1 : print "Error"
179 else : print "OK"
180
181 print "Displaing only Mesh...................",
182 myView.DisplayOnly(mesh)
183 print "OK"
184
185 print "Displaing only Scalar Map.............",
186 myView.DisplayOnly(scalarmap)
187 print "OK"
188
189 print "Displaing only Cut Planes.............",
190 myView.DisplayOnly(cutplanes)
191 print "OK"
192
193 #%====================Stage6: Changing of view parameters====================%
194
195 print "**** Stage6: Changing of view parameters"
196
197 print "Remove scaling........................",
198 myView.RemoveScale()
199 print "OK"
200
201 print "Fit All...............................",
202 myView.FitAll()
203 print "OK"
204
205 print "Rotating 3d view......................",
206 aPoint = (0,60,150)
207 myView.SetPointOfView(aPoint) 
208 print "OK"
209
210 print "Resaving first view parameters........",
211 aSaveRes = myView.SaveViewParams(aViewParamsName1)
212 if aSaveRes != 1 : print "Error"
213 else : print "OK"
214
215 print "Restoring third view parameters.......",
216 aRestoreRes = myView.RestoreViewParams(aViewParamsName3)
217 if aRestoreRes != 1 : print "Error"
218 else : print "OK"
219
220 print "Restoring first view parameters.......",
221 aRestoreRes = myView.RestoreViewParams(aViewParamsName1)
222 if aRestoreRes != 1 : print "Error"
223 else : print "OK"
224
225 print "Displaying only Mesh..................",
226 myView.DisplayOnly(mesh)
227 print "OK"
228
229 print "Displaying only Scalar Map............",
230 myView.DisplayOnly(scalarmap)
231 print "OK"
232
233 #%====================Stage7: Saving of created view parameters====================%
234
235 print "**** Stage7: Saving of created view parameters"
236
237 print "Saving study..........................",
238
239 str = os.getenv("TmpDir")
240 if str == None:
241         str = "/tmp"
242
243 file = str+'/VISU_005.hdf'
244
245 salome.myStudyManager.SaveAs(file, salome.myStudy, 0)
246 study_id = salome.myStudy._get_StudyId()
247 print "OK"
248
249 file_new = str+'/VISU_005_new.hdf'
250
251 if not sys.platform == "win32":
252   command = "mv " + file + " " + file_new
253 else:
254   command = "move /Y " + file + " " + file_new
255   
256 os.system(command)
257 file = file_new
258
259 # Opening a study tempoparily commented due to a problem
260 # with python initialization. To be restored after bug 10000 fixing.
261
262 #print "Opening just saved study..............",
263 #
264 #openedStudy = salome.myStudyManager.Open(file)]
265 openedStudy = salome.myStudy # temporarily
266 #myVisu.SetCurrentStudy(openedStudy)
267 myViewManager = myVisu.GetViewManager()
268 myView1 = myViewManager.Create3DView()
269 if myView1 is None : print "Error"
270 else : print "OK"
271
272 import time
273 time.sleep(1)
274
275 print "Restoring first view parameters.......",
276 aRestoreRes = myView1.RestoreViewParams(aViewParamsName1)
277 if aRestoreRes != 1 : print "Error"
278 else : print "OK"
279
280 Builder = openedStudy.NewBuilder()
281 #SCom = openedStudy.FindComponent("VISU")
282 #Builder.LoadWith(SCom ,myVisu)
283
284 print "Displaying Scalar Map.................",
285 SObj = openedStudy.FindObject('ScalarMap')
286 scalarmap1 = visu_gui.visu.SObjectToObject(SObj)
287 if scalarmap1 is None : print "Error"
288 else : print "OK"
289 myView1.DisplayOnly(scalarmap1)
290
291 print "Displaying Cut Planes.................",
292 SObj = openedStudy.FindObject('CutPlanes')
293 cutplanes1 = visu_gui.visu.SObjectToObject(SObj)
294 if cutplanes1 is None : print "Error"
295 else : print "OK"
296 myView1.DisplayOnly(cutplanes1)
297
298 print "Restoring second view parameters......",
299 aRestoreRes = myView1.RestoreViewParams(aViewParamsName2)
300 if aRestoreRes != 1 : print "Error"
301 else : print "OK"
302
303 print "Displaying Scalar Map.................",
304 myView1.DisplayOnly(scalarmap1)
305 print "OK"
306
307 print "Restoring third view parameters.......",
308 aRestoreRes = myView1.RestoreViewParams(aViewParamsName3)
309 if aRestoreRes != 1 : print "Error"
310 else : print "OK"
311
312 print "Displaying Cut Planes.................",
313 myView1.DisplayOnly(cutplanes1)
314 print "OK"
315
316 #%====================Stage8: Changing of saved session====================%
317
318 print "**** Stage8: Changing of saved session"
319
320 print "Deleting ViewParams:3,1,2.............",
321 SObj = openedStudy.FindObject(aViewParamsName3)
322 Builder.RemoveObject(SObj)
323 SObj = openedStudy.FindObject(aViewParamsName1)
324 Builder.RemoveObject(SObj)
325 SObj = openedStudy.FindObject(aViewParamsName2)
326 Builder.RemoveObject(SObj)
327 print "OK"
328
329 SObjList2 = openedStudy.FindObjectByName(aViewParamsName1, "VISU")
330 print "FindObjectByName(aViewParamsName1, VISU) returned ", len(SObjList2), " objects"
331
332 print "Zooming trihedron.....................",
333 aScale = myView.GetParallelScale()
334 myView1.SetParallelScale(aScale*2)
335 myView1.Update()
336 print "OK"
337
338 print "Rotating trihedron....................",
339 aPoint = (200,40,-40)
340 myView1.SetPointOfView(aPoint) 
341 print "OK"
342
343 print "Saving view parameters................",
344 aSaveRes = myView1.SaveViewParams(aViewParamsName1)
345 if aSaveRes != 1 : print "Error"
346 else : print "OK"
347
348 print "Renaming ViewParams:1.................",
349 SObj = openedStudy.FindObject(aViewParamsName1)
350 SObj.Name = "New_view"
351 print "OK"
352
353 print "Setting scaling.......................",
354 #Define parameters of scaling:
355 myXParam = 4
356 myYParam = 4
357 myZParam = 8
358
359 myXAxis = VISU.View3D.XAxis
360 myYAxis = VISU.View3D.YAxis
361 myZAxis = VISU.View3D.ZAxis
362
363 myView1.ScaleView(myXAxis,myXParam)
364 myView1.ScaleView(myYAxis,myYParam)
365 myView1.ScaleView(myZAxis,myZParam)
366 print "OK"
367
368 myView1.FitAll()
369
370 print "Saving view parameters................",
371 aSaveRes = myView1.SaveViewParams(aViewParamsName2)
372 if aSaveRes != 1 : print "Error"
373 else : print "OK"
374
375 print "Restoring first view parameters.......",
376 aRestoreRes = myView1.RestoreViewParams(aViewParamsName1)
377 if aSaveRes != 1 : print "Error"
378 else : print "OK"
379
380 print "Restoring second view parameters......",
381 aRestoreRes = myView1.RestoreViewParams(aViewParamsName2)
382 if aRestoreRes != 1 : print "Error"
383 else : print "OK"
384
385 # Remove the study file
386 if not sys.platform == "win32":
387   command = "rm -r " + file
388 else:
389   command = "del /F " + file
390 os.system(command)