|
|
@ -7,19 +7,19 @@ module PCB() { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
module box() { |
|
|
|
module box(height) { |
|
|
|
difference() { |
|
|
|
minkowski() { |
|
|
|
cube([130-4,57,80]); |
|
|
|
cube([130-4,57,height]); |
|
|
|
cylinder(r=8,h=2); |
|
|
|
} |
|
|
|
translate([0,0,2]) cube([130-4,57,80+2]); |
|
|
|
translate([0,0,2]) cube([130-4,57,height+2]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
module louver(x, z, num) { |
|
|
|
for (i=[0:num]) |
|
|
|
translate([0,0,i*9]) |
|
|
|
translate([0,0,i*7]) |
|
|
|
rotate([-45,0,0]) cube([x,3,z]); |
|
|
|
} |
|
|
|
|
|
|
@ -43,15 +43,18 @@ module honeycomb(num_x, num_y, size) { |
|
|
|
|
|
|
|
module mount() { |
|
|
|
rotate([90,90,0]) { |
|
|
|
translate([-4,0,0]) cylinder(r=3,h=12); |
|
|
|
translate([-4,-3,0]) cube([14,6,12]); |
|
|
|
translate([-4,0,0]) cylinder(r=2.5,h=12); |
|
|
|
translate([-4,-2.5,0]) cube([14,5,12]); |
|
|
|
translate([10,0,0]) cylinder(r=5,h=12); |
|
|
|
translate([-20,-5,2+4]) cube([30,10,12-2-4]); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
module screwhole() { |
|
|
|
translate([0,60+10,0]) rotate([90,0,0]) cylinder(r=1.4,h=12+10); |
|
|
|
translate([0,60+10,0]) rotate([90,0,0]) { |
|
|
|
cylinder(r=1.4,h=12+10); |
|
|
|
cylinder(r=3,h=7.8); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
module rail() { |
|
|
@ -63,17 +66,18 @@ module rail() { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
difference() { |
|
|
|
module base(height) { |
|
|
|
difference() { |
|
|
|
union() { |
|
|
|
difference() { |
|
|
|
union() { |
|
|
|
box(); |
|
|
|
box(height); |
|
|
|
translate([-4,57+8,81.8]) rail(); |
|
|
|
translate([130,57+8,81.8]) rail(); |
|
|
|
} |
|
|
|
translate([5,-15,2.6]) louver(120,25,7); |
|
|
|
translate([130-4+15,3,2.6]) rotate([0,0,90]) louver(50,25,7); |
|
|
|
translate([-15,53,2.6]) rotate([0,0,-90]) louver(50,25,7); |
|
|
|
translate([5,-15,2.6]) louver(120,25,9); |
|
|
|
translate([130-4+15,3,2.6]) rotate([0,0,90]) louver(50,25,9); |
|
|
|
translate([-15,53,2.6]) rotate([0,0,-90]) louver(50,25,9); |
|
|
|
translate([5+1,5+1,-0.5]) honeycomb(13,4,4); |
|
|
|
} |
|
|
|
translate([-1.4,20,0]) cube([1.4,12,80+2]); |
|
|
@ -87,5 +91,41 @@ difference() { |
|
|
|
translate([130,0,5]) screwhole(); |
|
|
|
translate([130,0,8+66.6]) screwhole(); |
|
|
|
|
|
|
|
translate([-50,56.8,-10]) cube([250,20,100]); // subtract back |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
module top() { |
|
|
|
difference() { |
|
|
|
translate([0,0,82.4]) |
|
|
|
minkowski() { |
|
|
|
cube([130-4,57,7.6]); |
|
|
|
cylinder(r=8,h=2); |
|
|
|
} |
|
|
|
translate([0,0,74]) rotate([7,0,0]) cube([130-4,57,8]); |
|
|
|
translate([0,-8,74+4+6]) rotate([7,0,0]) cube([130-4,57+2*8,8]); |
|
|
|
minkowski() { |
|
|
|
translate([-4,57+8,81.8]) rail(); |
|
|
|
cylinder(r=0.4,h=0.4); |
|
|
|
} |
|
|
|
minkowski() { |
|
|
|
translate([130,57+8,81.8]) rail(); |
|
|
|
cylinder(r=0.4,h=0.4); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//color([0,1,0]) |
|
|
|
difference() { |
|
|
|
base(80); |
|
|
|
translate([-50,56.8,-10]) cube([250,20,100]); // subtract back |
|
|
|
} |
|
|
|
|
|
|
|
//color([0,0,1]) |
|
|
|
% difference() { |
|
|
|
base(80+10); |
|
|
|
translate([-50,-20,-10]) cube([250,20+56.8,120]); // subtract front |
|
|
|
} |
|
|
|
|
|
|
|
//color([1,0,0]) |
|
|
|
% top(); |
|
|
|