|
|
@@ -9,9 +9,19 @@
|
|
|
// 3d models under Creative Commons Non-Commercial Share-alike, CC-NC-SA 3.0
|
|
|
// http://creativecommons.org/licenses/by-nc-sa/3.0/
|
|
|
|
|
|
+// 0 -> capsule holder
|
|
|
+// 1 -> whole microhone
|
|
|
|
|
|
-// microphone capsule holder
|
|
|
+rendermic = 0;
|
|
|
+
|
|
|
+// number of facets for cylinders
|
|
|
+facets = 64;
|
|
|
|
|
|
+// adjustment for the size of the capsule
|
|
|
+// (measured inside diameter was around 7.5 to 8.2 instead of 10, capsule diameter was 9.99)
|
|
|
+fudge = 0.1;
|
|
|
+
|
|
|
+// microphone capsule holder
|
|
|
|
|
|
// azimuth: orientation of the capsule
|
|
|
// elevation: orientation of the capsure
|
|
|
@@ -22,40 +32,40 @@
|
|
|
// twist: adjust the angle of the mounts so they match
|
|
|
// mounts: number of mounts to create (2 or 3)
|
|
|
|
|
|
-
|
|
|
-module capsule (azimuth, elevation, separation, radius, height, wall, twist, mounts) {
|
|
|
+module capsule (azimuth, elevation, ambradius, radius, height, wall, twist, mounts) {
|
|
|
rotate([0, 0, azimuth]) {
|
|
|
rotate([0, (90 - elevation), 0]) {
|
|
|
- translate([0, 0, separation]) {
|
|
|
+ translate([0, 0, ambradius - height]) {
|
|
|
// the capsule holder
|
|
|
difference () {
|
|
|
union () {
|
|
|
// main capsule holder
|
|
|
- cylinder(r = radius + wall, h = height, $fn = 128);
|
|
|
+ cylinder(r = radius + wall, h = height, $fn = facets);
|
|
|
// ridge to stop capsule when inserted
|
|
|
- translate(v = [0, 0, - (wall / 2)]) {
|
|
|
- difference() {
|
|
|
- cylinder(r = radius + wall, h = wall / 2, $fn = 128);
|
|
|
- cylinder(r = radius - 0.4, h = wall / 2, $fn = 128);
|
|
|
- }
|
|
|
- }
|
|
|
+// translate(v = [0, 0, - (wall / 2)]) {
|
|
|
+// difference() {
|
|
|
+// cylinder(r = radius + wall, h = wall / 2, $fn = facets);
|
|
|
+// cylinder(r = radius - 0.4, h = wall / 2, $fn = facets);
|
|
|
+// }
|
|
|
+// }
|
|
|
// the attachment point to the other capsules
|
|
|
for (rot = [-120 : 120 : mounts == 2 ? 0 : 120]) {
|
|
|
rotate(a = rot + twist, v = [0, 0, 1]) {
|
|
|
- translate(v = [radius + wall, 0, wall * 2]) {
|
|
|
+ translate([radius - wall, 0, height - wall]) {
|
|
|
rotate(a = 145, v = [0, 1, 0]) {
|
|
|
- cube([wall * 2.5, wall * 2, 6], center=true);
|
|
|
-// cylinder(d=wall * 3, h = seaparation, center=true);
|
|
|
+ cylinder(d = wall * 4, h = 6, center = false, $fn = facets);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // the inside of the capsule holder
|
|
|
- cylinder(r = radius, h = height, $fn = 128);
|
|
|
- // remove the upper part of the attachment points
|
|
|
- translate(v = [0, 0, height]) {
|
|
|
- cylinder(r = radius + wall, h = wall);
|
|
|
+ // make the hole for the capsule
|
|
|
+ translate ([0, 0, -2]) {
|
|
|
+ cylinder(r = radius + fudge, h = height + 2, $fn = facets);
|
|
|
+ }
|
|
|
+ // remove any extra connecting beam material from the face of the holder
|
|
|
+ translate ([0, 0, height]) {
|
|
|
+ cylinder(r = radius + wall * 2, h = 2, $fn = facets);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -119,17 +129,23 @@ mic_radius = 5;
|
|
|
mic_height = 4.5;
|
|
|
|
|
|
// separation between capsules
|
|
|
-cap_sep = 6;
|
|
|
-
|
|
|
-// connect the four instances together
|
|
|
-capsule(az1, el1, cap_sep, mic_radius, mic_height, 1, 60, 3);
|
|
|
-capsule(az2, el2, cap_sep, mic_radius, mic_height, 1, 240, 2);
|
|
|
-capsule(az3, el3, cap_sep, mic_radius, mic_height, 1, 60, 3);
|
|
|
-capsule(az4, el4, cap_sep, mic_radius, mic_height, 1, 240, 2);
|
|
|
+cap_sep = 7;
|
|
|
|
|
|
-// the mount
|
|
|
-stalk(mic_radius * 1.25, mic_radius * 2/3, 8, 1, 12);
|
|
|
+// distance between face of capsule and center of array
|
|
|
+amb_radius = 11.5;
|
|
|
|
|
|
+// connect the four instances together
|
|
|
+if (rendermic == 1) {
|
|
|
+ capsule(az1, el1, amb_radius, mic_radius, mic_height, 1, 60, 3);
|
|
|
+ capsule(az2, el2, amb_radius, mic_radius, mic_height, 1, 240, 2);
|
|
|
+ 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);
|
|
|
+}
|
|
|
|
|
|
// just one to test
|
|
|
-//capsule(0, -90, -mic_height, mic_radius, mic_height, 1, 0);
|
|
|
+if (rendermic == 0) {
|
|
|
+ capsule(0, 270, 0, mic_radius, mic_height, 1, 0);
|
|
|
+}
|
|
|
+
|