# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org # # # # File : SMESH_test1.py # Module : SMESH import salome import geompy import StdMeshers geom = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM") smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH") geom.GetCurrentStudy(salome.myStudy._get_StudyId()) smesh.SetCurrentStudy(salome.myStudy) ShapeTypeCompSolid = 1 ShapeTypeSolid = 2 ShapeTypeShell = 3 ShapeTypeFace = 4 ShapeTypeWire = 5 ShapeTypeEdge = 6 ShapeTypeVertex = 7 # ---- define a box box = geompy.MakeBox(0., 0., 0., 100., 200., 300.) idbox = geompy.addToStudy(box,"box") # ---- add first face of box in study subShapeList=geompy.SubShapeAll(box,ShapeTypeFace) face=subShapeList[0] name = geompy.SubShapeName( face._get_Name(), box._get_Name() ) print name idface=geompy.addToStudyInFather(box,face,name) # ---- add shell from box in study subShellList=geompy.SubShapeAll(box,ShapeTypeShell) shell = subShellList[0] name = geompy.SubShapeName( shell._get_Name(), box._get_Name() ) print name idshell=geompy.addToStudyInFather(box,shell,name) # ---- add first edge of face in study edgeList = geompy.SubShapeAll(face,ShapeTypeEdge) edge=edgeList[0]; name = geompy.SubShapeName( edge._get_Name(), face._get_Name() ) print name idedge=geompy.addToStudyInFather(face,edge,name) # ---- launch SMESH smeshgui = salome.ImportComponentGUI("SMESH") smeshgui.Init(salome.myStudyId); # ---- create Hypothesis print "-------------------------- create Hypothesis" print "-------------------------- LocalLength" hypLen1 = smesh.CreateHypothesis("LocalLength", "libStdMeshersEngine.so") hypLen1.SetLength(100) print hypLen1.GetName() print hypLen1.GetId() print hypLen1.GetLength() idlength = salome.ObjectToID(hypLen1) smeshgui.SetName(idlength, "Local_Length_100"); print "-------------------------- NumberOfSegments" hypNbSeg1 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so") hypNbSeg1.SetNumberOfSegments(7) print hypNbSeg1.GetName() print hypNbSeg1.GetId() print hypNbSeg1.GetNumberOfSegments() idseg = salome.ObjectToID(hypNbSeg1) smeshgui.SetName(idseg, "NumberOfSegments_7"); print "-------------------------- MaxElementArea" hypArea1 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so") hypArea1.SetMaxElementArea(2500) print hypArea1.GetName() print hypArea1.GetId() print hypArea1.GetMaxElementArea() idarea1 = salome.ObjectToID(hypArea1) smeshgui.SetName(idarea1, "MaxElementArea_2500"); print "-------------------------- MaxElementArea" hypArea2 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so") hypArea2.SetMaxElementArea(500) print hypArea2.GetName() print hypArea2.GetId() print hypArea2.GetMaxElementArea() idarea2 = salome.ObjectToID(hypArea2) smeshgui.SetName(idarea2, "MaxElementArea_500"); print "-------------------------- Regular_1D" algoReg = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so") listHyp=algoReg.GetCompatibleHypothesis() for hyp in listHyp: print hyp print algoReg.GetName() print algoReg.GetId() idreg = salome.ObjectToID(algoReg) smeshgui.SetName(idreg, "Regular_1D"); print "-------------------------- MEFISTO_2D" algoMef = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so") listHyp=algoMef.GetCompatibleHypothesis() for hyp in listHyp: print hyp print algoMef.GetName() print algoMef.GetId() idmef = salome.ObjectToID(algoMef) smeshgui.SetName(idmef, "MEFISTO_2D"); # ---- Init a Mesh with the box box=salome.IDToObject(idbox) mesh=smesh.CreateMesh(box) idmesh = salome.ObjectToID(mesh) smeshgui.SetName(idmesh, "Meshbox"); # ---- add hypothesis to box print "-------------------------- add hypothesis to box" mesh.AddHypothesis(box,algoReg) mesh.AddHypothesis(box,hypNbSeg1) mesh.AddHypothesis(box,algoMef) mesh.AddHypothesis(box,hypArea1) # ---- add hypothesis to edge print "-------------------------- add hypothesis to edge" edge=salome.IDToObject(idedge) submesh = mesh.GetSubMesh(edge, "SubMeshEdge") mesh.AddHypothesis(edge , algoReg) mesh.AddHypothesis(edge, hypLen1) print "-------------------------- add hypothesis to face" face = salome.IDToObject(idface) submesh =mesh.GetSubMesh(face, "SubMeshFace") mesh.AddHypothesis(face,hypArea2) salome.sg.updateObjBrowser(1);