|
@@ -250,9 +250,62 @@ module tetra_capsule_array_mount(angles) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// internal ring of shock mount
|
|
|
|
|
+
|
|
|
|
|
+module tetra_shock_mount_int_ring(height, radius, corner, lip) {
|
|
|
|
|
+ slot_sep = radius * 2 / 2.7;
|
|
|
|
|
+ slot_w = 6;
|
|
|
|
|
+ slot_o = height / 3;
|
|
|
|
|
+ difference() {
|
|
|
|
|
+ tetra_mount_box(slot_o, radius + wall, corner);
|
|
|
|
|
+ tetra_mount_box(slot_o, radius - 2 * wall, corner - 2.0);
|
|
|
|
|
+ }
|
|
|
|
|
+ difference() {
|
|
|
|
|
+ tetra_mount_box(height, radius + 2 * wall, corner);
|
|
|
|
|
+ tetra_mount_box(height, radius, corner - 2.0);
|
|
|
|
|
+ for (rot = [0, 90, 180, 270]) {
|
|
|
|
|
+ rotate([0, 0, rot]) {
|
|
|
|
|
+ for (xo = [1, -1] * slot_sep) {
|
|
|
|
|
+ translate([-slot_w / 2 + xo, radius - 2 * wall, slot_o]) {
|
|
|
|
|
+ // slots for rubber bands
|
|
|
|
|
+ cube([slot_w, 10, slot_o]);
|
|
|
|
|
+ translate([slot_w / 3, 0, 0]) {
|
|
|
|
|
+ cube([slot_w / 3, 10, 10]);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ for (rot = [0, 90, 180, 270]) {
|
|
|
|
|
+ rotate([0, 0, rot]) {
|
|
|
|
|
+ // slots for connecting the upper and lower rings
|
|
|
|
|
+ translate([radius + wall, -(slot_sep + slot_w/3)/2, 0]) {
|
|
|
|
|
+ difference() {
|
|
|
|
|
+ cube([5, slot_sep + slot_w/3, height]);
|
|
|
|
|
+ translate([0, wall, 0]) {
|
|
|
|
|
+ cube([4, slot_sep + slot_w/3 - 2 * wall, 4]);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // lip to support microphone on lower ring only
|
|
|
|
|
+ if (lip == 1) {
|
|
|
|
|
+ lip_w = 10;
|
|
|
|
|
+ translate([radius, -lip_w/2, height]) {
|
|
|
|
|
+ rotate([90, 90, 180]) {
|
|
|
|
|
+ linear_extrude(height = lip_w) {
|
|
|
|
|
+ polygon([[0, 0], [0, 4], [1, 4], [height * 2/3, 0]]);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// main body of microphone mount
|
|
// main body of microphone mount
|
|
|
//
|
|
//
|
|
|
-translate([0, 0, -(pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
|
|
|
|
|
|
|
+*translate([0, 0, -(pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
|
|
|
tetra_mount_body(pcb_length - pcb_low_exp - pcb_hi_exp, box_radius + wall, mount_corner, mount_lip, mount_lip, 0);
|
|
tetra_mount_body(pcb_length - pcb_low_exp - pcb_hi_exp, box_radius + wall, mount_corner, mount_lip, mount_lip, 0);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -260,7 +313,7 @@ translate([0, 0, -(pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
|
|
|
//
|
|
//
|
|
|
|
|
|
|
|
//translate([0, 0, pcb_length - pcb_low_exp - pcb_hi_exp + 10]) {
|
|
//translate([0, 0, pcb_length - pcb_low_exp - pcb_hi_exp + 10]) {
|
|
|
-translate([0, 0, 0]) {
|
|
|
|
|
|
|
+*translate([0, 0, 0]) {
|
|
|
tetra_mount_flare(10 + pcb_hi_exp, mount_lip, flare_height, box_radius + wall, mount_corner,
|
|
tetra_mount_flare(10 + pcb_hi_exp, mount_lip, flare_height, box_radius + wall, mount_corner,
|
|
|
mount_radius + wall, stalk_height);
|
|
mount_radius + wall, stalk_height);
|
|
|
translate([0, 0, 10 + pcb_hi_exp + flare_height + stalk_height]) {
|
|
translate([0, 0, 10 + pcb_hi_exp + flare_height + stalk_height]) {
|
|
@@ -271,13 +324,48 @@ translate([0, 0, 0]) {
|
|
|
// flare to microphone cable
|
|
// flare to microphone cable
|
|
|
//
|
|
//
|
|
|
|
|
|
|
|
-translate([0, 0, -(10 + pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
|
|
|
|
|
-//translate([0, 0, 0]) {
|
|
|
|
|
|
|
+//translate([0, 0, -(10 + pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
|
|
|
|
|
+translate([0, 0, -15]) {
|
|
|
rotate([0, 180, 0]) {
|
|
rotate([0, 180, 0]) {
|
|
|
tetra_mount_flare(10 + pcb_low_exp, mount_lip, 20, box_radius + wall, mount_corner, cable_diam / 2 + wall, 10);
|
|
tetra_mount_flare(10 + pcb_low_exp, mount_lip, 20, box_radius + wall, mount_corner, cable_diam / 2 + wall, 10);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// shock mount
|
|
|
|
|
+//
|
|
|
|
|
+
|
|
|
|
|
+ring_sep = 30;
|
|
|
|
|
+
|
|
|
|
|
+translate([0, 0, -3]) {
|
|
|
|
|
+ //rotate([0, 180, 0]) {
|
|
|
|
|
+ tetra_shock_mount_int_ring(10, box_radius + 3.5 * wall, 12, 0);
|
|
|
|
|
+ rotate([0, 180, 0]) {
|
|
|
|
|
+ translate([0, 0, ring_sep]) {
|
|
|
|
|
+ tetra_shock_mount_int_ring(10, box_radius + 3.5 * wall, 12, 1);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //}
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+translate([0, 0, - ring_sep / 2 - 5]) {
|
|
|
|
|
+ difference() {
|
|
|
|
|
+ tetra_mount_box(6, box_radius + 25, 25);
|
|
|
|
|
+ tetra_mount_box(6, box_radius + 25 - 4 * wall, 25 - 2.0);
|
|
|
|
|
+// cylinder(r = box_radius + 25, h = 6, $fn = facets);
|
|
|
|
|
+// cylinder(r = box_radius + 25 - 3 * wall, h = 6, $fn = facets);
|
|
|
|
|
+ }
|
|
|
|
|
+ for (rot = [0, 90, 180, 270]) {
|
|
|
|
|
+ rotate([0, 0, rot]) {
|
|
|
|
|
+ translate([box_radius + 25 + 4 * wall, -7.5, 0]) {
|
|
|
|
|
+ cube([4, 15, 6]);
|
|
|
|
|
+ }
|
|
|
|
|
+ translate([box_radius + 25, -2, 0]) {
|
|
|
|
|
+ cube([7, 4, 6]);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// first try at a ccrma logo
|
|
// first try at a ccrma logo
|
|
|
//
|
|
//
|
|
|
*rotate([90, 0, 0]) {
|
|
*rotate([90, 0, 0]) {
|
|
@@ -291,7 +379,7 @@ translate([0, 0, -(10 + pcb_length - pcb_low_exp - pcb_hi_exp + 10)]) {
|
|
|
// the microphone itself
|
|
// the microphone itself
|
|
|
rendermic = 1;
|
|
rendermic = 1;
|
|
|
|
|
|
|
|
-translate([0, 0, 2.8 + pcb_hi_exp + flare_height + stalk_height + 30]) {
|
|
|
|
|
|
|
+*translate([0, 0, 2.8 + pcb_hi_exp + flare_height + stalk_height + 30]) {
|
|
|
// all four capsules
|
|
// all four capsules
|
|
|
capsule(45, elev_angle, leg_angles_top, 60, 0, 0.0, 0.0, 0);
|
|
capsule(45, elev_angle, leg_angles_top, 60, 0, 0.0, 0.0, 0);
|
|
|
capsule(-135, elev_angle, leg_angles_top, 60, 0, 0.0, 0.0, 0);
|
|
capsule(-135, elev_angle, leg_angles_top, 60, 0, 0.0, 0.0, 0);
|