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