Jelajahi Sumber

add a preliminary mount, the hole is used to insert a connecting rod to the box that houses the preamps, connectors and mount for the microphone stand

Fernando Pablo Lopez-Lezcano 11 tahun lalu
induk
melakukan
664e3b9e3d
1 mengubah file dengan 48 tambahan dan 20 penghapusan
  1. 48 20
      first_order.scad

+ 48 - 20
first_order.scad

@@ -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;