Files
@ 3cb27b58edd5
Branch filter:
Location: Wearables/Neopixel-Respirator/3D_Models/Version_0_2.scad - annotation
3cb27b58edd5
2.1 KiB
text/plain
Added tag h0.1v0.1 for changeset 9b1a5d5af6f4
42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 42438f7c2359 | 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();
|