diff options
Diffstat (limited to 'prototype/mech_pcbs/flange_holder.scad')
-rw-r--r-- | prototype/mech_pcbs/flange_holder.scad | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/prototype/mech_pcbs/flange_holder.scad b/prototype/mech_pcbs/flange_holder.scad new file mode 100644 index 0000000..d926ef9 --- /dev/null +++ b/prototype/mech_pcbs/flange_holder.scad @@ -0,0 +1,63 @@ +/* Parametric flange model */ + +/* All units are millimeters */ + +$fn = 64; + +num_mounting_holes = 4; +mounting_hole_dia = 2.7; +/* center of shaft to center of mounting holes */ +mounting_hole_shaft_radius = 8.0; +mounting_hole_cutout_dia = 5.0; +base_height = 4.0; +base_dia_extra = 2.0; +base_dia = 2*mounting_hole_shaft_radius + 2*base_dia_extra + mounting_hole_dia; + +shaft_holder_height = 20.0; +shaft_holder_dia = 14.0; + +shaft_dia = 4.0; + +grubscrew_count = 1; +grubscrew_heights = 2; +grubscrew_hole_dia = 3.2; +grubscrew_insert_dia = 6.5; +grubscrew_insert_height = 3.0; +grubscrew_lowest_offset = 5.0; +grubscrew_pitch = 10.0; + +difference() { + union() { + difference() { + cylinder(h=base_height, d=base_dia); + for ( alpha = [ 0 : 360 / num_mounting_holes : 360 ] ) { + rotate(alpha, [0, 0, 1]) + translate([-mounting_hole_shaft_radius, 0, 0]) + cylinder(h=base_height, d=mounting_hole_dia); + } + } + + difference() { + cylinder(h=shaft_holder_height, d=shaft_holder_dia); + cylinder(h=shaft_holder_height, d=shaft_dia); + /* cutouts for mounting hole screw heads */ + for ( alpha = [ 0 : 360 / num_mounting_holes : 360 ] ) { + rotate(alpha, [0, 0, 1]) + translate([-mounting_hole_shaft_radius, 0, 0]) + cylinder(h=shaft_holder_height, d=mounting_hole_cutout_dia); + } + } + } + + rotate(-90, [0, 1, 0]) { + for ( alpha = [ 0 : 360 / grubscrew_count : 360 ] ) { + for ( i = [ 0 : grubscrew_heights] ) { + rotate(alpha + (360 / num_mounting_holes/2), [1, 0, 0]) + translate([grubscrew_lowest_offset + i*grubscrew_pitch, 0, 0]) { + cylinder(d=grubscrew_hole_dia, h=base_dia/2); + cylinder(d=grubscrew_insert_dia, h=grubscrew_insert_height + shaft_dia/2); + } + } + } + } +}
\ No newline at end of file |