5,6c5,6 < //anvil(); < pointer($vpt, [0,0,0]); --- > anvil(); > //pointer([ -31.33, 8.53, 60.00 ], [0,0,0]); 8c8,10 < --- > //[ -41.33, 8.53, 47.00 ] > //[ -21.33, 8.53, 41.00 ] > //[ -31.33, 8.53, 60.00 ] 38a41,93 > //********** Nose Block ************ > hull_shape([ > [ -41.33, 8.53, 60.00 ], > [ -41.33, 8.53, 47.00 ], > [ -21.33, 8.53, 41.00 ], > [ -31.33, 8.53, 60.00 ]], > y_sym = true) cube(0.01,center=true); > } > } > } > > /* > * This module creates shapes by hulling together shapes at locations passed in the array > * hull_array > * > * The optional array child_num holds indexes to children passed in through the tree > * corresponding to each location. That allows one to control the shape used in the > * hull at each location. If there is no array children(0) will be used at all points. > * > * x_sym, y_sym, z_sym are optional parameters to indicate symmetry around the > * x axis, y axis and/or z axis respectively. The defaults are false (no symmetry) > */ > module hull_shape(hull_array, child_num, x_sym = false, y_sym = false, z_sym = false) > { > hull() > { > for(i = [0:len(hull_array) -1]) > { > shp_idx = child_num != undef? > len(child_num)>i?child_num[i]:0 > :0; > translate(hull_array[i]) children(shp_idx); > if(x_sym) > { > translate([-hull_array[i][0], > hull_array[i][1], > hull_array[i][2]]) > children(shp_idx); > } > if(y_sym) > { > translate([hull_array[i][0], > -hull_array[i][1], > hull_array[i][2]]) > children(shp_idx); > } > if(z_sym) > { > translate([hull_array[i][0], > hull_array[i][1], > -hull_array[i][2]]) > children(shp_idx); > }