Salome HOME
This commit was generated by cvs2git to track changes on a CVS vendor
[modules/smesh.git] / src / SMESH_I / SMESH_test.py
1 # creer des geometries, en selectionner une
2
3 import SMESH
4 import smeshpy
5 import salome
6 from salome import sg
7 import math
8 #import SMESH_BasicHypothesis_idl
9
10 import geompy
11
12 geom = salome.lcc.FindOrLoadComponent("FactoryServer", "GEOM")
13 myBuilder = salome.myStudy.NewBuilder()
14 from geompy import gg
15
16 ShapeTypeCompSolid = 1
17 ShapeTypeSolid = 2
18 ShapeTypeShell = 3
19 ShapeTypeFace = 4
20 ShapeTypeWire = 5
21 ShapeTypeEdge = 6
22 ShapeTypeVertex = 7
23
24 # ---- define a box
25
26 box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
27 idb = geompy.addToStudy(box,"box")
28
29 # ---- add first face of box in study
30
31 subShapeList=geompy.SubShapeAll(box,ShapeTypeFace)
32 face=subShapeList[0]
33 name = geompy.SubShapeName( face._get_Name(), box._get_Name() )
34 print name
35 idf=geompy.addToStudyInFather(box,face,name)
36
37 # ---- add shell from box  in study
38
39 subShellList=geompy.SubShapeAll(box,ShapeTypeShell)
40 shell = subShellList[0]
41 name = geompy.SubShapeName( shell._get_Name(), box._get_Name() )
42 print name
43 ids=geompy.addToStudyInFather(box,shell,name)
44
45 # ---- add first edge of face in study
46
47 edgeList = geompy.SubShapeAll(face,ShapeTypeEdge)
48 edge=edgeList[0];
49 name = geompy.SubShapeName( edge._get_Name(), face._get_Name() )
50 print name
51 ide=geompy.addToStudyInFather(face,edge,name)
52
53 # ---- launch SMESH, init a Mesh with the box
54 gen=smeshpy.smeshpy()
55 mesh=gen.Init(idb)
56
57 # ---- create Hypothesis
58
59 print "-------------------------- create Hypothesis"
60 print "-------------------------- LocalLength"
61 hyp1=gen.CreateHypothesis("LocalLength")
62 print hyp1.GetName()
63 print hyp1.GetId()
64 hypo1 = hyp1._narrow(SMESH.SMESH_LocalLength)
65 print hypo1.GetLength()
66 hypo1.SetLength(100)
67 print hypo1.GetLength()
68
69 print "-------------------------- bidon"
70 hyp3=gen.CreateHypothesis("bidon")
71
72 print "-------------------------- NumberOfSegments"
73 hyp3=gen.CreateHypothesis("NumberOfSegments")
74 hypo3=hyp3._narrow(SMESH.SMESH_NumberOfSegments)
75 hypo3.SetNumberOfSegments(7)
76 print hypo3.GetName()
77 print hypo3.GetNumberOfSegments()
78 print hypo3.GetId()
79
80 print "-------------------------- MaxElementArea"
81 hyp4=gen.CreateHypothesis("MaxElementArea")
82 hypo4=hyp4._narrow(SMESH.SMESH_MaxElementArea)
83 hypo4.SetMaxElementArea(5000)
84 print hypo4.GetName()
85 print hypo4.GetMaxElementArea()
86 print hypo4.GetId()
87
88 print "-------------------------- Regular_1D"
89 alg1=gen.CreateHypothesis("Regular_1D")
90 print alg1.GetName()
91 print alg1.GetId()
92 algo1=alg1._narrow(SMESH.SMESH_Algo)
93 listHyp=algo1.GetCompatibleHypothesis()
94 for hyp in listHyp:
95     print hyp
96     
97 algo_1=alg1._narrow(SMESH.SMESH_Regular_1D)
98 print algo_1.GetId()
99
100 print "-------------------------- MEFISTO_2D"
101 alg2=gen.CreateHypothesis("MEFISTO_2D")
102 print alg2.GetName()
103 print alg2.GetId()
104 algo2=alg2._narrow(SMESH.SMESH_Algo)
105 listHyp=algo2.GetCompatibleHypothesis()
106 for hyp in listHyp:
107     print hyp
108 algo_2=alg2._narrow(SMESH.SMESH_MEFISTO_2D)
109 print algo_2.GetId()
110
111 # ---- add hypothesis to edge
112
113 print "-------------------------- add hypothesis to edge"
114 edge=salome.IDToObject(ide)
115 submesh=mesh.GetElementsOnShape(edge)
116 ret=mesh.AddHypothesis(edge,algo_1)
117 print ret
118 ret=mesh.AddHypothesis(edge,hypo1)
119 print ret
120
121 # ---- compute edge
122
123 ##print "-------------------------- compute edge"
124 ##ret=gen.Compute(mesh,ide)
125 ##print ret
126 ##log=mesh.GetLog(1);
127 ##for a in log:
128 ##    print a
129
130 # ---- add hypothesis to box
131
132 print "-------------------------- add hypothesis to box"
133 box=salome.IDToObject(idb)
134 submesh=mesh.GetElementsOnShape(box)
135 ret=mesh.AddHypothesis(box,algo_1)
136 print ret
137 ret=mesh.AddHypothesis(box,hypo1)
138 print ret
139 ret=mesh.AddHypothesis(box,algo_2)
140 print ret
141 ret=mesh.AddHypothesis(box,hypo4)
142 print ret
143
144 # ---- compute face
145
146 print "-------------------------- compute face"
147 ret=gen.Compute(mesh,idf)
148 print ret
149 log=mesh.GetLog(1);
150 for a in log:
151     print "-------"
152     ii = 0
153     ir = 0
154     comType = a.commandType
155     if comType == 0:
156         for i in range(a.number):
157             ind = a.indexes[ii]
158             ii = ii+1
159             r1 = a.coords[ir]
160             ir = ir+1
161             r2 = a.coords[ir]
162             ir = ir+1
163             r3 = a.coords[ir]
164             ir = ir+1
165             print "AddNode %i - %g %g %g" % (ind, r1, r2, r3)
166     elif comType == 1:
167         for i in range(a.number):
168             ind = a.indexes[ii]
169             ii = ii+1
170             i1 = a.indexes[ii]
171             ii = ii+1
172             i2 = a.indexes[ii]
173             ii = ii+1
174             print "AddEdge %i - %i %i" % (ind, i1, i2)
175     elif comType == 2:
176         for i in range(a.number):
177             ind = a.indexes[ii]
178             ii = ii+1
179             i1 = a.indexes[ii]
180             ii = ii+1
181             i2 = a.indexes[ii]
182             ii = ii+1
183             i3 = a.indexes[ii]
184             ii = ii+1
185             print "AddTriangle %i - %i %i %i" % (ind, i1, i2, i3)
186
187 # ---- compute box
188
189 ##print "-------------------------- compute box"
190 ##ret=gen.Compute(mesh,idb)
191 ##print ret
192 ##log=mesh.GetLog(1);
193 ##print log
194
195 ##shell=salome.IDToObject(ids)
196 ##submesh=mesh.GetElementsOnShape(shell)
197 ##ret=mesh.AddHypothesis(shell,algo_1)
198 ##print ret
199 ##ret=mesh.AddHypothesis(shell,hypo1)
200 ##print ret
201 ##ret=gen.Compute(mesh,ids)
202 ##print ret
203