Ver código fonte

tweak radius for vertical legs, return vertical legs to previous size, make stand mount cap thicker so that the stalk has better grip, use mount and sleeve to create the right shaped hole in the stand cap

Fernando Pablo Lopez-Lezcano 10 anos atrás
pai
commit
af46822dba
1 arquivos alterados com 36 adições e 23 exclusões
  1. 36 23
      TinySphEAR.scad

+ 36 - 23
TinySphEAR.scad

@@ -35,7 +35,10 @@ capsule_radius = 5;
 capsule_height = 4.5;
 
 // distance between face of capsule and center of array
-mic_radius = 10;
+//
+// for a 10mm capsule: with vertical legs -> 10.5mm min radius
+//                     with horizontal legs -> 10mm min radius
+mic_radius = 10.5;
 
 // dimensions of capsule holder connection legs
 // 4mm is too thin for the width, 5mm works better
@@ -51,7 +54,7 @@ wall = 1;
 
 // dimensions of microphone holder
 mount_radius = 2.75;
-mount_wall = 1.0;
+mount_wall = 0.75;
 
 // height of mount
 mount_height = 30;
@@ -190,12 +193,12 @@ module capsule (azimuth, elevation, mounts, twist, ridge, solid = 0) {
                                     leg_length = (mic_radius * tan(90 - angles[1]) - capsule_radius) * tan(angles[1]) - 0.2; 
                                     slot_depth = leg_thick * cos (90 - (2 * angles[1]));
 									translate([capsule_radius - leg_thick / 2 + fudge, - leg_width / 3, 
-                                            - leg_length + capsule_height]) {
+                                               - leg_length + capsule_height]) {
 										difference() {
-											// thickness, width
+											// the connection
                                             difference() {
                                                 cube([leg_thick + leg_thick / 2, leg_width, leg_length]);
-                                                translate([-leg_thick / 2 + wall - fudge, 0, - capsule_height + fudge]) {
+                                                translate([-leg_thick + wall - fudge, 0, - capsule_height + fudge]) {
                                                     cube([leg_thick, leg_width, leg_length]);
                                                 }
                                             }
@@ -228,10 +231,10 @@ module capsule (azimuth, elevation, mounts, twist, ridge, solid = 0) {
 							}
 						}
 					}
-					// make the hole for the capsule
+					// make the hole for the capsule (also cuts leg overhang for vertical connectors)
 					if (solid != 1) {
-                        translate ([0, 0, 0]) {
-                            cylinder(r = capsule_radius + fudge, h = capsule_height, $fn = facets);
+                        translate ([0, 0, -capsule_height]) {
+                            cylinder(r = capsule_radius + fudge, h = capsule_height * 2, $fn = facets);
                         }
                     }
 					// remove any extra connecting beam material from the face of the holder
@@ -252,7 +255,7 @@ module capsule (azimuth, elevation, mounts, twist, ridge, solid = 0) {
 // wall: thickness of cylinder wall
 // separation: height of mount with respect of the microphone assembly
 
-module mount (angles, wall, separation) {
+module mount (angles, wall, separation, solid = 0) {
     cone_height = 5;
 	translate([0, 0, -(separation - 0)]) {
 		difference() {
@@ -262,7 +265,9 @@ module mount (angles, wall, separation) {
                     difference() {
                         cylinder(r2 = mount_radius_capsule, r1 = mount_radius + wall, h = cone_height, $fn = facets);
                         // make the hole for the mount (* 1.5 to cut the ridge as well)
-                        cylinder(r2 = mount_radius_capsule - wall, r1 = mount_radius, h = cone_height * 1.5, $fn = facets);
+                        if (solid == 0) {
+                            cylinder(r2 = mount_radius_capsule - wall, r1 = mount_radius, h = cone_height * 1.5, $fn = facets);
+                        }
                     }
                 }
                 translate([0, 0, -mount_height]) {
@@ -279,16 +284,18 @@ module mount (angles, wall, separation) {
                 capsule(angles[1], -elev_angle, [], 0, 1, 1);
             }
             // slice it open so we can pop in cables
-            rotate([0, 0, 45]) {
-                translate([mount_radius - fudge, - mic_wire_diam / 2, -mount_height]) {
-                    cube([mount_radius_capsule - mount_radius + fudge, mic_wire_diam, mount_height]);
+            if (solid == 0) {
+                rotate([0, 0, 45]) {
+                    translate([mount_radius - fudge, - mic_wire_diam / 2, -mount_height]) {
+                        cube([mount_radius_capsule - mount_radius + fudge, mic_wire_diam, mount_height]);
+                    }
                 }
             }
         }
     }
 }
 
-module mount_sleeve (wall, separation) {
+module mount_sleeve (wall, separation, solid = 0) {
 	translate([0, 0, -(separation + 0.0)]) {
 		difference() {
             union() {
@@ -297,7 +304,9 @@ module mount_sleeve (wall, separation) {
                     difference() {
                         cylinder(r = mount_radius + mount_wall + wall, h = sleeve_height, $fn = facets);
                         // make the hole for the mount (* 1.5 to cut the ridge as well)
-                        cylinder(r = mount_radius + mount_wall, h = sleeve_height * 1.5, $fn = facets);
+                        if (solid == 0) {
+                            cylinder(r = mount_radius + mount_wall, h = sleeve_height * 1.5, $fn = facets);
+                        }
                     }
                 }
                 // spine that fits into slice of mount body
@@ -363,17 +372,21 @@ module stand_mount_cap (wall, separation) {
             union() {
                 // cap
                 cylinder(r = mic_mount_radius + mic_mount_fit + wall, h = wall, $fn = facets);
-                translate([0, 0, -wall]) {
-                    cylinder(r = mic_mount_radius + mic_mount_fit, h = 2 * wall, $fn = facets);
+                translate([0, 0, - 2 * wall]) {
+                    cylinder(r = mic_mount_radius + mic_mount_fit, h = 3 * wall, $fn = facets);
                 }
             }
-            // hole for mount
+            // use mount and sleeve to cut hole of correct size and shape
+            translate([0, 0, mount_height - 2 * wall]) {
+                mount([45, -135], mount_wall, 0, 1);
+                mount_sleeve(sleeve_wall, 0, 1);
+            }
             translate([0, 0, - 2 * wall]) {
-                cylinder(r = mount_radius + mount_wall + sleeve_wall, h = 3 * wall, $fn = facets);
+                cylinder(r = mount_radius + mount_wall, h = 3 * wall, $fn = facets);
             }
             // slot for microphone wiring
-            translate([0, - mic_wire_diam / 2, - wall]) {
-                cube([mic_mount_radius + mic_mount_fit + wall, mic_wire_diam, 2 * wall]);
+            translate([0, - mic_wire_diam / 2, - 2 * wall]) {
+                cube([mic_mount_radius + mic_mount_fit + wall, mic_wire_diam, 3 * wall]);
             }
         }
     }
@@ -393,7 +406,7 @@ if (rendermic == 1) {
     mount_sleeve(sleeve_wall, capsule_bottom);
     // the microphone stand mount
     stand_mount_cap(mic_mount_wall, capsule_bottom + mount_height + 3);
-    stand_mount(mic_mount_wall, capsule_bottom + mount_height + 5);
+    stand_mount(mic_mount_wall, capsule_bottom + mount_height + 7);
 }
 
 // print all the parts separately
@@ -435,7 +448,7 @@ if (rendermic == 0) {
         part_height = capsule_height;
         part_sep = capsule_radius * 2;
         // #3
-        *translate([part_sep, -part_sep, part_height]) { capsule(0, part_rot, leg_angles_top, 0, 0); }
+        translate([part_sep, -part_sep, part_height]) { capsule(0, part_rot, leg_angles_top, 0, 0); }
         if (renderset != 0) {
             // #4
             *translate([part_sep, part_sep, part_height]) { capsule(0, part_rot, leg_angles_top, 0, 0); }