2 # Hexa : Utilitaires de creation de la tape
6 geompy = hexablock.geompy
24 # ======================================================== add_document
25 def add_document (name, load_geom=True) :
27 global the_doc, the_shape, the_name
30 the_doc = hexablock.addDocument (name)
34 brep = 'cas_edf/' + name + '.brep'
35 geom = geompy.ImportBREP (brep)
36 the_shape = hexablock.addShape (the_doc, geom , name)
40 # ============================================================= add_edge
41 def add_edge (nro, v1,v2, ass=True) :
42 edge = the_doc.addEdge (v1,v2)
44 edge.addAssociation (the_shape, nro, 0.0, 1.0)
47 # ============================================================= mailler0
48 def mailler0 (doc=None) :
53 law = doc.addLaw('Uniform', 3)
54 for j in range(doc.countPropagation()) :
55 propa = doc.getPropagation(j)
58 mesh_hexas = hexablock.mesh(doc)
61 # ============================================================= mailler
62 def mailler (doc=None) :
67 doc.addLaws (10, True)
68 mesh_hexas = hexablock.mesh(doc)
71 # ============================================================= egalite
72 def egalite (px, py) :
74 return delta > -Epsilon and delta < Epsilon
76 # ============================================================= add_value
77 def add_value (table, value) :
81 if egalite (val, value) :
87 # ========================================================== raz_points
90 global nbr_points, x_moy, y_fix, z_min, z_max
99 # ============================================================= add_point
100 def add_point (px, py, pz) :
102 global nbr_points, x_moy, y_fix, z_min, z_max
111 if pz < z_min : z_min = pz
112 if pz > z_max : z_max = pz
120 # ========================================================== gen_cylinder
121 def gen_cylinder () :
123 global nbr_points, x_moy, y_fix, z_min
125 x_moy = x_moy / nbr_points
127 ta = [ 0, 90, 180, 270, 360 ]
133 add_value (tab_ray, val-x_moy)
138 add_value (tab_haut, val)
142 orig = the_doc.addVertex (x_moy, y_fix, 0)
143 vx = the_doc.addVector (1, 0, 0)
144 vz = the_doc.addVector (0, 0, 1)
145 grid = the_doc.makePipe (orig, vx, vz, tab_ray, ta, tab_haut)
149 # ========================================================== gen_vis
152 global nbr_points, x_moy, y_fix, z_min
154 x_moy = x_moy / nbr_points
156 xmed = tab_x [0] - x_moy
168 elif val < xmax and val > xmed :
173 if val < z_max and val > z_top :
176 tr = [ xmin, xmed, xmax ]
177 tz = [ z_min, z_top, z_max ]
178 ta = [ 0, 90, 180, 270, 360 ]
180 orig = the_doc.addVertex (x_moy, y_fix, 0)
181 vx = the_doc.addVector (1, 0, 0)
182 vz = the_doc.addVector (0, 0, 1)
184 grid = the_doc.makePipe (orig, vx, vz, tr, ta, tz)
186 for na in range (4) :
187 grid.getHexaIJK (1, na, 0).remove()