2 # Hexa : Utilitaires de creation de la tape
23 # ======================================================== add_document
24 def add_document (name, load_geom=True) :
26 global the_doc, the_shape, the_name
29 the_doc = hexablock.addDocument (name)
33 brep = 'cas_edf/' + name + '.brep'
34 geom = geompy.ImportBREP (brep)
35 the_shape = hexablock.addShape (the_doc, geom , name)
39 # ============================================================= add_edge
40 def add_edge (nro, v1,v2, ass=True) :
41 edge = the_doc.addEdge (v1,v2)
43 edge.addAssociation (the_shape, nro, 0.0, 1.0)
46 # ============================================================= mailler0
47 def mailler0 (doc=None) :
52 law = doc.addLaw('Uniform', 3)
53 for j in range(doc.countPropagation()) :
54 propa = doc.getPropagation(j)
57 mesh_hexas = hexablock.mesh(doc)
60 # ============================================================= mailler
61 def mailler (doc=None) :
66 doc.addLaws (10, True)
67 mesh_hexas = hexablock.mesh(doc)
70 # ============================================================= egalite
71 def egalite (px, py) :
73 return delta > -Epsilon and delta < Epsilon
75 # ============================================================= add_value
76 def add_value (table, value) :
80 if egalite (val, value) :
86 # ========================================================== raz_points
89 global nbr_points, x_moy, y_fix, z_min, z_max
98 # ============================================================= add_point
99 def add_point (px, py, pz) :
101 global nbr_points, x_moy, y_fix, z_min, z_max
110 if pz < z_min : z_min = pz
111 if pz > z_max : z_max = pz
119 # ========================================================== gen_cylinder
120 def gen_cylinder () :
122 global nbr_points, x_moy, y_fix, z_min
124 x_moy = x_moy / nbr_points
126 ta = [ 0, 90, 180, 270, 360 ]
132 add_value (tab_ray, val-x_moy)
137 add_value (tab_haut, val)
141 orig = the_doc.addVertex (x_moy, y_fix, 0)
142 vx = the_doc.addVector (1, 0, 0)
143 vz = the_doc.addVector (0, 0, 1)
144 grid = the_doc.makePipe (orig, vx, vz, tab_ray, ta, tab_haut)
148 # ========================================================== gen_vis
151 global nbr_points, x_moy, y_fix, z_min
153 x_moy = x_moy / nbr_points
155 xmed = tab_x [0] - x_moy
167 elif val < xmax and val > xmed :
172 if val < z_max and val > z_top :
175 tr = [ xmin, xmed, xmax ]
176 tz = [ z_min, z_top, z_max ]
177 ta = [ 0, 90, 180, 270, 360 ]
179 orig = the_doc.addVertex (x_moy, y_fix, 0)
180 vx = the_doc.addVector (1, 0, 0)
181 vz = the_doc.addVector (0, 0, 1)
183 grid = the_doc.makePipe (orig, vx, vz, tr, ta, tz)
185 for na in range (4) :
186 grid.getHexaIJK (1, na, 0).remove()