Salome HOME
0021803: EDF 2351 : Available versions of MED in TUI function ExportMED aren't consis...
[modules/smesh.git] / src / Tools / ZCracksPlug / casTests / genereCube.py
1 # -*- coding: utf-8 -*-
2
3 ###
4 ### This file is generated automatically by SALOME v7.7.0 with dump python functionality
5 ###
6
7 import salome
8
9 salome.salome_init()
10 theStudy = salome.myStudy
11
12 import salome_notebook
13 notebook = salome_notebook.NoteBook(theStudy)
14
15 ###
16 ### GEOM component
17 ###
18
19
20 #L = 1.
21 #N = 20 #Nombre d elements sur un cote
22
23 def cube3D(L, N, outFile):
24
25   N=int(N)
26   from salome.geom import geomBuilder
27
28   geompy = geomBuilder.New(theStudy)
29
30   eps=L*1.e-6
31
32   O = geompy.MakeVertex(0, 0, 0)
33   OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
34   OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
35   OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
36   cube = geompy.MakeBoxDXDYDZ(L, L, L)
37   geompy.TranslateDXDYDZ(cube, -L/2., -L/2., -L/2.)
38
39   epais=1./(2.*N)
40   larg=L*1.1
41
42   boxX = geompy.MakeBoxDXDYDZ(epais, larg, larg)
43   geompy.TranslateDXDYDZ(boxX, -epais/2., -larg/2., -larg/2.)
44   boxXM = geompy.TranslateDXDYDZ(boxX, -L/2., 0., 0., theCopy=True)
45   boxXP = geompy.TranslateDXDYDZ(boxX,  L/2., 0., 0., theCopy=True)
46
47   boxY = geompy.MakeBoxDXDYDZ(larg, epais, larg)
48   geompy.TranslateDXDYDZ(boxY, -larg/2., -epais/2., -larg/2.)
49   boxYM = geompy.TranslateDXDYDZ(boxY, 0., -L/2., 0., theCopy=True)
50   boxYP = geompy.TranslateDXDYDZ(boxY, 0.,  L/2., 0., theCopy=True)
51
52   boxZ = geompy.MakeBoxDXDYDZ(larg, larg, epais)
53   geompy.TranslateDXDYDZ(boxZ, -larg/2., -larg/2., -epais/2.)
54   boxZM = geompy.TranslateDXDYDZ(boxZ, 0., 0., -L/2., theCopy=True)
55   boxZP = geompy.TranslateDXDYDZ(boxZ, 0., 0.,  L/2., theCopy=True)
56
57   box = geompy.MakeBoxDXDYDZ(larg, larg, larg)
58
59   boxXPLUS = geompy.TranslateDXDYDZ(box, 0.,       -larg/2., -larg/2., theCopy=True)
60   boxXMOIN = geompy.TranslateDXDYDZ(box, -larg,    -larg/2., -larg/2., theCopy=True)
61
62   boxYPLUS = geompy.TranslateDXDYDZ(box, -larg/2., 0.,       -larg/2., theCopy=True)
63   boxYMOIN = geompy.TranslateDXDYDZ(box, -larg/2., -larg,    -larg/2., theCopy=True)
64
65   boxZPLUS = geompy.TranslateDXDYDZ(box, -larg/2., -larg/2., 0.,       theCopy=True)
66   boxZMOIN = geompy.TranslateDXDYDZ(box, -larg/2., -larg/2., -larg,    theCopy=True)
67
68
69   from salome.smesh import smeshBuilder
70   import SMESH
71
72   smesh = smeshBuilder.New(theStudy)
73   Nb_Segments_1 = smesh.CreateHypothesis('NumberOfSegments')
74   Nb_Segments_1.SetNumberOfSegments( N )
75   Length_From_Edges_1 = smesh.CreateHypothesis('LengthFromEdges')
76   Regular_1D = smesh.CreateHypothesis('Regular_1D')
77   NETGEN_2D_ONLY = smesh.CreateHypothesis('NETGEN_2D_ONLY', 'NETGENEngine')
78   Hexa_3D = smesh.CreateHypothesis('Hexa_3D')
79   Maillage_1 = smesh.Mesh(cube)
80   status = Maillage_1.AddHypothesis(Nb_Segments_1)
81   status = Maillage_1.AddHypothesis(Regular_1D)
82   Quadrangle_2D = Maillage_1.Quadrangle(algo=smeshBuilder.QUADRANGLE)
83   status = Maillage_1.AddHypothesis(Hexa_3D)
84   isDone = Maillage_1.Compute()
85
86   geometries = [boxXPLUS, boxXMOIN, boxYPLUS, boxYMOIN, boxZPLUS, boxZMOIN]
87
88   noms = ['VOLXP', 'VOLXM', 'VOLYP', 'VOLYM', 'VOLZP', 'VOLZM']
89
90   for cont, geo in enumerate(geometries):
91     aCriteria = smesh.GetCriterion(SMESH.VOLUME,SMESH.FT_BelongToGeom,SMESH.FT_Undefined, geo)
92     aFilter_1 = smesh.GetFilterFromCriteria([aCriteria])
93     aFilter_1.SetMesh(Maillage_1.GetMesh())
94     VOLUME_temp = Maillage_1.GroupOnFilter( SMESH.VOLUME, noms[cont], aFilter_1 )
95
96   nbAdded, Maillage_1, Group = Maillage_1.MakeBoundaryElements( SMESH.BND_2DFROM3D, '', '', 0, [ VOLUME_temp ])
97
98   geometries = [boxX, boxXM, boxXP, 
99                 boxY, boxYM, boxYP, 
100                 boxZ, boxZM, boxZP]
101
102   noms = ['FACEX', 'FACEXM', 'FACEXP', 
103           'FACEY', 'FACEYM', 'FACEYP', 
104           'FACEZ', 'FACEZM', 'FACEZP']
105
106   for cont, geo in enumerate(geometries):
107     aCriteria = smesh.GetCriterion(SMESH.FACE,SMESH.FT_BelongToGeom,SMESH.FT_Undefined, geo)
108     aFilter_1 = smesh.GetFilterFromCriteria([aCriteria])
109     aFilter_1.SetMesh(Maillage_1.GetMesh())
110     FACE_temp = Maillage_1.GroupOnFilter( SMESH.FACE, noms[cont], aFilter_1 )
111  
112   Maillage_1.ExportMED(outFile)
113
114   #if salome.sg.hasDesktop():
115     #salome.sg.updateObjBrowser(True)
116
117
118
119 def cube2D(L, N, outFile):
120
121   N=int(N)
122   from salome.geom import geomBuilder
123
124   geompy = geomBuilder.New(theStudy)
125
126   eps=L*1.e-6
127
128   O = geompy.MakeVertex(0, 0, 0)
129   OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
130   OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
131   OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
132   face = geompy.MakeFaceHW(L, L, 1)
133
134   epais=1./(2.*N)
135   larg=L*1.1
136
137   boxX = geompy.MakeBoxDXDYDZ(epais, larg, epais)
138   geompy.TranslateDXDYDZ(boxX, -epais/2., -larg/2., -epais/2.)
139   boxXM = geompy.TranslateDXDYDZ(boxX, -L/2., 0., 0., theCopy=True)
140   boxXP = geompy.TranslateDXDYDZ(boxX,  L/2., 0., 0., theCopy=True)
141
142   boxY = geompy.MakeBoxDXDYDZ(larg, epais, epais)
143   geompy.TranslateDXDYDZ(boxY, -larg/2., -epais/2., -epais/2.)
144   boxYM = geompy.TranslateDXDYDZ(boxY, 0., -L/2., 0., theCopy=True)
145   boxYP = geompy.TranslateDXDYDZ(boxY, 0.,  L/2., 0., theCopy=True)
146
147   box = geompy.MakeBoxDXDYDZ(larg, larg, epais)
148
149   boxXPLUS = geompy.TranslateDXDYDZ(box, 0.,       -larg/2., -epais/2., theCopy=True)
150   boxXMOIN = geompy.TranslateDXDYDZ(box, -larg,    -larg/2., -epais/2., theCopy=True)
151
152   boxYPLUS = geompy.TranslateDXDYDZ(box, -larg/2., 0.,       -epais/2., theCopy=True)
153   boxYMOIN = geompy.TranslateDXDYDZ(box, -larg/2., -larg,    -epais/2., theCopy=True)
154
155
156   from salome.smesh import smeshBuilder
157   import SMESH
158
159   smesh = smeshBuilder.New(theStudy)
160   Nb_Segments_1 = smesh.CreateHypothesis('NumberOfSegments')
161   Nb_Segments_1.SetNumberOfSegments( N )
162   Length_From_Edges_1 = smesh.CreateHypothesis('LengthFromEdges')
163   Regular_1D = smesh.CreateHypothesis('Regular_1D')
164   NETGEN_2D_ONLY = smesh.CreateHypothesis('NETGEN_2D_ONLY', 'NETGENEngine')
165   Maillage_1 = smesh.Mesh(face)
166
167   status = Maillage_1.AddHypothesis(Nb_Segments_1)
168   status = Maillage_1.AddHypothesis(Regular_1D)
169   Quadrangle_2D = Maillage_1.Quadrangle(algo=smeshBuilder.QUADRANGLE)
170   isDone = Maillage_1.Compute()
171
172   geometries = [boxXPLUS, boxXMOIN, boxYPLUS, boxYMOIN]
173
174   noms = ['FACEXP', 'FACEXM', 'FACEYP', 'FACEYM']
175
176   for cont, geo in enumerate(geometries):
177     aCriteria = smesh.GetCriterion(SMESH.FACE,SMESH.FT_BelongToGeom,SMESH.FT_Undefined, geo)
178     aFilter_1 = smesh.GetFilterFromCriteria([aCriteria])
179     aFilter_1.SetMesh(Maillage_1.GetMesh())
180     FACE_temp = Maillage_1.GroupOnFilter( SMESH.FACE, noms[cont], aFilter_1 )
181
182   nbAdded, Maillage_1, Group = Maillage_1.MakeBoundaryElements( SMESH.BND_1DFROM2D, '', '', 0, [ FACE_temp ])
183
184   geometries = [boxX, boxXM, boxXP, boxY, boxYM, boxYP]
185
186   noms = ['EDGEX', 'EDGEXM', 'EDGEXP', 'EDGEY', 'EDGEYM', 'EDGEYP']
187
188   for cont, geo in enumerate(geometries):
189     aCriteria = smesh.GetCriterion(SMESH.EDGE,SMESH.FT_BelongToGeom,SMESH.FT_Undefined, geo)
190     aFilter_1 = smesh.GetFilterFromCriteria([aCriteria])
191     aFilter_1.SetMesh(Maillage_1.GetMesh())
192     EDGE_temp = Maillage_1.GroupOnFilter( SMESH.EDGE, noms[cont], aFilter_1 )
193  
194   Maillage_1.ExportMED(outFile)
195
196   #if salome.sg.hasDesktop():
197     #salome.sg.updateObjBrowser(True)