]> SALOME platform Git repositories - modules/visu.git/blob - src/VISU_SWIG/VISU_Example_04.py
Salome HOME
03291662b404505d3ceaf72267bfed5d8479b1e2
[modules/visu.git] / src / VISU_SWIG / VISU_Example_04.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 # Show some results presentations in different 3D and 2D viewers
24 # with different options (view parameters and display modes).
25 # Uses MED files fra.med and TimeStamps.med from ${DATA_DIR}/MedFiles directory.
26 # Pay attention to a viewer title to know its purpose.
27 # This script is equivalent to script VISU_SWIG/visu_view3d.py
28 #
29 import os
30 import time
31 import math
32 import VISU
33 import salome
34 import SALOMEDS
35 from visu_gui import *
36
37 aDelay = 1
38
39 myVisu.SetCurrentStudy(salome.myStudy)
40
41 myViewManager = myVisu.GetViewManager();
42
43 myView = myViewManager.Create3DView();
44 myView.SetTitle("The window will be soon destroyed!")
45 print "myViewManager.Create3DView()"
46 time.sleep(aDelay)
47
48 myView.Maximize()
49 print "myView.Maximize()"
50 time.sleep(aDelay)
51
52 myView.Restore()
53 print "myView.Restore()"
54 time.sleep(aDelay)
55
56 myView.Minimize()
57 print "myView.Minimize()"
58 time.sleep(aDelay)
59
60 myViewManager.Destroy(myView)
61 print "myViewManager.Destroy(myView)"
62 time.sleep(aDelay)
63
64
65 medFile = "fra.med"
66 myFieldName = "VITESSE";
67
68 aMeshName ="LE VOLUME"
69 anEntity = VISU.NODE
70 aTimeStampId = 1
71
72 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
73 myResult = myVisu.ImportFile(medFile)
74
75 myView = myViewManager.Create3DView();
76
77 print "myView.SetBackground(...)"
78 aColor = SALOMEDS.Color(0.0,0.3,1.0)
79 myView.SetBackground(aColor);
80
81 myView.SetTitle("The viewer will display ScalarMap")
82 print "myViewManager.Create3DView()"
83
84 aScalarMap = myVisu.ScalarMapOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
85
86 myView.Display(aScalarMap);
87 print "myView.Display(aScalarMap)"
88 myView.SetFocalPoint([0,0,0]);
89 print "myView.SetFocalPoint(...)"
90 myView.SetParallelScale(2);
91 print "myView.SetParallelScale(...)"
92 myView.FitAll();
93
94 aMax = aScalarMap.GetMax()
95 aMin = aScalarMap.GetMin()
96 aDelta = (aMax - aMin)/2.0
97 aNbColors = aScalarMap.GetNbColors()
98 aNbColors = 64
99 for i in range(2,aNbColors) :
100     aScalarMap.SetNbColors(i)
101     aX = aMin + aDelta*i/aNbColors
102     aY = aMax - aDelta*i/aNbColors
103     aScalarMap.SetRange(aX,aY)
104     myView.Update();
105     time.sleep(aDelay)
106
107 aScalarMap.SetRange(aMin,aMax)
108
109 print "myView.Update()"
110 myView.Update();
111 print "myView.FitAll()"
112 myView.FitAll();
113
114
115 myView = myViewManager.Create3DView();
116 myView.SetTitle("Here we will display CutPlanes")
117
118 print "myView.SetBackground(...)"
119 aColor = SALOMEDS.Color(0.0,0.7,0.0)
120 myView.SetBackground(aColor);
121
122 aCutPlanes = myVisu.CutPlanesOnField(myResult,aMeshName,anEntity,myFieldName,aTimeStampId)
123 print "myVisu.CutPlanesOnField(...)"
124
125 myView.DisplayOnly(aCutPlanes);
126 print "myView.DisplayOnly(aCutPlanes)"
127
128 aPoint = myView.GetPointOfView();
129 aPoint[0] = aPoint[0] + 10;
130 myView.SetPointOfView(aPoint);
131 print "myView.SetPointOfView(...)"
132 myView.ScaleView(VISU.View3D.YAxis,10.0);
133 myView.ScaleView(VISU.View3D.XAxis,3.0);
134 print "myView.ScaleView(...)"
135 time.sleep(aDelay)
136
137 myView.FitAll();
138
139 aNbPlanes = aCutPlanes.GetNbPlanes()
140 aNbPlanes = 30
141 aXAngle = aCutPlanes.GetRotateX()
142 aYAngle = aCutPlanes.GetRotateY()
143 anOrientation = aCutPlanes.GetOrientationType()
144 for i in range(aNbPlanes,1,-1) :
145     aCutPlanes.SetNbPlanes(i)
146     aX = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
147     aY = math.pi/2.0*(aNbPlanes-i)/aNbPlanes
148     aCutPlanes.SetOrientation(anOrientation,aX,aY)
149     myView.Update();
150     time.sleep(aDelay)
151
152 aNbPlanes = 10
153 aCutPlanes.SetOrientation(VISU.CutPlanes.ZX,0,0)
154 for i in range(1,aNbPlanes) :
155     aCutPlanes.SetNbPlanes(i)
156     myView.Update();
157     time.sleep(aDelay)
158
159 myView.SaveViewParams('AAA')
160 print "myView.SaveViewParams('AAA')"
161 time.sleep(aDelay)
162
163 aCutPlanes.SetOrientation(VISU.CutPlanes.XY,0,0)
164 myView.RemoveScale();
165
166 print "myView.Update()"
167 myView.Update();
168 print "myView.FitAll()"
169 myView.FitAll();
170
171
172 myView = myViewManager.Create3DView();
173 print "myViewManager.Create3DView()"
174
175 myView.SetTitle("IsoSurface's viewer")
176
177 print "myView.SetBackground(...)"
178 aColor = SALOMEDS.Color(1.0,0.7,0.0)
179 myView.SetBackground(aColor);
180 time.sleep(aDelay)
181
182 aIsoSurfaces = myVisu.IsoSurfacesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
183
184 myView.DisplayOnly(aIsoSurfaces);
185 myView.FitAll();
186 print "myView.DisplayOnly(aCutPlanes)"
187 time.sleep(aDelay)
188
189 aNbSurfaces = aIsoSurfaces.GetNbSurfaces()
190 aNbSurfaces = 32
191 for i in range(2,aNbSurfaces) :
192     aIsoSurfaces.SetNbSurfaces(i)
193     myView.Update();
194     time.sleep(aDelay)
195
196 aIsoSurfaces.SetNbSurfaces(10)
197
198 print "myView.Update()"
199 myView.Update();
200 print "myView.FitAll()"
201 myView.FitAll();
202
203
204 myView = myViewManager.Create3DView();
205 myView.SetTitle("The viewer for CutLines")
206 print "myViewManager.Create3DView()"
207 time.sleep(aDelay)
208
209 print "myView.SetBackground(...)"
210 aColor = SALOMEDS.Color(0.7,0.7,0.7)
211 myView.SetBackground(aColor);
212 time.sleep(aDelay)
213
214 aCutLines = myVisu.CutLinesOnField(myResult, aMeshName, anEntity, myFieldName, aTimeStampId)
215 aCutLines.SetOrientation(VISU.CutPlanes.ZX,0,0)
216 aCutLines.SetOrientation2(VISU.CutPlanes.YZ,0,0)
217
218 myView.DisplayOnly(aCutLines);
219 myView.FitAll();
220 print "myView.DisplayOnly(aCutLines)"
221 time.sleep(aDelay)
222
223 aSObj = myStudy.FindObjectIOR(aCutLines.GetID())
224 aTable = myVisu.CreateTable( aSObj.GetID() )
225 print "myVisu.CreateTable(...)"
226
227 aTableView = myViewManager.CreateTableView(aTable)
228 aTableView.SetTitle('Changed Title')
229
230 aContainer = myVisu.CreateContainer()
231 print "myVisu.CreateContainer(...)"
232
233 aNbCurve = aTable.GetNbRows() - 1
234 for i in range(2,aNbCurve):
235    aCurve = myVisu.CreateCurve( aTable, 1, i )
236    print i, aCurve
237    aContainer.AddCurve(aCurve)
238
239
240 myView = myViewManager.CreateXYPlot();
241 myView.SetTitle("The viewer for Curves from CutLines")
242 print "myViewManager.CreateXYPlot()"
243 time.sleep(aDelay)
244
245 myView.Display(aContainer)
246
247
248 myView = myViewManager.Create3DView();
249 myView.SetTitle("The viewer for Animation")
250 print "myViewManager.Create3DView()"
251 time.sleep(aDelay)
252
253 medFile = "TimeStamps.med"
254 myFieldName = "vitesse";
255
256 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
257 myResult = myVisu.ImportFile(medFile)
258
259 anAnim = myVisu.CreateAnimation(myView);
260 aSObj = myStudy.FindObjectIOR(myResult.GetID())
261 aSObj = aSObj.FindSubObject(1)[1]
262 aSObj = aSObj.FindSubObject(3)[1]
263 aSObj = aSObj.FindSubObject(2)[1]
264 anAnim.addField(aSObj)
265 anAnim.setPresentationType(0,VISU.TISOSURFACES)
266 print "Generate presentations"
267 anAnim.generatePresentations(0)
268 print "Generate frames"
269 anAnim.generateFrames()
270 print "Start Animation"
271 anAnim.setSpeed(99)
272 anAnim.startAnimation()
273 myView.FitAll()
274 while 1:
275     time.sleep(1+aDelay)
276     if not anAnim.isRunning():
277         anAnim.stopAnimation()
278         break