|
@@ -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) {
|
|
module shock_mount_external_ring(height, xradius, yradius, corner, gap, lip) {
|
|
|
difference() {
|
|
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]) {
|
|
for (rot = [0, 90, 180, 270]) {
|
|
|
rotate([0, 0, rot]) {
|
|
rotate([0, 0, rot]) {
|
|
@@ -446,23 +446,23 @@ module shock_mount_external_ring(height, xradius, yradius, corner, gap, lip) {
|
|
|
intersection() {
|
|
intersection() {
|
|
|
translate([ring_arm_gap, 0, 0]) {
|
|
translate([ring_arm_gap, 0, 0]) {
|
|
|
difference() {
|
|
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
|
|
// 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]);
|
|
cube([8, 4, ring_ext_height]);
|
|
|
}
|
|
}
|
|
|
// rotating mount
|
|
// rotating mount
|
|
|
o_rad = 8;
|
|
o_rad = 8;
|
|
|
i_rad = 3;
|
|
i_rad = 3;
|
|
|
rotate([0, 90, -90]) {
|
|
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);
|
|
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]);
|
|
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]) {
|
|
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() {
|
|
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);
|
|
|
|
|
+}
|