|
|
@ -63,8 +63,8 @@ module screwhole() { |
|
|
|
module rail() { |
|
|
|
rotate([90,0,0]) { |
|
|
|
difference() { |
|
|
|
linear_extrude(height=57+8+2) polygon([[-1.4,0],[1.4,0],[2.4,4],[-2.4,4]]); |
|
|
|
translate([-5,0,57+10]) rotate([-45,0,0]) cube([10,10,10]); |
|
|
|
linear_extrude(height=57+2) polygon([[-1.4,0],[1.4,0],[2.4,4],[-2.4,4]]); |
|
|
|
translate([-5,0,57+2]) rotate([-45,0,0]) cube([10,10,10]); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -76,14 +76,35 @@ module helper_cut() { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
module stand1() { |
|
|
|
difference() { |
|
|
|
union() { |
|
|
|
translate([-8,0,-12]) cube([10,57,12+0.2]); |
|
|
|
translate([0,0,-12]) cylinder(r=8,h=12+0.2); |
|
|
|
translate([0,57,-12]) cylinder(r=8,h=12+0.2); |
|
|
|
} |
|
|
|
translate([-20,57/2-4+2,-23]) rotate([0,90,0]) cylinder(r=28,h=200); |
|
|
|
translate([0,-20,-20]) cube([130-4,100,30]); |
|
|
|
} |
|
|
|
difference() { |
|
|
|
union() { |
|
|
|
translate([130-6,0,-12]) cube([10,57,12+0.2]); |
|
|
|
translate([130-4,0,-12]) cylinder(r=8,h=12+0.2); |
|
|
|
translate([130-4,57,-12]) cylinder(r=8,h=12+0.2); |
|
|
|
} |
|
|
|
translate([-20,57/2-4+2,-23]) rotate([0,90,0]) cylinder(r=28,h=200); |
|
|
|
translate([0,-20,-20]) cube([130-4,100,30]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
module base(height) { |
|
|
|
difference() { |
|
|
|
union() { |
|
|
|
difference() { |
|
|
|
union() { |
|
|
|
box(height); |
|
|
|
translate([-4,57+8,81.8]) rail(); |
|
|
|
translate([130,57+8,81.8]) rail(); |
|
|
|
translate([-4,57,81.8]) rail(); |
|
|
|
translate([130,57,81.8]) rail(); |
|
|
|
} |
|
|
|
translate([5,-15,-1]) louver(117,25,9); |
|
|
|
translate([130-4+15,3,-1]) rotate([0,0,90]) louver(50,25,9); |
|
|
@ -92,6 +113,7 @@ module base(height) { |
|
|
|
} |
|
|
|
translate([-1.4,20,0]) cube([1.4,12,80+2]); |
|
|
|
translate([126,20,0]) cube([1.4,12,80+2]); |
|
|
|
stand1(); |
|
|
|
} |
|
|
|
translate([-2,27,5]) rotate([90,0,0]) PCB(); |
|
|
|
translate([-2.6,27,0]) helper_cut(); // make this fdm-printable on front face |
|
|
@ -107,7 +129,7 @@ module base(height) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
module top() { |
|
|
|
module roof1() { |
|
|
|
difference() { |
|
|
|
translate([0,0,82.4]) |
|
|
|
minkowski() { |
|
|
@ -125,42 +147,21 @@ module top() { |
|
|
|
cylinder(r=0.4,h=0.4); |
|
|
|
} |
|
|
|
} |
|
|
|
translate([-4,57+2,82+7.6+2]) rail(); |
|
|
|
translate([130,57+2,82+7.6+2]) rail(); |
|
|
|
} |
|
|
|
|
|
|
|
//color([0,1,0]) |
|
|
|
difference() { |
|
|
|
base(80); |
|
|
|
translate([-50,56.8,-10]) cube([250,20,100]); // subtract back |
|
|
|
translate([-50,56.8,-30]) cube([250,20,150]); // subtract back |
|
|
|
} |
|
|
|
|
|
|
|
//color([0,0,1]) |
|
|
|
% difference() { |
|
|
|
base(80+10); |
|
|
|
translate([-50,-20,-10]) cube([250,20+56.8,120]); // subtract front |
|
|
|
translate([-50,-20,-30]) cube([250,20+56.8,150]); // subtract front |
|
|
|
} |
|
|
|
|
|
|
|
//color([1,0,0]) |
|
|
|
% top(); |
|
|
|
|
|
|
|
module stand1() { |
|
|
|
difference() { |
|
|
|
union() { |
|
|
|
translate([-8,0,-12]) cube([10,57,12+0.2]); |
|
|
|
translate([0,0,-12]) cylinder(r=8,h=12+0.2); |
|
|
|
} |
|
|
|
translate([-20,57/2-4+2,-23]) rotate([0,90,0]) cylinder(r=28,h=200); |
|
|
|
translate([0,-20,-20]) cube([130-4,100,30]); |
|
|
|
} |
|
|
|
difference() { |
|
|
|
union() { |
|
|
|
translate([130-6,0,-12]) cube([10,57,12+0.2]); |
|
|
|
translate([130-4,0,-12]) cylinder(r=8,h=12+0.2); |
|
|
|
} |
|
|
|
translate([-20,57/2-4+2,-23]) rotate([0,90,0]) cylinder(r=28,h=200); |
|
|
|
translate([0,-20,-20]) cube([130-4,100,30]); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
color([0,0,1]) stand1(); |
|
|
|
% roof1(); |