1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
4 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
21 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
24 # VISU VISU_SWIG : binding of C++ implementation and Python
25 # File : visu_apply_properties.py
34 from visu_gui import *
38 myVisu.SetCurrentStudy(salome.myStudy)
40 myViewManager = myVisu.GetViewManager();
42 myView = myViewManager.Create3DView();
43 myView.SetTitle("The viewer for Animation")
44 print "myViewManager.Create3DView()"
47 medFile = "TimeStamps.med"
48 myFieldName = "temperature"
50 medFile = os.getenv('DATA_DIR') + '/MedFiles/' + medFile
51 myResult = myVisu.ImportFile(medFile)
53 anAnim = myVisu.CreateAnimation(myView);
55 aSObj = myStudy.FindObjectIOR(myResult.GetID())
56 aSObj = aSObj.FindSubObject(1)[1]
57 aSObj = aSObj.FindSubObject(3)[1]
58 aSObj = aSObj.FindSubObject(1)[1]
59 print "addField 1 : ", anAnim.addField(aSObj)
61 print "Generate presentations for ", anAnim.getNbFields(), " fields"
62 for i in range(0,anAnim.getNbFields()):
63 anAnim.setPresentationType(i,VISU.TPLOT3D)
64 anAnim.generatePresentations(i)
66 print "Generate frames"
67 anAnim.generateFrames()
69 print "Start Animation"
71 anAnim.startAnimation()
76 if not anAnim.isRunning():
77 anAnim.stopAnimation()
80 anAnim.publishInStudy()
81 anAnim.saveAnimation()
83 for i in range(0,anAnim.getNbFields()):
84 aPrs = anAnim.getPresentation(i,0)
85 aPlot3D = aPrs._narrow(VISU.Plot3D)
88 aNbLabels = aPlot3D.GetLabels()
89 aPlot3D.SetLabels(aNbLabels+3)
91 aWidth = aPlot3D.GetWidth()
92 aHeight = aPlot3D.GetHeight()
93 aPlot3D.SetSize(aWidth+0.07,aHeight+0.07)
95 print "Apply properties for all time stamps of ", i, " field."
97 anAnim.ApplyProperties(i,aPlot3D)
98 except SALOME.SALOME_Exception, inst:
99 msg = "SALOME.SALOME_Exception caught, see details:"
100 msg+="\n******* text:\t" + inst.details.text
101 msg+="\n******* type:\t" + str(inst.details.type)
102 msg+="\n******* where:\t" + inst.details.sourceFile + ":" + \
103 str(inst.details.lineNumber)
105 raise RuntimeError, "There are some errors were occured... For more info see ERRORs above..."
107 print "Generate frames"
108 anAnim.generateFrames()
110 print "Start Animation"
111 anAnim.startAnimation()
116 if not anAnim.isRunning():
117 anAnim.stopAnimation()
120 anAnim.publishInStudy()
121 anAnim.saveAnimation()
124 print "The number of fields in animation after clearFields method is", anAnim.getNbFields()