Files
@ b7b7c4d94bc2
Branch filter:
Location: Wearables/Neopixel-Respirator/3D_Models/Holder.scad - annotation
b7b7c4d94bc2
2.4 KiB
text/plain
Use different cable channels
9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 441c600a664e 441c600a664e 9b1a5d5af6f4 441c600a664e 441c600a664e 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 9b1a5d5af6f4 de26204a47cd b7b7c4d94bc2 b7b7c4d94bc2 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 b7b7c4d94bc2 9b1a5d5af6f4 9b1a5d5af6f4 be58095e6635 be58095e6635 be58095e6635 b7b7c4d94bc2 b7b7c4d94bc2 be58095e6635 be58095e6635 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 be58095e6635 441c600a664e 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 9b1a5d5af6f4 de26204a47cd de26204a47cd de26204a47cd de26204a47cd 9b1a5d5af6f4 9b1a5d5af6f4 be58095e6635 be58095e6635 be58095e6635 | 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 + 0.5;
ring_24_inner_diameter = 52.3 - 0.5;
ring_12_outer_diameter = 36.8 + 0.5;
ring_12_inner_diameter = 23.3 - 0.5;
ring_thickness = 6.7;
ring_z_offset = neopixel_holder_thickness - ring_thickness;
channel_length = ring_24_inner_diameter/2;
channel_width = 4;
channel_angle = 32.5;
main_channel_diameter = 10;
alignment_pin_position = (-overall_outer_diameter/2) + 1.5;
alignment_pin_width = 4;
alignment_pin_length = ((overall_outer_diameter/2 - ring_24_outer_diameter/2)/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), -(channel_width/2), ring_z_offset])
cube([channel_length, channel_width, ring_thickness+1]);
for (angle=[channel_angle, -channel_angle])
rotate([0, 0, angle])
translate([0, -(channel_width/2), ring_z_offset])
cube([channel_length, channel_width, ring_thickness+1]);
translate([0, 0, -1])
cylinder(h=neopixel_holder_thickness+2, d=main_channel_diameter);
};
module alignment_pin() {
for (x=[0, 1])
mirror([x, 0, 0])
translate([alignment_pin_position, -(alignment_pin_width-0.2)/2, ring_z_offset])
cube([alignment_pin_length, alignment_pin_width-0.2, neopixel_holder_thickness - ring_z_offset + 0.1]);
}
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();
alignment_pin();
}
};
module translucent_disk() {
cylinder(h=translucent_disk_thickness, d=overall_outer_diameter);
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]);
};
neopixel_holder();
// translate([-(overall_outer_diameter/2+1), 0, 0]) neopixel_holder();
//translate([(overall_outer_diameter/2+1), 0, 0]) translucent_disk();
|