thickness=18; L=250; H=250; roofH=250; hole=70; explode=0; drill=6; holeBlock=8; laser=0; module frontBack(hole){ difference(){ cube([2*thickness+L,thickness,H+thickness*6],center=true); translate([0,0,-H/10]){ rotate([90,0,0]) cylinder(d=hole,H,center=true,$fn=100); translate([0,0,-hole/4]) cube([hole,hole,hole/2],center=true); } minkowski(){ translate([0,0,(-H-thickness)/2]) cube([L-thickness*4+thickness,thickness*2,thickness-drill+2],center=true); rotate([90,0,0]) cylinder(d=drill,h=0.01,center=true,$fn=40); } minkowski(){ translate([0,0,(H+thickness)/2]) cube([L/2+thickness,thickness*2,thickness-drill+2],center=true); rotate([90,0,0]) cylinder(d=drill,h=0.01,center=true,$fn=40); } } } module bottom(){ difference(){ union(){ cube([L,H,thickness],center=true); minkowski(){ cube([L+thickness*4,H/2,thickness],center=true); cylinder(d=thickness,h=0.001,$fn=100); } translate([0,-thickness*4,0]) minkowski(){ cube([L-thickness*4,H+thickness*4+thickness*8,thickness],center=true); cylinder(d=thickness,h=0.001,$fn=100); } } for(i=[0:3]) rotate([0,0,90*i]){ translate([L/4.5,L/2+thickness+holeBlock/2,0]) cylinder(d=8,h=thickness+1,center=true,$fn=20); translate([0,L/2+thickness+holeBlock/2,0]) cylinder(d=8,h=thickness+1,center=true,$fn=20); translate([-L/4.5,L/2+thickness+holeBlock/2,0]) cylinder(d=8,h=thickness+1,center=true,$fn=20); } } } module top(){ difference(){ union(){ cube([L,H,thickness],center=true); minkowski(){ cube([L+thickness*4,H/2,thickness],center=true); cylinder(d=thickness,h=0.001,$fn=100); } minkowski(){ cube([L/2,H+thickness*4,thickness],center=true); cylinder(d=thickness,h=0.001,$fn=100); } } for(i=[0:3]) rotate([0,0,90*i]){ translate([L/4.5,L/2+thickness+holeBlock/2,0]) cylinder(d=8,h=thickness+1,center=true,$fn=20); translate([0,L/2+thickness+holeBlock/2,0]) cylinder(d=8,h=thickness+1,center=true,$fn=20); translate([-L/4.5,L/2+thickness+holeBlock/2,0]) cylinder(d=8,h=thickness+1,center=true,$fn=20); } } } module side(){ difference(){ cube([thickness,L,H+thickness*6],center=true); minkowski(){ translate([0,0,(-H-thickness)/2]) cube([thickness*2,H/2+thickness,thickness-drill+2],center=true); rotate([0,90,0]) cylinder(d=drill,h=0.01,center=true,$fn=40); } minkowski(){ translate([0,0,(H+thickness)/2]) cube([thickness*2,H/2+thickness,thickness-drill+2],center=true); rotate([0,90,0]) cylinder(d=drill,h=0.01,center=true,$fn=40); } } } if(laser==0) { translate([0,0,H/2]){ translate([0,0,(-H-thickness)/2-explode]) bottom(); translate([0,0,(H+thickness)/2+explode]) top(); translate([0,(H+thickness)/2-explode,0]) frontBack(hole=0); translate([0,(-H-thickness)/2-explode,0]) frontBack(hole=hole); translate([(-H-thickness)/2-explode,0,0]) side(); translate([(H+thickness)/2+explode,0,0]) side(); } } else projection(){ rotate([90,0,0]) frontBack(hole=hole); //bottom(); //translate([H+100,0,0]) //top(); //rotate([0,0,90]) //rotate([0,90,0]) //side(); //rotate([90,0,0]) // frontBack(hole=0); }