|
new file 100644
|
|
|
overall_outer_diameter = 75;
|
|
|
overall_thickness = 15;
|
|
|
|
|
|
neopixel_holder_thickness = 7.5;
|
|
|
translucent_disk_thickness = overall_thickness - neopixel_holder_thickness;
|
|
|
|
|
|
ring_24_outer_diameter = 65.6;
|
|
|
ring_24_inner_diameter = 52.3;
|
|
|
|
|
|
ring_12_outer_diameter = 36.8;
|
|
|
ring_12_inner_diameter = 23.3;
|
|
|
|
|
|
ring_thickness = 6.7;
|
|
|
ring_z_offset = neopixel_holder_thickness - ring_thickness;
|
|
|
|
|
|
channel_length = overall_outer_diameter-3;
|
|
|
|
|
|
alignment_pin_position = (-overall_outer_diameter/2) + 1.5;
|
|
|
|
|
|
$fn = 200;
|
|
|
|
|
|
module ring(h, od, id) {
|
|
|
difference() {
|
|
|
cylinder(h=h, d=od);
|
|
|
cylinder(h=h, d=id);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
module channel() {
|
|
|
translate([-(channel_length/2), -2, ring_z_offset]) cube([channel_length, 4, ring_thickness+1]);
|
|
|
translate([0, 0, -1]) cylinder(h=neopixel_holder_thickness+2, d=10);
|
|
|
};
|
|
|
|
|
|
module neopixel_holder() {
|
|
|
|
|
|
difference () {
|
|
|
|
|
|
cylinder(h=neopixel_holder_thickness, d=overall_outer_diameter);
|
|
|
|
|
|
for (d=[[ring_24_outer_diameter, ring_24_inner_diameter], [ring_12_outer_diameter, ring_12_inner_diameter]])
|
|
|
translate([0, 0, ring_z_offset])
|
|
|
ring(h=ring_thickness+1, od=d[0], id=d[1]);
|
|
|
|
|
|
channel();
|
|
|
|
|
|
for (y=[0, 1])
|
|
|
mirror([0, y, 0])
|
|
|
mirror([1, 1, 0])
|
|
|
translate([alignment_pin_position, -2, ring_z_offset])
|
|
|
cube([5, 4, ring_thickness+1]);
|
|
|
|
|
|
};
|
|
|
|
|
|
};
|
|
|
|
|
|
module translucent_disk() {
|
|
|
cylinder(h=translucent_disk_thickness, d=overall_outer_diameter);
|
|
|
|
|
|
|
|
|
for (y=[0, 1])
|
|
|
mirror([0, y, 0])
|
|
|
mirror([1, 1, 0])
|
|
|
translate([alignment_pin_position, -(4-0.2)/2, translucent_disk_thickness])
|
|
|
cube([3, 4-0.2, neopixel_holder_thickness -ring_z_offset]);
|
|
|
for (x=[0, 1])
|
|
|
mirror([x, 0, 0])
|
|
|
translate([alignment_pin_position, -(4-0.2)/2, translucent_disk_thickness])
|
|
|
cube([3, 4-0.2, neopixel_holder_thickness -ring_z_offset]);
|
|
|
};
|
|
|
|
|
|
translate([-(overall_outer_diameter/2+1), 0, 0]) neopixel_holder();
|
|
|
translate([(overall_outer_diameter/2+1), 0, 0]) translucent_disk();
|
|
\ No newline at end of file
|