summaryrefslogtreecommitdiff
path: root/prototype/mech_pcbs/flange_holder.scad
diff options
context:
space:
mode:
Diffstat (limited to 'prototype/mech_pcbs/flange_holder.scad')
-rw-r--r--prototype/mech_pcbs/flange_holder.scad63
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