Project multi box

From MakeICT Wiki
Jump to navigationJump to search

//Sides=2*3*5*7*11*13*17; (Each number corresponds to a side, 2= top, 5 = bottom, and 13,17 are the sides)
Sides=3*7;
thickness_top=2.4; //Used for side 2
thickness_side=2.3;
thickness_bottom=1; //used for side 5
outer=30;
slot_thickness=1;
side_thickness=2;
bottom_slot_thickness = -2; //Use negatives for NO lip. Also, check to make sure it gets to the inner box!
inner=outer-side_thickness*2+0.1;

difference(){
    cube([outer,outer,outer]);
    translate([side_thickness,side_thickness,side_thickness]) {
        cube([inner,inner,inner]);
    }
    if (Sides % 2 != 0)
    {
        translate([slot_thickness,slot_thickness,outer-thickness_top-side_thickness]){
            cube([outer-slot_thickness*2,outer-slot_thickness*1+0.01,thickness_top]);
        }
        translate([side_thickness,side_thickness,outer-thickness_top-side_thickness-0.001]){
            cube([outer-side_thickness*2,outer-side_thickness*2,thickness_top+2+0.02]);
        }
            
    }
    
    if (Sides % 5 != 0)
    {
        if (bottom_slot_thickness >= 0){
            translate([slot_thickness,slot_thickness,thickness_bottom]){
                
                    cube([outer-slot_thickness*2,outer-slot_thickness*1+0.01,thickness_bottom]);
            }
            translate([side_thickness,side_thickness,0]){
                    cube([outer-side_thickness*2,outer-side_thickness*2,thickness_bottom]);
                
            }
        } else {
            translate([slot_thickness,slot_thickness,-0.02]){
                cube([outer-slot_thickness*2,outer-slot_thickness*2,thickness_bottom-bottom_slot_thickness+0.02]);
            }
        }
    }
    
    
    if (Sides %3 != 0) {
        translate([0,outer+0.01,0]) {
            rotate([90,0,0]) {
                translate([slot_thickness,slot_thickness,side_thickness]){
                    cube([outer-slot_thickness*2,outer-slot_thickness*1+0.01,thickness_bottom]);
                }
                translate([side_thickness,side_thickness,0]){
                    cube([outer-side_thickness*2,outer-side_thickness*2,thickness_bottom+2]);
                }
            }
        }
    }
    if (Sides %7 != 0) {
        translate([0,outer-0.01,0]) {
            rotate([90,0,0]) {
                translate([slot_thickness,slot_thickness,outer-thickness_top-side_thickness]){
                    cube([outer-slot_thickness*2,outer-slot_thickness*1,thickness_top]);
                }
                translate([side_thickness,side_thickness,outer-thickness_top-side_thickness]){
                    cube([outer-side_thickness*2,outer-side_thickness*2,thickness_top+2]);
                }
            }
        }    
    }
        
}