Files
@ 2a624ea60185
Branch filter:
Location: Wearables/Neopixel-Respirator/Version_0_2.scad - annotation
2a624ea60185
2.1 KiB
text/plain
Add version 0.1 and 0.2
2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 2a624ea60185 | 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();
|