4 import batchmode_salome
5 import batchmode_geompy
9 smesh = batchmode_smesh.smesh
10 smesh.SetCurrentStudy(batchmode_salome.myStudy)
12 def CreateMesh (theFileName, area, len = None, nbseg = None):
14 if not(os.path.isfile(theFileName)) or re.search("\.brep$", theFileName) is None :
15 print "Incorrect file name !"
18 if (len is None) and (nbseg is None):
19 print "Define length or number of segments !"
22 if (len is not None) and (nbseg is not None):
23 print "Only one Hypothesis (from length and number of segments) can be defined !"
27 # ---- Import shape from BREP file and add it to the study
28 shape_mesh = batchmode_geompy.Import(theFileName, "BREP")
29 Id_shape = batchmode_geompy.addToStudy(shape_mesh, "shape_mesh")
34 print "-------------------------- create Hypothesis"
36 print "-------------------------- LocalLength"
37 hypLength1 = smesh.CreateHypothesis("LocalLength", "libStdMeshersEngine.so")
38 hypLength1.SetLength(len)
39 print "Hypothesis type : ", hypLength1.GetName()
40 print "Hypothesis ID : ", hypLength1.GetId()
41 print "Hypothesis Value: ", hypLength1.GetLength()
43 if (nbseg is not None):
44 print "-------------------------- NumberOfSegments"
45 hypNbSeg1 = smesh.CreateHypothesis("NumberOfSegments", "libStdMeshersEngine.so")
46 hypNbSeg1.SetNumberOfSegments(nbseg)
47 print "Hypothesis type : ", hypNbSeg1.GetName()
48 print "Hypothesis ID : ", hypNbSeg1.GetId()
49 print "Hypothesis Value: ", hypNbSeg1.GetNumberOfSegments()
51 if (area == "LengthFromEdges"):
52 print "-------------------------- LengthFromEdges"
53 hypLengthFromEdges = smesh.CreateHypothesis("LengthFromEdges", "libStdMeshersEngine.so")
54 hypLengthFromEdges.SetMode(1)
55 print "Hypothesis type : ", hypLengthFromEdges.GetName()
56 print "Hypothesis ID : ", hypLengthFromEdges.GetId()
57 print "LengthFromEdges Mode: ", hypLengthFromEdges.GetMode()
60 print "-------------------------- MaxElementArea"
61 hypArea1 = smesh.CreateHypothesis("MaxElementArea", "libStdMeshersEngine.so")
62 hypArea1.SetMaxElementArea(area)
63 print "Hypothesis type : ", hypArea1.GetName()
64 print "Hypothesis ID : ", hypArea1.GetId()
65 print "Hypothesis Value: ", hypArea1.GetMaxElementArea()
68 print "-------------------------- Regular_1D"
69 algoReg = smesh.CreateHypothesis("Regular_1D", "libStdMeshersEngine.so")
71 listHyp = algoReg.GetCompatibleHypothesis()
75 print "Algo name: ", algoReg.GetName()
76 print "Algo ID : ", algoReg.GetId()
78 print "-------------------------- MEFISTO_2D"
79 algoMef = smesh.CreateHypothesis("MEFISTO_2D", "libStdMeshersEngine.so")
81 listHyp = algoMef.GetCompatibleHypothesis()
85 print "Algo name: ", algoMef.GetName()
86 print "Algo ID : ", algoMef.GetId()
89 # ---- add hypothesis to shape
91 print "-------------------------- add hypothesis to shape"
92 mesh = smesh.CreateMesh(shape_mesh)
94 ret = mesh.AddHypothesis(shape_mesh, algoReg)
95 print "Add Regular_1D algo .... ",
98 if (nbseg is not None):
99 ret = mesh.AddHypothesis(shape_mesh, hypNbSeg1)
100 print "Add Number Of Segements algo .... ",
103 if (len is not None):
104 ret = mesh.AddHypothesis(shape_mesh,hypLength1)
105 print "Add Local Length algo .... ",
108 ret = mesh.AddHypothesis(shape_mesh, algoMef)
109 print "Add MEFISTO_2D algo....",
112 if (area == "LengthFromEdges"):
113 ret = mesh.AddHypothesis( shape_mesh, hypLengthFromEdges) # length from edge
114 print "Add Length From Edges algo .... ",
117 ret = mesh.AddHypothesis(shape_mesh, hypArea1)
118 print "Add Max Triangle Area algo .... ",
121 print "-------------------------- compute mesh"
122 ret = smesh.Compute(mesh,shape_mesh)
123 print "Compute Mesh .... ",
125 log = mesh.GetLog(0); # no erase trace
129 print "------------ INFORMATION ABOUT MESH ------------"
131 print "Number of nodes : ", mesh.NbNodes()
132 print "Number of edges : ", mesh.NbEdges()
133 print "Number of faces : ", mesh.NbFaces()
134 print "Number of triangles: ", mesh.NbTriangles()