Explorar el Código

much better design for connector from microphone mount to microphone stand, add one version with threaded bottom in addition to the one for quik-release mount

Fernando Pablo Lopez-Lezcano hace 9 años
padre
commit
777beabdae
Se han modificado 1 ficheros con 114 adiciones y 62 borrados
  1. 114 62
      SpHEAR_common.scad

+ 114 - 62
SpHEAR_common.scad

@@ -429,8 +429,8 @@ module shock_mount_internal_ring(height, xradius, yradius, corner, gap, lip) {
 
 module shock_mount_external_ring(height, xradius, yradius, corner, gap, lip) {
     difference() {
-        rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap);
-        rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap - ring_wall);
+        rounded_block_relative(ring_ext_height, xradius, yradius, corner, gap);
+        rounded_block_relative(ring_ext_height, xradius, yradius, corner, gap - ring_wall);
     }
     for (rot = [0, 90, 180, 270]) {
         rotate([0, 0, rot]) {
@@ -446,23 +446,23 @@ module shock_mount_external_ring(height, xradius, yradius, corner, gap, lip) {
     intersection() {
         translate([ring_arm_gap, 0, 0]) {
             difference() {
-                rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap);
-                rounded_block_relative(ring_ext_height, xradius, yradius, mount_corner, gap - ring_wall);
+                rounded_block_relative(ring_ext_height, xradius, yradius, corner, gap);
+                rounded_block_relative(ring_ext_height, xradius, yradius, corner, gap - ring_wall);
             }
         }
-        translate([ring_arm_gap / 2, -(yradius + 2 * mount_corner), 0]) {
-            cube([(xradius + 2 * mount_corner) + ring_arm_gap, 2 * (yradius + 2 * mount_corner), ring_ext_height]);
+        translate([ring_arm_gap / 2, -(yradius + 2 * corner), 0]) {
+            cube([(xradius + 2 * corner) + ring_arm_gap, 2 * (yradius + 2 * corner), ring_ext_height]);
         }
     }
     // connection to hub
-    translate([xradius + mount_corner + ring_arm_gap, -2, 0]) {
+    translate([xradius + corner + ring_arm_gap, -2, 0]) {
         cube([8, 4, ring_ext_height]);
     }
     // rotating mount
     o_rad = 8;
     i_rad = 3;
     rotate([0, 90, -90]) {
-        translate([-o_rad, xradius + mount_corner + ring_arm_gap + o_rad + ring_wall / 2 + 4, -2]) {
+        translate([-o_rad, xradius + corner + ring_arm_gap + o_rad + ring_wall / 2 + 4, -2]) {
             shock_mount_ring(o_rad, i_rad, ring_wall);
         }
     }
@@ -476,72 +476,124 @@ module shock_mount_connector(length, lip, width, thickness, fit) {
         cube([length , width + thickness, thickness * 3 / 2]);
 }
 
-// mount to standard microphone clip stand mount
+// one eyelet for connection to shock mount or permanent mount
 
-module shock_mount_stand(height, wall, stand_wall) {
-    // stand mount
-    translate([0, 0, 0]) {
-        difference() {
-            union() {
-                // main mount cylinder
-                translate([0, 0, 0]) {
-                    difference() {
-                        cylinder(r = mic_mount_radius + mic_mount_fit + stand_wall, 
-                                h = height, $fn = facets);
-                        // make the hole for the mount (* 1.5 to cut the ridge as well)
-                        cylinder(r = mic_mount_radius + mic_mount_fit, h = height, $fn = facets);
-                    }
+module mount_stand_eyelet(outside_radius, inside_radius, thickness) {
+    translate([0, thickness/2, 0]) rotate([90, 0, 0])
+    difference() {
+        cylinder(r = outside_radius, h = thickness, $fn = facets);
+        cylinder(r = inside_radius, h = thickness, $fn = facets);
+    }
+}
+
+// connector to shock mount or permanent mount (upper part)
+
+module mount_connector_top(height, o_radius, i_radius, offset) {
+    // eyelets
+    o_rad = 8;
+    i_rad = 3;
+    thk = 4;
+    // screw head and nut dimensions
+    head_thick = 3.0;
+    head_diam = 9.2;
+    nut_radius = 12/2;
+    // offset
+    h_offset = offset;
+    difference() {
+        hull() {
+            for (m = [0, 1]) mirror([0, m, 0]) {
+                translate([0, thk * 3/2, height + o_rad + h_offset]) {
+                   mount_stand_eyelet(o_rad, i_rad, thk);
                 }
             }
-            // slot for fitting into microphone stand
-            translate([mic_mount_radius - stand_wall / 2, - mic_mount_slot_width / 2, 0]) {
-                cube([2 * stand_wall, mic_mount_slot_width, mic_mount_slot_height]);
-            }
-            // eyelet for microphone stand
-            translate([mic_mount_radius - stand_wall / 2, 0,  mic_mount_slot_height]) {
-                rotate([0, 90, 0]) {
-                    cylinder(r = mic_mount_slot_radius, h = 2 * stand_wall, $fn = facets);
+            translate([0, 0, height]) {
+                difference() {
+                    cylinder(r = o_radius, h = thin_mint, $fn = facets);
                 }
             }
         }
-        // top of mount
+        // make hole for screw
+        translate([0, mic_mount_radius * 2, height + h_offset + o_rad]) {
+            rotate([90, 0, 0]) cylinder(r = i_rad, h = mic_mount_radius * 4, $fn = facets);
+        }
+        // clear the space between eyelets
+        translate([-o_rad * 2, -thk/2, height + h_offset/2]) {
+            cube([o_rad * 4, thk, o_rad * 4]);
+        }
+        // hollow top
         translate([0, 0, height]) {
+            scale([1.0, 1.0, 1.2]) sphere(r = i_radius, $fn = facets);
+        }
+        // recessed hexagonal screw head on one side
+        translate([0, -3/2*thk, height + h_offset + o_rad]) {
+            rotate([90, 30, 0]) cylinder(h = head_thick, r = head_diam / 2, $fn = 6);
+        }
+        // recessed nut head on the other side
+        translate([0, 3/2*thk + thk, height + h_offset + o_rad]) {
+            rotate([90, 30, 0]) cylinder(h = head_thick, r = nut_radius + 0.2, $fn = facets);
+        }
+    }
+}
+
+// mount to quik release stand
+
+module quik_release_stand_adapter(height, wall, stand_wall) {
+    difference() {
+        union() {
+            // main mount cylinder
             difference() {
-                cylinder(h = mic_mount_radius,
-                        r1 = mic_mount_radius + mount_wall + wall + mic_mount_fit, r2 = 6.5, $fn = facets);
-                cylinder(h = mic_mount_radius,
-                        r1 = mic_mount_radius + mount_wall + mic_mount_fit, r2 = 0.1, $fn = facets);
-            }
-            *translate([0, 0, mic_mount_radius - 1]) {
-                cylinder(h = 1, r = 5, $fn = facets);
+                cylinder(r = mic_mount_radius + mic_mount_fit + stand_wall, 
+                        h = height, $fn = facets);
+                // make the hole for the mount (* 1.5 to cut the ridge as well)
+                cylinder(r = mic_mount_radius + mic_mount_fit, h = height, $fn = facets);
             }
         }
-        // eyelets
-        o_rad = 8;
-        i_rad = 3;
-        thk = 4;
-        // screw head dimensions
-        head_thick = 3.0;
-        head_diam = 9.2;
-        for (m = [0, 1]) mirror([0, m, 0]) {
-            rotate([90, 90, 0]) {
-                translate([-(height + o_rad + 6), 0, thk/2 + fit]) {
-                    rotate([0, 0, 45]) {
-                        if (m == 0) {
-                            difference() {
-                                shock_mount_ring(o_rad, i_rad, thk + head_thick / 3);
-                                // recessed hexagonal screw head
-                                translate([0, 0, thk - head_thick + head_thick / 2]) {
-                                    rotate([0, 0, 15]) cylinder(h = head_thick, r = head_diam / 2, $fn = 6);
-                                }
-                            }
-                        } else {
-                            shock_mount_ring(o_rad, i_rad, thk + head_thick / 3);
-                        }
-                    }
-                }
+        // slot for fitting into microphone stand
+        translate([mic_mount_radius - stand_wall / 2, - mic_mount_slot_width / 2, 0]) {
+            cube([2 * stand_wall, mic_mount_slot_width, mic_mount_slot_height]);
+        }
+        // eyelet for microphone stand
+        translate([mic_mount_radius - stand_wall / 2, 0,  mic_mount_slot_height]) {
+            rotate([0, 90, 0]) {
+                cylinder(r = mic_mount_slot_radius, h = 2 * stand_wall, $fn = facets);
             }
         }
     }
 }
 
+// connector to quik release microphone stand
+
+module shock_mount_stand(height, wall, stand_wall) {
+    // connection to microphone
+    mount_connector_top(height, mic_mount_radius + mount_wall + wall + mic_mount_fit, mic_mount_radius + mic_mount_fit, 20.0);
+    // connection to stand
+    quik_release_stand_adapter(height, wall, stand_wall);
+}
+
+// thread for stand mount
+//
+// 5/8-27 for US mic stands
+// 3/8-16 for European
+
+module stand_mount_thread(length, band, wall, diameter = 5/8, threads_per_inch = 27, wall = 2.0, fit = 0.) {
+    diam = diameter * 25.4;
+    pitch = (1.0/threads_per_inch)*25.4;
+    difference() {
+        cylinder(r = (diam / 2) + wall, h = length + band, $fn = facets);
+        translate([0, 0, length]) {
+            cylinder(r = (diam / 2), h = band, $fn = facets);
+        }
+        metric_thread (diameter = diam + fit, pitch = pitch, length = length + thin_mint, internal = true);
+    }
+}
+
+// connector to threaded microphone stand
+
+module shock_mount_threaded_stand(height, wall, stand_wall) {
+    // connection to stand
+    diam = 5/8 * 25.4;
+    thread_length = 15.0;
+    stand_mount_thread(thread_length, height - thread_length, wall);
+    // connection to microphone
+    mount_connector_top(height, diam/2 + wall, diam/2, 23.0);
+}