Files
@ 3cb27b58edd5
Branch filter:
Location: Wearables/Neopixel-Respirator/3D_Models/Holder.scad - annotation
3cb27b58edd5
2.9 KiB
text/plain
Added tag h0.1v0.1 for changeset 9b1a5d5af6f4
9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 | 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 = (ring_12_outer_diameter - ring_12_inner_diameter);
channel_position = (-ring_12_outer_diameter - ring_12_inner_diameter)/2;
cable_channel_width = (overall_outer_diameter/2 - ring_24_outer_diameter/2)/2;
cable_channel_position = (-overall_outer_diameter/2) + cable_channel_width;
alignment_pin_diameter = 2.5;
alignment_pin_height = neopixel_holder_thickness - 2.5;
alignment_pin_position = (-overall_outer_diameter/2) + alignment_pin_diameter;
$fn = 200;
module ring(h, od, id) {
difference() {
cylinder(h=h, d=od);
cylinder(h=h, d=id);
}
};
module channel() {
translate([channel_position, -1.25, ring_z_offset])
cube([channel_length, 2.5, ring_thickness+1]);
mirror([1, 0, 0])
translate([channel_position, -1.25, ring_z_offset])
cube([channel_length, 2.5, ring_thickness+1]);
translate([cable_channel_position, 0, -1])
cylinder(h=neopixel_holder_thickness+2, d=2.5);
translate([cable_channel_position, -1.25, ring_z_offset])
cube([cable_channel_width+0.1, 2.5, ring_thickness+0.1]);
};
module neopixel_holder() {
alignment_pin_z_position = neopixel_holder_thickness - alignment_pin_height;
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();
translate([-alignment_pin_position, 0, alignment_pin_z_position])
cylinder(h=alignment_pin_height+0.1, d=alignment_pin_diameter);
for (y=[alignment_pin_position, -alignment_pin_position])
translate([0, y, alignment_pin_z_position])
cylinder(h=alignment_pin_height+0.1, d=alignment_pin_diameter);
};
};
module translucent_disk() {
alignment_pin_diameter_l = alignment_pin_diameter - 0.1;
cylinder(h=translucent_disk_thickness, d=overall_outer_diameter);
translate([-alignment_pin_position, 0, translucent_disk_thickness])
cylinder(h=alignment_pin_height, d=alignment_pin_diameter_l);
for (y=[alignment_pin_position, -cable_channel_position])
translate([0, y, translucent_disk_thickness])
cylinder(h=alignment_pin_height, d=alignment_pin_diameter_l);
};
translate([-(overall_outer_diameter/2+1), 0, 0]) neopixel_holder();
translate([(overall_outer_diameter/2+1), 0, 0]) rotate([180, 180, 0]) translucent_disk();
|