Files
@ 42438f7c2359
Branch filter:
Location: Wearables/Neopixel-Respirator/3D_Models/Version_0_2.scad - annotation
42438f7c2359
2.1 KiB
text/plain
Move 3d models to subdirectory
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();
|