2018-07-14 14:46:44 +00:00
|
|
|
include <./ready.scad>;
|
2018-07-14 14:29:43 +00:00
|
|
|
|
|
|
|
OUTER_D = 44.45;
|
|
|
|
CAP_D = 57.15;
|
|
|
|
WALL_THICKNESS = 3;
|
|
|
|
LENGTH = 95.25;
|
|
|
|
$fn = 100;
|
|
|
|
|
|
|
|
module rail_neg () {
|
|
|
|
cube([17.4, 4, 120], center = true);
|
|
|
|
cube([35, 4, 95], center = true);
|
|
|
|
|
|
|
|
translate([17.4, -1.5, 0]) cube([17.5, 4, 96], center = true);
|
|
|
|
translate([-17.4, -1.5, 0]) cube([17.5, 4, 96], center = true);
|
|
|
|
}
|
|
|
|
|
|
|
|
module rail_guide () {
|
|
|
|
translate([10.2, 0, 0]) cube([3, 4, 72], center = true);
|
|
|
|
translate([-10.2, 0, 0]) cube([3, 4, 72], center = true);
|
|
|
|
translate([10.2 - .6, 1.5, 0]) cube([4.3, 1, 72], center = true);
|
|
|
|
translate([-10.2 + .6, 1.5, 0]) cube([4.3, 1, 72], center = true);
|
|
|
|
}
|
|
|
|
|
|
|
|
module fan_holes () {
|
|
|
|
dist = 29;
|
|
|
|
cylinder(r = 34/2, h = 500, center = true);
|
|
|
|
translate([dist/2, dist/2, 0]) cylinder(r = 2.9/2, h = 500, center = true);
|
|
|
|
translate([dist/2, -dist/2, 0]) cylinder(r = 2.9/2, h = 500, center = true);
|
|
|
|
//translate([-dist/2, -dist/2, 0]) cylinder(r = 2.9/2, h = 500, center = true);
|
|
|
|
translate([-dist/2 + 2.1, -dist/2 + 2.1, 0]) rotate([0, 0, 45]) cube([5, 5, 500], center = true);
|
|
|
|
translate([-dist/2, dist/2, 0]) cylinder(r = 2.9/2, h = 500, center = true);
|
|
|
|
}
|
|
|
|
|
|
|
|
module light_holder (DECOYS = false) {
|
|
|
|
//cap
|
|
|
|
$fn = 200;
|
|
|
|
difference () {
|
|
|
|
translate([0,0,(LENGTH / 2) + (WALL_THICKNESS / 2) ]) {
|
|
|
|
cylinder(r = CAP_D / 2, h = WALL_THICKNESS, center = true);
|
|
|
|
}
|
|
|
|
translate([0, 22, 0]) rail_neg();
|
|
|
|
fan_holes();
|
|
|
|
}
|
|
|
|
|
|
|
|
//tube
|
|
|
|
difference () {
|
|
|
|
cylinder(r = OUTER_D / 2, h = LENGTH, center = true);
|
|
|
|
cylinder(r = (OUTER_D / 2) - WALL_THICKNESS, h = LENGTH + 10, center = true);
|
|
|
|
translate([0, 22, 0]) rail_neg();
|
|
|
|
//light
|
|
|
|
translate([0, 20, -41 + 6]) rotate([90, 0, 0]) cylinder(r = 13/2, h = 25, center = true);
|
|
|
|
}
|
|
|
|
//rail
|
|
|
|
translate([0, 20.5, 12]) rail_guide();
|
|
|
|
if (DECOYS) {
|
|
|
|
decoys(36, 48.6, 6);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
module rail (DECOYS = false) {
|
|
|
|
difference () {
|
|
|
|
union () {
|
|
|
|
translate([0, 20.7, 2.4]) cube([17, 1.3, 100], center = true);
|
|
|
|
translate([0, 21.9, 2.4]) cube([14.2, 2.8, 100], center = true);
|
|
|
|
}
|
|
|
|
translate([0, 20, -41 + 6]) rotate([90, 0, 0]) cylinder(r = 9/2, h = 25, center = true);
|
|
|
|
translate([0, 23.4, -41 + 6]) rotate([90, 0, 0]) cylinder(r = 13/2, h = 3, center = true);
|
|
|
|
}
|
|
|
|
translate([0, 24, 52.2]) cube([24, 8, 3], center = true);
|
|
|
|
if (DECOYS) {
|
|
|
|
translate([0, 0, -35]) rotate([90, 45, 0]) decoys(25, -22.05);
|
|
|
|
translate([0, 0, 42]) rotate([90, 45, 0]) decoys(25, -22.05);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
module baffle (DECOYS = false) {
|
|
|
|
//print 3 of these
|
|
|
|
difference () {
|
|
|
|
cylinder(r = (OUTER_D / 2) - WALL_THICKNESS - 0.3, h = 7, center = true);
|
|
|
|
cylinder(r = (OUTER_D / 2) - WALL_THICKNESS - 2, h = 8, center = true);
|
|
|
|
}
|
|
|
|
difference () {
|
|
|
|
translate([0, 0, 2.5]) cylinder(r = (OUTER_D / 2) - WALL_THICKNESS - 0.3, h = 2, center = true);
|
|
|
|
translate([58, 0, 0]) cube([100, 100, 100], center = true);
|
|
|
|
}
|
|
|
|
if (DECOYS) {
|
|
|
|
decoys(28, 1.5, 6);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module LED_mount () {
|
|
|
|
$fn = 200;
|
|
|
|
difference () {
|
|
|
|
cylinder(r = (OUTER_D / 2) - WALL_THICKNESS - 0.015, h = 10, center = true);
|
|
|
|
cylinder(r = (OUTER_D / 2) - WALL_THICKNESS - 0.015 - 2, h = 11, center = true);
|
|
|
|
translate([0, (OUTER_D / 2) +4, 0]) cube([OUTER_D, OUTER_D, OUTER_D], center = true);
|
|
|
|
}
|
|
|
|
translate ([0, 0, -4.5]) {
|
|
|
|
intersection() {
|
|
|
|
difference () {
|
|
|
|
cylinder(r = (OUTER_D / 2) - WALL_THICKNESS - 0.015, h = 15, center = true);
|
|
|
|
cylinder(r = (OUTER_D / 2) - WALL_THICKNESS - 0.015 - 2, h = 16, center = true);
|
|
|
|
}
|
|
|
|
translate ([0, -17, -1]) cube([7, 7, 15], center = true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
difference () {
|
|
|
|
union () {
|
|
|
|
difference () {
|
|
|
|
translate([0, -6, 0]) cube([OUTER_D - 8, 2, 10], center = true);
|
|
|
|
translate([OUTER_D / 2 - 3.5, -6.5, 0]) rotate([0, 0, 60]) cube([4, 2, 10], center = true);
|
|
|
|
translate([-OUTER_D / 2 + 3.5, -6.5, 0]) rotate([0, 0, -60]) cube([4, 2, 10], center = true);
|
|
|
|
}
|
|
|
|
translate([7.5, -5, 0]) cube([4, 4, 10], center = true);
|
|
|
|
translate([-7.5, -5, 0]) cube([4, 4, 10], center = true);
|
|
|
|
}
|
|
|
|
translate([7.5, 0, 0]) rotate([90, 0, 0]) cylinder(r = 1, h = 40, center = true);
|
|
|
|
translate([0, 0, 0]) rotate([90, 0, 0]) cylinder(r = 1, h = 40, center = true);
|
|
|
|
translate([-7.5, 0, 0]) rotate([90, 0, 0]) cylinder(r = 1, h = 40, center = true);
|
|
|
|
}
|
|
|
|
translate([0, -8, 0]) scale([1.5, 1, 1]) decoys(20, 3);
|
|
|
|
}
|
|
|
|
|
|
|
|
//rail(true);
|
|
|
|
/*difference() {
|
|
|
|
light_holder(false);
|
|
|
|
//translate([0, 0, -36]) LED_mount();
|
|
|
|
translate([0, 0, 60]) cube([200, 200, 200], center = true);
|
|
|
|
}
|
|
|
|
decoys(30, -45.64, 6);*/
|
|
|
|
|
|
|
|
baffle();
|