Salome HOME
updating or adding when merging in the main trunk with the version in the
[modules/smesh.git] / src / SMESH_SWIG / SMESH_box_tetra.py
1 #
2 # Tetrahedrization of a simple box. Hypothesis and algorithms for
3 # the mesh generation are global
4 #
5
6 import salome
7 from salome import sg
8
9 import geompy
10
11 import SMESH
12 import smeshpy
13
14 # -----------------------------------------------------------------------------
15
16 ##geom = salome.lcc.FindOrLoadComponent("FactoryServer", "Geometry")
17 ##myBuilder = salome.myStudy.NewBuilder()
18
19 geom = geompy.geom
20 myBuilder = geompy.myBuilder
21
22 ShapeTypeShell     = 3
23 ShapeTypeFace      = 4
24 ShapeTypeEdge      = 6
25
26 # ---- define a boxe
27
28 box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
29
30 idbox = geompy.addToStudy(box,"box")
31
32 print "Analysis of the geometry box :"
33 subShellList=geompy.SubShapeAll(box,ShapeTypeShell)
34 subFaceList=geompy.SubShapeAll(box,ShapeTypeFace)
35 subEdgeList=geompy.SubShapeAll(box,ShapeTypeEdge)
36
37 print "number of Shells in box : ",len(subShellList)
38 print "number of Faces in box : ",len(subFaceList)
39 print "number of Edges in box : ",len(subEdgeList)
40
41 # ---- launch SMESH
42
43 smeshgui = salome.ImportComponentGUI("SMESH")
44 smeshgui.Init(salome.myStudyId)
45
46 gen=smeshpy.smeshpy()
47
48 # ---- create Hypothesis
49
50 print "-------------------------- create Hypothesis"
51
52 print "-------------------------- NumberOfSegments"
53
54 numberOfSegments = 10
55
56 hyp1=gen.CreateHypothesis("NumberOfSegments")
57 hypNbSeg=hyp1._narrow(SMESH.SMESH_NumberOfSegments)
58 hypNbSeg.SetNumberOfSegments(numberOfSegments)
59 hypNbSegID = hypNbSeg.GetId()
60 print hypNbSeg.GetName()
61 print hypNbSegID
62 print hypNbSeg.GetNumberOfSegments()
63
64 idseg = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypNbSeg) )
65 smeshgui.SetName(idseg, "NumberOfSegments")
66
67 print "-------------------------- MaxElementArea"
68
69 maxElementArea = 500
70
71 hyp2=gen.CreateHypothesis("MaxElementArea")
72 hypArea=hyp2._narrow(SMESH.SMESH_MaxElementArea)
73 hypArea.SetMaxElementArea(maxElementArea)
74 print hypArea.GetName()
75 print hypArea.GetId()
76 print hypArea.GetMaxElementArea()
77
78 idarea = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypArea) )
79 smeshgui.SetName(idarea, "MaxElementArea")
80
81 print "-------------------------- MaxElementVolume"
82
83 maxElementVolume = 500
84
85 hyp3=gen.CreateHypothesis("MaxElementVolume")
86 hypVolume=hyp3._narrow(SMESH.SMESH_MaxElementVolume)
87 hypVolume.SetMaxElementVolume(maxElementVolume)
88 print hypVolume.GetName()
89 print hypVolume.GetId()
90 print hypVolume.GetMaxElementVolume()
91
92 idvolume = smeshgui.AddNewHypothesis( salome.orb.object_to_string(hypVolume) )
93 smeshgui.SetName(idvolume, "MaxElementVolume")
94
95 # ---- create Algorithms
96
97 print "-------------------------- create Algorithms"
98
99 print "-------------------------- Regular_1D"
100
101 hypothesis=gen.CreateHypothesis("Regular_1D")
102 regular1D = hypothesis._narrow(SMESH.SMESH_Regular_1D)
103 regularID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(regular1D) )
104 smeshgui.SetName(regularID, "Wire Discretisation")
105
106 print "-------------------------- MEFISTO_2D"
107
108 hypothesis=gen.CreateHypothesis("MEFISTO_2D")
109 mefisto2D = hypothesis._narrow(SMESH.SMESH_MEFISTO_2D)
110 mefistoID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(mefisto2D) )
111 smeshgui.SetName(mefistoID, "MEFISTO_2D")
112
113 print "-------------------------- NETGEN_3D"
114
115 hypothesis=gen.CreateHypothesis("NETGEN_3D")
116 netgen3D = hypothesis._narrow(SMESH.SMESH_NETGEN_3D)
117 netgenID = smeshgui.AddNewAlgorithms( salome.orb.object_to_string(netgen3D) )
118 smeshgui.SetName(netgenID, "NETGEN_3D")
119
120 # ---- init a Mesh with the boxe
121
122 mesh=gen.Init(idbox)
123 idmesh = smeshgui.AddNewMesh( salome.orb.object_to_string(mesh) )
124 smeshgui.SetName(idmesh, "MeshBox")
125 smeshgui.SetShape(idbox, idmesh)
126
127 # ---- add hypothesis to the boxe
128
129 print "-------------------------- add hypothesis to the boxe"
130
131 ret=mesh.AddHypothesis(box,regular1D)
132 print ret
133 ret=mesh.AddHypothesis(box,hypNbSeg)
134 print ret
135 ret=mesh.AddHypothesis(box,mefisto2D)
136 print ret
137 ret=mesh.AddHypothesis(box,hypArea)
138 print ret
139 ret=mesh.AddHypothesis(box,netgen3D)
140 print ret
141 ret=mesh.AddHypothesis(box,hypVolume)
142 print ret
143
144 smeshgui.SetAlgorithms( idmesh, regularID)
145 smeshgui.SetHypothesis( idmesh, idseg )
146 smeshgui.SetAlgorithms( idmesh, mefistoID )
147 smeshgui.SetHypothesis( idmesh, idarea )
148 smeshgui.SetAlgorithms( idmesh, netgenID )
149 smeshgui.SetHypothesis( idmesh, idvolume )
150
151 sg.updateObjBrowser(1)
152
153
154 print "-------------------------- compute the mesh of the boxe"
155 ret=gen.Compute(mesh,idbox)
156 print ret
157 log=mesh.GetLog(0) # no erase trace
158 for linelog in log:
159     print linelog
160
161
162 sg.updateObjBrowser(1)