| $fn=100;
|
| in=1;
|
| box_width=5.5*in;
|
| box_depth=20*in;
|
| box_height=7.5*in;
|
| sheet_thickness=.125*in;
|
|
|
| fudge_factor=.0001;
|
|
|
| side_hole_diameter=1.5*in;
|
| bottom_hole_width=.75*in;
|
| bottom_hole_length=2.5*in;
|
| bottom_hole_spacing=4*in;
|
|
|
| side_hole_spacing=2.25*in;
|
|
|
| module delvies_sheet() {
|
| cube([48*in,.125*in,24*in]);
|
| }
|
|
|
| module back_panel() {
|
| cube([box_width,box_height,sheet_thickness]);
|
| }
|
|
|
| module bottom_panel() {
|
| difference() {
|
| cube([box_width,box_depth,sheet_thickness]);
|
| bottom_hole_array();
|
| }
|
| }
|
|
|
| module bottom_hole_array() {
|
| for (i=[1:4]) {
|
| for (j=[1:2]) {
|
| translate([(box_width/3)*j,bottom_hole_spacing*i,0])
|
| scale([bottom_hole_width,bottom_hole_length,1])
|
| cylinder(sheet_thickness+fudge_factor,d=1);
|
| }
|
| }
|
| }
|
| //translate([sheet_thickness*2,box_depth/2,box_height/2])
|
| //rotate([0,270,180])
|
| module side_panel() {
|
| difference() {
|
| cube([box_height,box_depth,sheet_thickness]);
|
| side_panel_helper();
|
| translate([box_height*1/4,box_depth-(side_hole_spacing)*7,0])
|
| side_hole_array(7);
|
| translate([box_height*2/4,box_depth-(side_hole_spacing)*8-side_hole_spacing/2,0])
|
| side_hole_array(8);
|
| translate([box_height*3/4,box_depth-(side_hole_spacing)*8,0])
|
| side_hole_array(8);
|
| }
|
| }
|
|
|
| module side_hole_array(n) {
|
| for (i = [0:n-1]) {
|
| translate([0,0+side_hole_diameter/2+side_hole_spacing*i,0])
|
| cylinder(sheet_thickness+fudge_factor,d=side_hole_diameter);
|
| }
|
| }
|
|
|
| module side_panel_helper() {
|
| difference() {
|
| scale([1/2,1/2,1])
|
| cube([box_height+fudge_factor,box_depth+fudge_factor,sheet_thickness+fudge_factor]);
|
| translate([box_height/2,box_depth/2,0]) scale([box_height+fudge_factor, box_depth+fudge_factor])
|
| cylinder(sheet_thickness*4+fudge_factor, d=1,center=true);
|
| }
|
| }
|
|
|
| module front_panel() {
|
| scale([1,.5,1])
|
| back_panel();
|
| }
|
| module box() {
|
| translate([0,box_depth,0])
|
| rotate([90,0,0])
|
| back_panel();
|
| rotate([90,0,0])
|
| front_panel();
|
| translate([0,0,box_height])
|
| rotate([0,90,0])
|
| side_panel();
|
| translate([box_width,0,box_height])
|
| rotate([0,90,0])
|
| side_panel();
|
| }
|
|
|
| box();
|