module interior ( width, depth, height ) { translate([0, depth/2 - thickness/2]) { cube(size=[width, thickness, floor_thickness], center=false); //X } translate([width/2 - thickness/2, 0]) { cube(size=[thickness, depth, floor_thickness], center=false); //Y } } module pillar ( width, depth, height ) { xcenter = (width/2 + thickness/2); ycenter = (depth/2 + thickness/2); translate([(xcenter - thickness), (ycenter - thickness)]) { cube(size=[thickness, thickness, height], center=false); } } module exterior ( width, depth, height ) { //Front cube(size=[width, thickness, floor_thickness], center=false); //Back translate([0, depth-thickness, 0]) { cube(size=[width, thickness, floor_thickness], center=false); } //Left cube(size=[thickness, depth, floor_thickness], center=false); //Right translate([width-thickness, 0, 0]) { cube(size=[thickness, depth, floor_thickness], center=false); } } module component( enable_interior=true, enable_pillar=true, enable_exterior=true, in_width = 50, in_depth = 50, in_height = 50) { width = in_width - buffer; depth = in_depth - buffer; height = in_height - buffer; if(enable_interior) { interior(width, depth, height); } if(enable_pillar) { pillar(width, depth, height); } if(enable_exterior) { exterior(width, depth, height); } } module test( wide = 100, deep = 100, high = 100, spacing = 10) { translate([-(wide+spacing),0,0]){ component(false, false, true, wide, deep, high); } translate([0,(deep+spacing),0]){ component(true, false, false, wide, deep, high); }; translate([0,0,0]){ component(true, false, true, wide, deep, high); } translate([-(wide+spacing),(deep+spacing),0]){ component(true, true, true, wide, deep, high); } } floor_thickness=2; thickness=5; buffer = 2; //test(150, 150, 100, 20); //Mini translate([0,0,0]){ component(true, true, true, 155, 155, 158); } //TAZ 5 translate([200,0,0]){ component(true, true, true, 290, 275, 250); } //TAZ 6 translate([600,0,0]){ component(true, true, true, 280, 280, 250); }