|
|
@@ -19,6 +19,9 @@ mic_height = 4.5;
|
|
|
// distance between face of capsule and center of array
|
|
|
amb_radius = 12.5;
|
|
|
|
|
|
+// dimensions of microphone holder
|
|
|
+hold_radius = 3;
|
|
|
+
|
|
|
// separation between capsules (right now only used in stalk)
|
|
|
cap_sep = 7;
|
|
|
|
|
|
@@ -38,6 +41,9 @@ connect = 2;
|
|
|
// (measured inside diameter was around 7.5 to 8.2 instead of 10, capsule diameter was 9.99)
|
|
|
fudge = 0.15;
|
|
|
|
|
|
+// adjustment for fit of ridges
|
|
|
+fit = 0.2;
|
|
|
+
|
|
|
// number of facets for cylinders
|
|
|
facets = 64;
|
|
|
|
|
|
@@ -99,6 +105,17 @@ module capsule (azimuth, elevation, ambradius, radius, height, wall, twist, moun
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ // add ridges for microphone mount
|
|
|
+ rotate(a = 120 + twist, v = [0, 0, 1]) {
|
|
|
+ translate([radius + fudge, - wall , 0]) {
|
|
|
+ difference() {
|
|
|
+ cube([wall * 3, wall * 2, height], center = false);
|
|
|
+ rotate([0, 55, 0]) {
|
|
|
+ cube([wall * 3, wall * 2, height], center = false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
// make the hole for the capsule
|
|
|
translate ([0, 0, -2]) {
|
|
|
@@ -114,33 +131,44 @@ module capsule (azimuth, elevation, ambradius, radius, height, wall, twist, moun
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// mounting stalk
|
|
|
+// microphone mount
|
|
|
|
|
|
-module stalk (radius_top, radius_bot, length, wall, separation) {
|
|
|
- // top cone
|
|
|
+module mount (radius, length, wall, separation) {
|
|
|
+ // mounting ring
|
|
|
translate([0, 0, -separation]) {
|
|
|
difference() {
|
|
|
- cylinder(h = length, r1 = radius_bot, r2 = radius_top, center = true, $fn = 128);
|
|
|
- cylinder(h = length, r1 = radius_bot - wall, r2 = radius_top - wall, center = true, $fn=128);
|
|
|
- // carve out the two microphones, this is a hack
|
|
|
- translate([-(wall * 3), wall * 3, cap_sep * 1.5]) {
|
|
|
- rotate([0, 145 + 90, -45]) {
|
|
|
- cylinder(h = length * 1.4, r = mic_radius + wall, center = true, $fn=128);
|
|
|
+ union() {
|
|
|
+ cylinder(h = length, r = radius, center = true, $fn=128);
|
|
|
+
|
|
|
+ // connection ridges
|
|
|
+ for (rot = [0 : 180 : 360]) {
|
|
|
+ rotate([0, 0, rot - 45]) {
|
|
|
+ translate([0, - wall * 3 - fit, - length / 2]) {
|
|
|
+ difference() {
|
|
|
+ cube([wall * 6, wall * 2, length], center = false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ translate([0, wall + fit, - length / 2]) {
|
|
|
+ difference() {
|
|
|
+ cube([wall * 6, wall * 2, length], center = false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- translate([wall * 3, -(wall * 3), cap_sep * 1.5]) {
|
|
|
- rotate([0, 145 + 90, 135]) {
|
|
|
- cylinder(h = length * 1.4, r = mic_radius + wall, center = true, $fn=128);
|
|
|
+ // the bore of the ring
|
|
|
+ cylinder(h = length, r = radius - wall, center = true, $fn=128);
|
|
|
+ // create the slopes in the ridges
|
|
|
+ for (rot = [0 : 180 : 360]) {
|
|
|
+ rotate([0, 0, rot]) {
|
|
|
+ translate([- radius, radius, radius + wall / 2]) {
|
|
|
+ rotate([55, 0, 45]) {
|
|
|
+ cube([radius * 3, radius, radius * 3], center = true);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // mounting stalk
|
|
|
- translate([0, 0, -(1.5 * length)]) {
|
|
|
- difference() {
|
|
|
- cylinder(h = length * 2, r = radius_bot, center = true, $fn=128);
|
|
|
- cylinder(h = length * 2, r = radius_bot - wall, center = true, $fn=128);
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -171,7 +199,7 @@ if (rendermic == 1) {
|
|
|
capsule(az3, el3, amb_radius, mic_radius, mic_height, 1, 60, 3);
|
|
|
capsule(az4, el4, amb_radius, mic_radius, mic_height, 1, 240, 2);
|
|
|
// the mount
|
|
|
- //stalk(mic_radius * 1.25, mic_radius * 2/3, 8, 1, 12);
|
|
|
+ mount(hold_radius, mic_height, 1, amb_radius);
|
|
|
}
|
|
|
|
|
|
part_sep = mic_radius * 2 * 3;
|