Bladeren bron

add elev_angle parameter (fixed for this microphone), remove tetra and redo all angle related calculations, figure out the geometry for slot depth for the connections between capsules

Fernando Pablo Lopez-Lezcano 11 jaren geleden
bovenliggende
commit
e6a0a12b16
1 gewijzigde bestanden met toevoegingen van 15 en 13 verwijderingen
  1. 15 13
      first_order.scad

+ 15 - 13
first_order.scad

@@ -71,6 +71,9 @@ connect = 2;
 //// end of rendering control
 ////
 
+// elevation angle for the capsule holders (fixed for this microphone)
+elev_angle = atan(sqrt(1/2));
+
 // adjustment for the radius of the capsule
 //   measured inside diameter of a trial print was around 7.5 to 8.2 
 //   instead of 10, capsule diameter was 9.99)
@@ -86,21 +89,20 @@ wall = 1;
 facets = 64;
 
 // the rest of the connection leg geometry
-tetra = atan(sqrt(2));
 leg_length = 
 	connect == 0 ?
-		mic_radius * sin(tetra) - capsule_radius * cos(tetra) :
+		mic_radius * cos(elev_angle) - capsule_radius * sin(elev_angle) :
 		connect == 1 ? 
-			(mic_radius - capsule_height + leg_thick) * sin(tetra) / sin(90 - tetra) - capsule_radius : 
+			(mic_radius - capsule_height + leg_thick) * cos(elev_angle) / cos(90 - elev_angle) - capsule_radius : 
 			mic_radius - (capsule_radius / sqrt(2));
 slot_depth = connect == 1 ?
-	leg_thick * 1.5 : leg_thick;
+	leg_thick * cos(elev_angle) / sin(elev_angle) + fit: leg_thick * cos (90 - (2 * elev_angle));
 
 // microphone holder geometry
-capsule_sep_min = (mic_radius - capsule_height) * sin(tetra) - (capsule_radius + wall) * cos(tetra);
-capsule_sep_max = mic_radius * sin(tetra) - (capsule_radius + wall) * cos(tetra);
-capsule_bottom = mic_radius * cos(tetra) + (capsule_radius + wall) * sin(tetra);
-mount_slot_depth = ridge_length * cos(tetra);
+capsule_sep_min = (mic_radius - capsule_height) * cos(elev_angle) - (capsule_radius + wall) * sin(elev_angle);
+capsule_sep_max = mic_radius * cos(elev_angle) - (capsule_radius + wall) * sin(elev_angle);
+capsule_bottom = mic_radius * sin(elev_angle) + (capsule_radius + wall) * cos(elev_angle);
+mount_slot_depth = ridge_length * sin(elev_angle);
 
 ////////
 // microphone capsule holder
@@ -124,7 +126,7 @@ module capsule (azimuth, elevation, mounts, twist) {
 								// connect with cylindrical beams, very pretty
 								if (connect == 0) {
 									translate([capsule_radius - wall, 0, capsule_height - wall]) {
-										rotate([0, 90 + tetra, 0]) {
+										rotate([0, 180 - elev_angle, 0]) {
 											cylinder(d = leg_width, h = leg_length - 0.3, center = false, $fn = facets);
 										}
 									}
@@ -165,7 +167,7 @@ module capsule (azimuth, elevation, mounts, twist) {
 								translate([capsule_radius + fudge, - wall , 0]) {
 									difference() {
 										cube([ridge_length, ridge_width, capsule_height], center = false);
-										rotate([0, tetra, 0]) {
+										rotate([0, 90 - elev_angle, 0]) {
 											cube([ridge_length, ridge_width, capsule_height], center = false);
 										}
 									}
@@ -191,7 +193,7 @@ module capsule (azimuth, elevation, mounts, twist) {
 
 // microphone mount
 //
-// angles: 
+// angles: angles for mount slots
 // wall: thickness of cylinder wall
 // separation: height of mount with respect of the microphone assembly
 
@@ -204,8 +206,8 @@ module mount (angles, wall, separation) {
 					rotate([0, 0, rot]) {
 						translate([-capsule_sep_max, -(ridge_width - fit / 2), -mount_height]) {
 							cube([capsule_sep_max, ridge_width * 2 - fit, mount_height]);
-                            rotate([0, -(90 - tetra), 0]) {
-                                cube([capsule_sep_max, ridge_width * 2 - fit, mount_height * sin(tetra)]);
+                            rotate([0, -elev_angle, 0]) {
+                                cube([capsule_sep_max, ridge_width * 2 - fit, mount_height * cos(elev_angle)]);
                             }
 						}
 					}