Changeset - 2a624ea60185
[Not reviewed]
default
0 0 2
Dennis Fink - 6 years ago 2018-02-04 00:24:56
dennis.fink@c3l.lu
Add version 0.1 and 0.2
2 files changed with 158 insertions and 0 deletions:
0 comments (0 inline, 0 general)
Version_0_1.scad
Show inline comments
 
new file 100644
 
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();
 
\ No newline at end of file
Version_0_2.scad
Show inline comments
 
new file 100644
 
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();
 
\ No newline at end of file
0 comments (0 inline, 0 general)