1 # Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 # This library is free software; you can redistribute it and/or
7 # modify it under the terms of the GNU Lesser General Public
8 # License as published by the Free Software Foundation; either
9 # version 2.1 of the License.
11 # This library is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 # Lesser General Public License for more details.
16 # You should have received a copy of the GNU Lesser General Public
17 # License along with this library; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 # T 2.24: Save/retrieve view parameters.
23 # Uses MED file fra.med from ${DATA_DIR}/MedFiles directory.
24 # This script is equivalent to non-regression test script 003/A3
33 medFile = os.getenv("DATA_DIR") + "/MedFiles/fra.med"
35 #%====================Stage1: Creating a new study====================%
37 print "**** Stage1: Creating a new study "
39 print "Creating a new study..................",
40 myVisu = visu_gui.myVisu
41 myVisu.SetCurrentStudy(salome.myStudy)
42 myViewManager = myVisu.GetViewManager()
43 if myViewManager is None : print "Error"
46 #%====================Stage2: Saving view parameters before import====================%
48 print "**** Stage2: Saving view parameters before import "
50 myView = myViewManager.Create3DView()
52 print "Zooming trihedron.....................",
53 aScale = myView.GetParallelScale()
54 myView.SetParallelScale(aScale*4)
57 print "Rotating trihedron....................",
58 aPoint = (100,100,100)
59 myView.SetPointOfView(aPoint)
62 print "Saving view parameters................",
63 aViewParamsName1 = 'ViewParams:1'
64 aSaveRes = myView.SaveViewParams(aViewParamsName1)
65 if aSaveRes != 1 : print "Error"
68 #%====================Stage3: Import MED file====================%
70 print "**** Stage3: Import MED file"
72 print 'Importing "fra.med"...................',
73 myResult = myVisu.ImportFile(medFile)
74 if myResult is None : print "Error"
77 print "Creating mesh.........................",
78 myMeshName = 'LE VOLUME'
79 myCellEntity = VISU.CELL
80 mesh = myVisu.MeshOnEntity(myResult,myMeshName,myCellEntity);
81 if mesh is None : print "Error"
88 #%====================Stage4: Saving view parameters after import====================%
90 print "**** Stage4: Saving view parameters after import"
92 print "Creating Scalar Map...................",
93 myFieldName = 'TAUX_DE_VIDE'
94 myNodeEntity = VISU.NODE
95 scalarmap = myVisu.ScalarMapOnField(myResult,myMeshName,myNodeEntity,myFieldName,1);
96 if scalarmap is None : print "Error"
98 myView.DisplayOnly(scalarmap)
100 print "Zooming 3D view.......................",
101 aScale = myView.GetParallelScale()
102 myView.SetParallelScale(aScale*2)
105 print "Setting view point(LEFT)..............",
106 myView.SetView((VISU.View3D.LEFT))
109 print "Saving view parameters................",
110 aViewParamsName2 = 'ViewParams:2'
111 aSaveRes = myView.SaveViewParams(aViewParamsName2)
112 if aSaveRes != 1 : print "Error"
115 print "Creating Cut Planes...................",
116 cutplanes = myVisu.CutPlanesOnField(myResult,myMeshName,myNodeEntity,myFieldName,1);
117 if cutplanes is None : print "Error"
119 cutplanes.SetNbPlanes(4)
120 myView.DisplayOnly(cutplanes)
122 print "Setting scaling.......................",
124 #Define parameters of scaling:
129 myXAxis = VISU.View3D.XAxis
130 myYAxis = VISU.View3D.YAxis
131 myZAxis = VISU.View3D.ZAxis
133 myView.ScaleView(myXAxis,myXParam)
134 myView.ScaleView(myYAxis,myYParam)
135 myView.ScaleView(myZAxis,myZParam)
138 print "Rotating 3d view......................",
140 myView.SetPointOfView(aPoint)
143 print "Fit All...............................",
147 print "Saving view parameters................",
148 aViewParamsName3 = 'ViewParams:3'
149 aSaveRes = myView.SaveViewParams(aViewParamsName3)
150 if aSaveRes != 1 : print "Error"
153 #%====================Stage5: Restoring view parameters====================%
155 print "**** Stage5: Restoring view parameters"
157 print "Restoring first view parameters.......",
158 aRestoreRes = myView.RestoreViewParams(aViewParamsName1)
159 if aRestoreRes != 1 : print "Error"
162 print "Restoring second view parameters......",
163 aRestoreRes = myView.RestoreViewParams(aViewParamsName2)
164 if aRestoreRes != 1 : print "Error"
167 print "Displaing only Scalar Map.............",
168 myView.DisplayOnly(scalarmap)
171 print "Displaing only Cut Planes.............",
172 myView.DisplayOnly(cutplanes)
175 print "Restoring third view parameters.......",
176 aRestoreRes = myView.RestoreViewParams(aViewParamsName3)
177 if aRestoreRes != 1 : print "Error"
180 print "Displaing only Mesh...................",
181 myView.DisplayOnly(mesh)
184 print "Displaing only Scalar Map.............",
185 myView.DisplayOnly(scalarmap)
188 print "Displaing only Cut Planes.............",
189 myView.DisplayOnly(cutplanes)
192 #%====================Stage6: Changing of view parameters====================%
194 print "**** Stage6: Changing of view parameters"
196 print "Remove scaling........................",
200 print "Fit All...............................",
204 print "Rotating 3d view......................",
206 myView.SetPointOfView(aPoint)
209 print "Resaving first view parameters........",
210 aSaveRes = myView.SaveViewParams(aViewParamsName1)
211 if aSaveRes != 1 : print "Error"
214 print "Restoring third view parameters.......",
215 aRestoreRes = myView.RestoreViewParams(aViewParamsName3)
216 if aRestoreRes != 1 : print "Error"
219 print "Restoring first view parameters.......",
220 aRestoreRes = myView.RestoreViewParams(aViewParamsName1)
221 if aRestoreRes != 1 : print "Error"
224 print "Displaying only Mesh..................",
225 myView.DisplayOnly(mesh)
228 print "Displaying only Scalar Map............",
229 myView.DisplayOnly(scalarmap)
232 #%====================Stage7: Saving of created view parameters====================%
234 print "**** Stage7: Saving of created view parameters"
236 print "Saving study..........................",
238 str = os.getenv("TmpDir")
242 file = str+'/VISU_005.hdf'
244 salome.myStudyManager.SaveAs(file, salome.myStudy, 0)
245 study_id = salome.myStudy._get_StudyId()
248 file_new = str+'/VISU_005_new.hdf'
250 if not sys.platform == "win32":
251 command = "mv " + file + " " + file_new
253 command = "move /Y " + file + " " + file_new
258 # Opening a study tempoparily commented due to a problem
259 # with python initialization. To be restored after bug 10000 fixing.
261 #print "Opening just saved study..............",
263 #openedStudy = salome.myStudyManager.Open(file)]
264 openedStudy = salome.myStudy # temporarily
265 #myVisu.SetCurrentStudy(openedStudy)
266 myViewManager = myVisu.GetViewManager()
267 myView1 = myViewManager.Create3DView()
268 if myView1 is None : print "Error"
274 print "Restoring first view parameters.......",
275 aRestoreRes = myView1.RestoreViewParams(aViewParamsName1)
276 if aRestoreRes != 1 : print "Error"
279 Builder = openedStudy.NewBuilder()
280 #SCom = openedStudy.FindComponent("VISU")
281 #Builder.LoadWith(SCom ,myVisu)
283 print "Displaying Scalar Map.................",
284 SObj = openedStudy.FindObject('ScalarMap')
285 scalarmap1 = visu_gui.visu.SObjectToObject(SObj)
286 if scalarmap1 is None : print "Error"
288 myView1.DisplayOnly(scalarmap1)
290 print "Displaying Cut Planes.................",
291 SObj = openedStudy.FindObject('CutPlanes')
292 cutplanes1 = visu_gui.visu.SObjectToObject(SObj)
293 if cutplanes1 is None : print "Error"
295 myView1.DisplayOnly(cutplanes1)
297 print "Restoring second view parameters......",
298 aRestoreRes = myView1.RestoreViewParams(aViewParamsName2)
299 if aRestoreRes != 1 : print "Error"
302 print "Displaying Scalar Map.................",
303 myView1.DisplayOnly(scalarmap1)
306 print "Restoring third view parameters.......",
307 aRestoreRes = myView1.RestoreViewParams(aViewParamsName3)
308 if aRestoreRes != 1 : print "Error"
311 print "Displaying Cut Planes.................",
312 myView1.DisplayOnly(cutplanes1)
315 #%====================Stage8: Changing of saved session====================%
317 print "**** Stage8: Changing of saved session"
319 print "Deleting ViewParams:3,1,2.............",
320 SObj = openedStudy.FindObject(aViewParamsName3)
321 Builder.RemoveObject(SObj)
322 SObj = openedStudy.FindObject(aViewParamsName1)
323 Builder.RemoveObject(SObj)
324 SObj = openedStudy.FindObject(aViewParamsName2)
325 Builder.RemoveObject(SObj)
328 SObjList2 = openedStudy.FindObjectByName(aViewParamsName1, "VISU")
329 print "FindObjectByName(aViewParamsName1, VISU) returned ", len(SObjList2), " objects"
331 print "Zooming trihedron.....................",
332 aScale = myView.GetParallelScale()
333 myView1.SetParallelScale(aScale*2)
337 print "Rotating trihedron....................",
338 aPoint = (200,40,-40)
339 myView1.SetPointOfView(aPoint)
342 print "Saving view parameters................",
343 aSaveRes = myView1.SaveViewParams(aViewParamsName1)
344 if aSaveRes != 1 : print "Error"
347 print "Renaming ViewParams:1.................",
348 SObj = openedStudy.FindObject(aViewParamsName1)
349 SObj.Name = "New_view"
352 print "Setting scaling.......................",
353 #Define parameters of scaling:
358 myXAxis = VISU.View3D.XAxis
359 myYAxis = VISU.View3D.YAxis
360 myZAxis = VISU.View3D.ZAxis
362 myView1.ScaleView(myXAxis,myXParam)
363 myView1.ScaleView(myYAxis,myYParam)
364 myView1.ScaleView(myZAxis,myZParam)
369 print "Saving view parameters................",
370 aSaveRes = myView1.SaveViewParams(aViewParamsName2)
371 if aSaveRes != 1 : print "Error"
374 print "Restoring first view parameters.......",
375 aRestoreRes = myView1.RestoreViewParams(aViewParamsName1)
376 if aSaveRes != 1 : print "Error"
379 print "Restoring second view parameters......",
380 aRestoreRes = myView1.RestoreViewParams(aViewParamsName2)
381 if aRestoreRes != 1 : print "Error"
384 # Remove the study file
385 if not sys.platform == "win32":
386 command = "rm -r " + file
388 command = "del /F " + file