2 # -*- coding: latin-1 -*-
3 # Hexa : Creation d'hexaedres
6 geompy = hexablock.geompy
11 the_name = "pave_troue"
31 # ======================================================= save_vtk
36 filename = "%s_%02d.vtk" % (the_name,nbr_fic)
37 the_doc.saveVtk (filename)
40 # ======================================================= make_toit
46 for ni in range (imax) :
47 for nj in range (jmax) :
48 if ni != ichem or nj != jchem :
49 the_doc.removeHexa (the_grid.getHexaIJK (ni,nj,kmax))
51 # ======================================================= make_trou1
58 for ni in range (nc1) :
59 for nj in range (nc1) :
60 for nk in range (kmax) :
61 the_doc.removeHexa (the_grid.getHexaIJK (ic1+ni, jc1+nj, nk))
65 orig1 = the_doc.addVertex (xc1, yc1, 0)
66 vxy = the_doc.addVector (1,1,0)
71 theta = 360.0 / nbsect
72 cyl1_ray = [ rayon, rext]
74 for na in range (nbsect+1) :
75 cyl1_ang.append (na*theta)
79 cyl1 = the_doc.makePipe (orig1, vxy, vz, cyl1_ray, cyl1_ang, cyl1_h)
83 va1 = cyl1 .getVertexIJK (1, 1, 0)
84 va2 = cyl1 .getVertexIJK (1, 1, 1)
85 vc1 = the_grid.getVertexIJK (ic1+nc1-1, jc1+nc1, 0)
86 vc2 = the_grid.getVertexIJK (ic1+nc1-1, jc1+nc1, 1)
88 cible = the_grid.getQuadIK (ic1+2, jc1+nc1, 0)
90 for nk in range (len(cyl1_h)-1) :
91 for nj in range (len(cyl1_ang)-1) :
92 tab_quads.append (cyl1.getQuadJK (1, nj, nk))
104 tab_quads[0].setColor (5)
108 the_doc.joinQuadsUni (tab_quads, cible, va1, vc1, va2, vc2, 1)
112 # ======================================================= make_trou2
117 for nj in range (jmax) :
118 the_doc.removeHexa (the_grid.getHexaIJK (ic2, nj, kc2))
122 orig2 = the_doc.addVertex (xc2, 0, zc2)
123 vxz = the_doc.addVector (1,0,1)
128 theta = 360.0 / nbsect
129 cyl2_ray = [ rayon, rext]
131 for na in range (nbsect+1) :
132 cyl2_ang.append (na*theta)
135 cyl2 = the_doc.makePipe (orig2, vxz, vy, cyl2_ray, cyl2_ang, cyl2_h)
138 va1 = cyl2 .getVertexIJK (1, 0, 0)
139 va2 = cyl2 .getVertexIJK (1, 0, 1)
140 vc1 = the_grid.getVertexIJK (ic2+1, 0, kc2+1)
141 vc2 = the_grid.getVertexIJK (ic2+1, 1, kc2+1)
143 cible = the_grid.getQuadJK (ic2+1, 0, kc2)
145 for nk in range (len(cyl2_h)-1) :
146 for nj in range (len(cyl2_ang)-1) :
147 tab_quads.append (cyl2.getQuadJK (1, nj, nk))
159 tab_quads[0].setColor (5)
163 the_doc.joinQuadsUni (tab_quads, cible, va1, vc1, va2, vc2, 1)
167 # ======================================================= trait_vertical
168 def trait_vertical () :
171 for nk in range (kmax) :
172 for nj in range (2) :
173 the_doc.removeHexa (the_grid.getHexaIJK (ivert,nj,nk))
175 # ================================================================= make_pave
178 global the_doc, the_grid, tab_y, tab_z, vz, vy
180 the_doc = hexablock.addDocument (the_name)
181 vx = the_doc.addVector (1,0,0)
182 vy = the_doc.addVector (0,1,0)
183 vz = the_doc.addVector (0,0,1)
184 orig = the_doc.addVertex (0, 0, 0)
187 tab_x = [50, 62.5, 67.5, 70, 75, 85, 105, 120]
188 tab_y = [10, 15, 22.5, 25, 27.5, 40]
189 tab_z = [25, 40, 50, 53]
191 tab_x = [50, 55, 62.5, 67.5, 75, 85, 95, 115, 120]
192 tab_y = [10, 15, 22.5, 27.5, 35, 40]
193 tab_z = [10, 30, 40, 50, 53]
197 the_grid = the_doc.makeCartesian (orig, vx, vy, vz, tab_x, tab_y, tab_z)
200 global imax, jmax, kmax
203 kmax = len (tab_z) - 1
207 the_doc.removeHexa (the_grid.getHexaIJK (0,0,kmax-1))
220 print " ________________________ Maillage"
221 the_doc.addLaws (2, True)
222 mesh_hexas = hexablock.mesh(the_doc)
225 the_doc.save (the_name)
233 # ================================================================= Begin