1 # -*- coding: utf-8 -*-
4 ### This file is generated automatically by SALOME v7.7.0 with dump python functionality
11 import salome_notebook
12 notebook = salome_notebook.NoteBook()
20 #N = 20 #Nombre d elements sur un cote
22 def cube3D(L, N, outFile):
25 from salome.geom import geomBuilder
27 geompy = geomBuilder.New()
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.)
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)
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)
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)
56 box = geompy.MakeBoxDXDYDZ(larg, larg, larg)
58 boxXPLUS = geompy.TranslateDXDYDZ(box, 0., -larg/2., -larg/2., theCopy=True)
59 boxXMOIN = geompy.TranslateDXDYDZ(box, -larg, -larg/2., -larg/2., theCopy=True)
61 boxYPLUS = geompy.TranslateDXDYDZ(box, -larg/2., 0., -larg/2., theCopy=True)
62 boxYMOIN = geompy.TranslateDXDYDZ(box, -larg/2., -larg, -larg/2., theCopy=True)
64 boxZPLUS = geompy.TranslateDXDYDZ(box, -larg/2., -larg/2., 0., theCopy=True)
65 boxZMOIN = geompy.TranslateDXDYDZ(box, -larg/2., -larg/2., -larg, theCopy=True)
68 from salome.smesh import smeshBuilder
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()
85 geometries = [boxXPLUS, boxXMOIN, boxYPLUS, boxYMOIN, boxZPLUS, boxZMOIN]
87 noms = ['VOLXP', 'VOLXM', 'VOLYP', 'VOLYM', 'VOLZP', 'VOLZM']
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 )
95 nbAdded, Maillage_1, Group = Maillage_1.MakeBoundaryElements( SMESH.BND_2DFROM3D, '', '', 0, [ VOLUME_temp ])
97 geometries = [boxX, boxXM, boxXP,
101 noms = ['FACEX', 'FACEXM', 'FACEXP',
102 'FACEY', 'FACEYM', 'FACEYP',
103 'FACEZ', 'FACEZM', 'FACEZP']
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 )
111 Maillage_1.ExportMED(outFile)
113 #if salome.sg.hasDesktop():
114 #salome.sg.updateObjBrowser()
118 def cube2D(L, N, outFile):
121 from salome.geom import geomBuilder
123 geompy = geomBuilder.New()
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)
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)
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)
146 box = geompy.MakeBoxDXDYDZ(larg, larg, epais)
148 boxXPLUS = geompy.TranslateDXDYDZ(box, 0., -larg/2., -epais/2., theCopy=True)
149 boxXMOIN = geompy.TranslateDXDYDZ(box, -larg, -larg/2., -epais/2., theCopy=True)
151 boxYPLUS = geompy.TranslateDXDYDZ(box, -larg/2., 0., -epais/2., theCopy=True)
152 boxYMOIN = geompy.TranslateDXDYDZ(box, -larg/2., -larg, -epais/2., theCopy=True)
155 from salome.smesh import smeshBuilder
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)
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()
171 geometries = [boxXPLUS, boxXMOIN, boxYPLUS, boxYMOIN]
173 noms = ['FACEXP', 'FACEXM', 'FACEYP', 'FACEYM']
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 )
181 nbAdded, Maillage_1, Group = Maillage_1.MakeBoundaryElements( SMESH.BND_1DFROM2D, '', '', 0, [ FACE_temp ])
183 geometries = [boxX, boxXM, boxXP, boxY, boxYM, boxYP]
185 noms = ['EDGEX', 'EDGEXM', 'EDGEXP', 'EDGEY', 'EDGEYM', 'EDGEYP']
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 )
193 Maillage_1.ExportMED(outFile)
195 #if salome.sg.hasDesktop():
196 #salome.sg.updateObjBrowser()