1 # -*- coding: iso-8859-1 -*-
2 # Copyright (C) 2007-2010 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
25 print "Perform quick test of the application by loading of the GEOM, SMESH, VISU, MED"
26 print "components and doing some operation within the components."
33 import SALOME_ModuleCatalog
37 print "======================================================================"
38 print " %d. Initialize study " % step; step+=1
39 print "======================================================================"
44 builder = salome.myStudy.NewBuilder()
49 print "======================================================================"
50 print " %d. Retrieve module catalog " % step; step+=1
51 print "======================================================================"
53 obj = salome.naming_service.Resolve('Kernel/ModulCatalog')
54 catalog = obj._narrow(SALOME_ModuleCatalog.ModuleCatalog)
56 raise RuntimeError, "Can't accesss module catalog"
61 print "======================================================================"
62 print " %d. Check modules availability in the module catalog " % step; step+=1
63 print "======================================================================"
66 print "--- Check GEOM ..."
67 comp = catalog.GetComponent("GEOM")
69 raise RuntimeError, "Component GEOM is not found in Module Catalog."
73 print "--- Check SMESH ..."
74 comp = catalog.GetComponent("SMESH")
76 raise RuntimeError, "Component SMESH is not found in Module Catalog."
80 print "--- Check MED ..."
81 comp = catalog.GetComponent("MED")
83 raise RuntimeError, "Component MED is not found in Module Catalog."
87 print "--- Check VISU ..."
88 comp = catalog.GetComponent("VISU")
90 raise RuntimeError, "Component VISU is not found in Module Catalog."
95 print "======================================================================"
96 print " %d. Check, that there is no data of MED component in the Study " % step; step+=1
97 print "======================================================================"
99 MedComp = salome.myStudy.FindComponent("MED")
102 print "This script cannot work properly, because there is"
103 print "some MED component data already existing in the study."
104 print "Execution aborted."
106 raise RuntimeError, "Please, run this script only in a new empty study."
110 print "======================================================================"
111 print " %d. Test Data Server " % step; step+=1
112 print "======================================================================"
115 print "--- Create new component ..."
116 comp = builder.NewComponent("TEST")
118 raise RuntimeError, "Can't create new component"
122 print "--- Create AttributeName ..."
123 A = builder.FindOrCreateAttribute(comp, "AttributeName")
125 raise RuntimeError, "Can't create AttributeName attribute"
127 if A.Value() != "TEST":
128 raise RuntimeError, "Error : wrong value of AttributeName"
132 print "--- Create AttributeReal ..."
133 A = builder.FindOrCreateAttribute(comp, "AttributeReal")
135 raise RuntimeError, "Can't create AttributeReal attribute"
137 if A.Value() != 0.0001:
138 raise RuntimeError, "Error : wrong value of AttributeReal"
143 print "======================================================================"
144 print " %d. Test Geometry " % step; step+=1
145 print "======================================================================"
149 ShapeTypeCompSolid = 1
158 print "--- Create a box ..."
159 box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
160 idbox = geompy.addToStudy(box, "box")
161 box_obj = salome.myStudy.FindObjectByPath("/Geometry/box")
163 raise RuntimeError, "Error : wrong value of AttributeReal"
166 # ---- add shell from box in study
168 print "--- Extract shell ..."
169 subShellList = geompy.SubShapeAll(box, ShapeTypeShell)
170 shell = subShellList[0]
171 name = geompy.SubShapeName(shell, box)
172 idshell = geompy.addToStudyInFather(box, shell, name)
176 # ---- add first face of box in study
178 print "--- Extract face ..."
179 subShapeList = geompy.SubShapeAll(box, ShapeTypeFace)
180 face = subShapeList[0]
181 name = geompy.SubShapeName(face, box)
182 idface = geompy.addToStudyInFather(box, face, name)
186 # ---- add first edge of face in study
188 print "--- Extract edge ..."
189 edgeList = geompy.SubShapeAll(face, ShapeTypeEdge)
191 name = geompy.SubShapeName(edge, face)
192 idedge = geompy.addToStudyInFather(face, edge, name)
198 print "======================================================================"
199 print " %d. Test Mesh " % step; step+=1
200 print "======================================================================"
205 smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
206 smeshgui = salome.ImportComponentGUI("SMESH")
207 smeshgui.Init(salome.myStudyId);
209 # ---- create hypotheses
211 if sys.platform == "win32":
212 stdMeshersEngine = "StdMeshersEngine"
214 stdMeshersEngine = "libStdMeshersEngine.so"
217 print "--- Create hypotheses ..."
220 print "------ LocalLength ..."
221 hypLen1 = smesh.CreateHypothesis( "LocalLength", stdMeshersEngine )
222 hypLen1.SetLength(100)
223 print hypLen1.GetName()
224 print hypLen1.GetId()
225 print hypLen1.GetLength()
226 smeshgui.SetName(salome.ObjectToID(hypLen1), "Local_Length_100")
230 print "------ NumberOfSegments ..."
231 hypNbSeg1= smesh.CreateHypothesis( "NumberOfSegments", stdMeshersEngine )
232 hypNbSeg1.SetNumberOfSegments(7)
233 print hypNbSeg1.GetName()
234 print hypNbSeg1.GetId()
235 print hypNbSeg1.GetNumberOfSegments()
236 smeshgui.SetName(salome.ObjectToID(hypNbSeg1), "NumberOfSegments_7")
240 print "------ MaxElementArea [1] ..."
241 hypArea1 = smesh.CreateHypothesis( "MaxElementArea", stdMeshersEngine )
242 hypArea1.SetMaxElementArea(2500)
243 print hypArea1.GetName()
244 print hypArea1.GetId()
245 print hypArea1.GetMaxElementArea()
246 smeshgui.SetName(salome.ObjectToID(hypArea1), "MaxElementArea_2500")
250 print "------ MaxElementArea [2] ..."
251 hypArea2 = smesh.CreateHypothesis( "MaxElementArea", stdMeshersEngine )
252 hypArea2.SetMaxElementArea(500)
253 print hypArea2.GetName()
254 print hypArea2.GetId()
255 print hypArea2.GetMaxElementArea()
256 smeshgui.SetName(salome.ObjectToID(hypArea2), "MaxElementArea_500")
259 # ---- create algorithms
262 print "--- Create algorithms ..."
265 print "------ Regular_1D ..."
266 algoReg = smesh.CreateHypothesis( "Regular_1D", stdMeshersEngine )
267 listHyp = algoReg.GetCompatibleHypothesis()
270 print algoReg.GetName()
271 print algoReg.GetId()
272 smeshgui.SetName(salome.ObjectToID(algoReg), "Regular_1D" )
276 print "------ MEFISTO_2D ..."
277 algoMef = smesh.CreateHypothesis( "MEFISTO_2D", stdMeshersEngine )
278 listHyp=algoMef.GetCompatibleHypothesis()
281 print algoMef.GetName()
282 print algoMef.GetId()
283 smeshgui.SetName(salome.ObjectToID(algoMef), "MEFISTO_2D" )
286 # ---- create mesh on the box, apply hypotheses / algorithms
289 print "--- Create mesh on the box ..."
290 mesh = smesh.CreateMesh(box)
291 smeshgui.SetName( salome.ObjectToID(mesh), "MeshBox" );
292 ret = mesh.AddHypothesis(box, algoReg)
293 ret = mesh.AddHypothesis(box, algoMef)
294 ret = mesh.AddHypothesis(box, hypNbSeg1)
295 ret = mesh.AddHypothesis(box, hypArea1)
298 # ---- create submesh on the edge, add hypothesis
301 print "--- Add 1D sub-mesh on the edge ..."
302 submesh = mesh.GetSubMesh(edge, "SubMeshEdge")
303 ret = mesh.AddHypothesis(edge, algoReg)
304 ret = mesh.AddHypothesis(edge, hypLen1)
307 # ---- create submesh on the edge, add hypothesis
310 print "--- Add 2D sub-mesh on the face ..."
311 submesh = mesh.GetSubMesh(face, "SubMeshFace")
312 ret = mesh.AddHypothesis(face, hypArea2)
317 print "--- Compute mesh ..."
318 smesh.Compute(mesh, box)
319 salome.sg.updateObjBrowser(1);
324 print "======================================================================"
325 print " %d. Test Post-Pro and Med " % step; step+=1
326 print "======================================================================"
335 med = salome.lcc.FindOrLoadComponent("FactoryServer", "MED")
336 visu = salome.lcc.FindOrLoadComponent("FactoryServer", "VISU")
338 medFileName = "pointe.med"
339 medFile = os.path.join(os.getenv('DATA_DIR'), 'MedFiles', medFileName)
342 print "--- Read med file structure from %s ..." % medFile
343 med.readStructFileWithFieldType(medFile, salome.myStudyName)
347 print "--- Get med object from study ..."
348 med_obj = visu_gui.visu.getMedObjectFromStudy()
350 raise RuntimeError, "Med object is not found in the study"
354 print "--- Get field from study ..."
355 field = visu_gui.visu.getFieldObjectFromStudy(3,1)
357 raise RuntimeError, "Field object is not found in the study"
361 print "--- Import field to the VISU ..."
365 result1 = visu.ImportMedField(field)
367 raise RuntimeError, "Can't import field"
371 print "--- Create mesh presentation [1] ..."
372 mesh1 = visu.MeshOnEntity(result1, aMeshName, anEntity);
374 raise RuntimeError, "Can't create mesh presentation"
378 print "--- Create scalar map [1] ..."
379 scalarMap1 = visu.ScalarMapOnField(result1, aMeshName, anEntity, field.getName(), aTimeStampId)
381 raise RuntimeError, "Can't create scalar map"
385 print "--- Import med file %s to the VISU ..." % medFile
386 result2 = visu.ImportFile(medFile);
388 raise RuntimeError, "Can't import file"
392 print "--- Create mesh presentation [2] ..."
393 mesh2 = visu.MeshOnEntity(result2, aMeshName, anEntity);
395 raise RuntimeError, "Can't create mesh presentation"
399 print "--- Create scalar map [2] ..."
400 scalarMap2 = visu.ScalarMapOnField(result2, aMeshName, anEntity, field.getName(), 3)
402 raise RuntimeError, "Can't create scalar map"
405 salome.sg.updateObjBrowser(0)