2003-12-08 20:43:20 +05:00
|
|
|
#
|
|
|
|
# Triangulation of the skin of the geometry from a Brep representing a plane
|
|
|
|
# This geometry is from EADS
|
|
|
|
# Hypothesis and algorithms for the mesh generation are global
|
|
|
|
#
|
|
|
|
|
2004-06-18 14:34:31 +06:00
|
|
|
import os
|
2003-12-08 20:43:20 +05:00
|
|
|
import salome
|
|
|
|
import geompy
|
2004-06-18 14:34:31 +06:00
|
|
|
import StdMeshers
|
|
|
|
|
|
|
|
smesh = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
|
|
|
|
|
|
|
|
smeshgui = salome.ImportComponentGUI("SMESH")
|
2004-12-01 15:48:31 +05:00
|
|
|
smeshgui.Init(salome.myStudyId)
|
2004-06-18 14:34:31 +06:00
|
|
|
|
2003-12-08 20:43:20 +05:00
|
|
|
|
2004-06-18 14:34:31 +06:00
|
|
|
# ---------------------------- GEOM --------------------------------------
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
# import a BRep
|
|
|
|
#before running this script, please be sure about
|
|
|
|
#the path the file fileName
|
|
|
|
|
2005-10-20 18:59:41 +06:00
|
|
|
filePath = os.environ["DATA_DIR"]
|
|
|
|
filePath = filePath + "/Shapes/Brep/"
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
filename = "flight_solid.brep"
|
|
|
|
filename = filePath + filename
|
|
|
|
|
2004-12-01 15:48:31 +05:00
|
|
|
shape = geompy.Import(filename, "BREP")
|
|
|
|
idShape = geompy.addToStudy(shape, "flight")
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
print "Analysis of the geometry flight :"
|
2004-12-01 15:48:31 +05:00
|
|
|
subShellList = geompy.SubShapeAll(shape, geompy.ShapeType["SHELL"])
|
|
|
|
subFaceList = geompy.SubShapeAll(shape, geompy.ShapeType["FACE"])
|
|
|
|
subEdgeList = geompy.SubShapeAll(shape, geompy.ShapeType["EDGE"])
|
2003-12-08 20:43:20 +05:00
|
|
|
|
2004-12-01 15:48:31 +05:00
|
|
|
print "number of Shells in flight : ", len(subShellList)
|
|
|
|
print "number of Faces in flight : ", len(subFaceList)
|
|
|
|
print "number of Edges in flight : ", len(subEdgeList)
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
|
2004-06-18 14:34:31 +06:00
|
|
|
### ---------------------------- SMESH --------------------------------------
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
print "-------------------------- create Hypothesis"
|
|
|
|
|
|
|
|
print "-------------------------- LocalLength"
|
|
|
|
|
|
|
|
lengthOfSegments = 0.3
|
|
|
|
|
2004-12-01 15:48:31 +05:00
|
|
|
hypLength = smesh.CreateHypothesis("LocalLength", "libStdMeshersEngine.so")
|
2003-12-08 20:43:20 +05:00
|
|
|
hypLength.SetLength(lengthOfSegments)
|
2004-06-18 14:34:31 +06:00
|
|
|
|
2003-12-08 20:43:20 +05:00
|
|
|
print hypLength.GetName()
|
2004-12-01 15:48:31 +05:00
|
|
|
print hypLength.GetId()
|
2003-12-08 20:43:20 +05:00
|
|
|
print hypLength.GetLength()
|
|
|
|
|
2004-06-18 14:34:31 +06:00
|
|
|
smeshgui.SetName(salome.ObjectToID(hypLength), "LocalLength_0.3")
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
print "-------------------------- LengthFromEdges"
|
|
|
|
|
2004-12-01 15:48:31 +05:00
|
|
|
hypLengthFromEdge = smesh.CreateHypothesis("LengthFromEdges", "libStdMeshersEngine.so")
|
2004-06-18 14:34:31 +06:00
|
|
|
|
2003-12-08 20:43:20 +05:00
|
|
|
print hypLengthFromEdge.GetName()
|
2004-06-18 14:34:31 +06:00
|
|
|
print hypLengthFromEdge.GetId()
|
2003-12-08 20:43:20 +05:00
|
|
|
|
2004-06-18 14:34:31 +06:00
|
|
|
smeshgui.SetName(salome.ObjectToID(hypLengthFromEdge), "LengthFromEdge")
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
print "-------------------------- create Algorithms"
|
|
|
|
|
|
|
|
print "-------------------------- Regular_1D"
|
|
|
|
|
2004-12-01 15:48:31 +05:00
|
|
|
regular1D = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
|
2004-06-18 14:34:31 +06:00
|
|
|
|
|
|
|
smeshgui.SetName(salome.ObjectToID(regular1D), "Wire Discretisation")
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
print "-------------------------- MEFISTO_2D"
|
|
|
|
|
2004-12-01 15:48:31 +05:00
|
|
|
mefisto2D = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
|
2004-06-18 14:34:31 +06:00
|
|
|
|
|
|
|
smeshgui.SetName(salome.ObjectToID(mefisto2D), "MEFISTO_2D")
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
# ---- init a Mesh with the shell
|
2004-06-18 14:34:31 +06:00
|
|
|
shape_mesh = salome.IDToObject( idShape )
|
2003-12-08 20:43:20 +05:00
|
|
|
|
2004-12-01 15:48:31 +05:00
|
|
|
mesh = smesh.CreateMesh(shape_mesh)
|
2004-06-18 14:34:31 +06:00
|
|
|
smeshgui.SetName(salome.ObjectToID(mesh), "MeshFlight")
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
# ---- add hypothesis to flight
|
|
|
|
|
|
|
|
print "-------------------------- add hypothesis to flight"
|
|
|
|
|
2004-06-18 14:34:31 +06:00
|
|
|
mesh.AddHypothesis(shape_mesh,regular1D)
|
|
|
|
mesh.AddHypothesis(shape_mesh,hypLength)
|
|
|
|
mesh.AddHypothesis(shape_mesh,mefisto2D)
|
|
|
|
mesh.AddHypothesis(shape_mesh,hypLengthFromEdge)
|
2003-12-08 20:43:20 +05:00
|
|
|
|
2004-06-18 14:34:31 +06:00
|
|
|
salome.sg.updateObjBrowser(1)
|
2003-12-08 20:43:20 +05:00
|
|
|
|
|
|
|
|
|
|
|
print "-------------------------- compute the skin flight"
|
2004-12-01 15:48:31 +05:00
|
|
|
ret = smesh.Compute(mesh,shape_mesh)
|
2003-12-08 20:43:20 +05:00
|
|
|
print ret
|
|
|
|
if ret != 0:
|
2004-12-01 15:48:31 +05:00
|
|
|
log = mesh.GetLog(0) # no erase trace
|
2003-12-08 20:43:20 +05:00
|
|
|
for linelog in log:
|
|
|
|
print linelog
|
2004-06-18 14:34:31 +06:00
|
|
|
print "Information about the Mesh_mechanic_tetra:"
|
|
|
|
print "Number of nodes : ", mesh.NbNodes()
|
|
|
|
print "Number of edges : ", mesh.NbEdges()
|
|
|
|
print "Number of faces : ", mesh.NbFaces()
|
|
|
|
print "Number of triangles : ", mesh.NbTriangles()
|
|
|
|
print "Number of volumes : ", mesh.NbVolumes()
|
2003-12-08 20:43:20 +05:00
|
|
|
else:
|
|
|
|
print "probleme when computing the mesh"
|