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