Explorar el Código

slice open the mount body so that we can fit already wired microphone capsules into the array, and add a mount sleeve to close the gap in the body, it should mount by snapping on top of the body - with this we have a proper mount that fits all wires

Fernando Pablo Lopez-Lezcano hace 10 años
padre
commit
59f74d0c0e
Se han modificado 1 ficheros con 47 adiciones y 7 borrados
  1. 47 7
      TinySphEAR.scad

+ 47 - 7
TinySphEAR.scad

@@ -54,7 +54,10 @@ wall = 1;
 mount_radius = 3.5;
 
 // height of mount
-mount_height = 8;
+mount_height = 30;
+
+// height of sleeve
+sleeve_height = 25;
 
 //// end of model parameters
 ////
@@ -243,7 +246,7 @@ module mount (angles, wall, separation) {
             // indentations that match the lower capsule holders
             for (rot = angles) {
                 rotate([0, 0, rot + 45]) {
-                    translate([-mount_radius * 1.6, mount_radius * 1.6, mount_height / 3]) {
+                    translate([-mount_radius * 1.6, mount_radius * 1.6, 8.0 / 3]) {
                         rotate([0, 90 - elev_angle, -45]) {
                             cylinder(r = capsule_radius + wall, h = capsule_height * 2, $fn = facets);
                         }
@@ -258,11 +261,44 @@ module mount (angles, wall, separation) {
                     }
                 }
 			}
-            
+            // slice it open so we can pop in cables
+            rotate([0, 0, 45]) {
+                translate([mount_radius - wall / 2, - wall / 2, -mount_height]) {
+                    cube([2 * wall, wall, mount_height]);
+                }
+            }
         }
     }
 }
 
+module mount_sleeve (wall, separation) {
+	translate([0, 0, -(separation + 0.0)]) {
+		difference() {
+            union() {
+                // main mount cylinder
+                translate([0, 0, -mount_height]) {
+                    difference() {
+                        cylinder(r = mount_radius + 2 * wall, h = sleeve_height, $fn = facets);
+                        // make the hole for the mount (* 1.5 to cut the ridge as well)
+                        cylinder(r = mount_radius + wall, h = sleeve_height * 1.5, $fn = facets);
+                    }
+                }
+                // spine that fits into slice of mount body
+                rotate([0, 0, 45]) {
+                    translate([mount_radius - wall, - wall / 2, -mount_height]) {
+                        cube([2 * wall, wall, sleeve_height]);
+                    }
+                }
+            }
+            // cut a bit less that one half of the sleeve so it fits around the body
+            rotate([0, 0, 45]) {
+                translate([-mount_radius - 3 * wall, - (mount_radius + wall) * 1.5, -mount_height]) {
+                    cube([mount_radius + wall, (mount_radius + wall) * 3, sleeve_height]);
+                }
+            }
+        }
+    }
+}
 
 box_height = 4.0;
 
@@ -378,9 +414,11 @@ if (rendermic == 1) {
 	capsule(45, elev_angle, leg_angles_top, 60, 0);
 	capsule(-135, elev_angle, leg_angles_top, 60, 0);
 	capsule(-45, -elev_angle, leg_angles_bot, 0, 1);
-	capsule(135, -elev_angle, leg_angles_bot, 0, 1);
+    capsule(135, -elev_angle, leg_angles_bot, 0, 1);
 	// the mount
 	mount([-45, 135], 1, capsule_bottom);
+    // the sleeve closing it
+    mount_sleeve(1, capsule_bottom);
 }
 
 // print all the parts separately
@@ -391,16 +429,18 @@ if (rendermic == 0) {
         part_height = 0;
         part_sep = capsule_radius * 2.5;
         // #3
-        *translate([part_sep, -part_sep, part_height]) { capsule(0, part_rot, leg_angles_top, 60, 0); }
+        translate([part_sep, -part_sep, part_height]) { capsule(0, part_rot, leg_angles_top, 60, 0); }
         if (renderset != 0) {
             // #4
-            *translate([part_sep, part_sep, part_height]) { capsule(0, part_rot, leg_angles_top, 60, 0); }
+            translate([part_sep, part_sep, part_height]) { capsule(0, part_rot, leg_angles_top, 60, 0); }
             // #2
             translate([-part_sep, part_sep, part_height]) { capsule(0, part_rot, leg_angles_bot, -90, 1); }
             // #1
             translate([-part_sep, -part_sep, part_height]) { capsule(0, part_rot, leg_angles_bot, 90, 1); }
-            // mount
+            // mount body
             translate([0, 0, mount_height]) { mount([-45, 135], 1, 0); }
+            // mount sleeve
+            translate([mount_radius * 8, 0, mount_height]) { mount_sleeve(1, 0); }
             // add connecting ridges to make it all one part
             difference() {
                 for (rot_a = [-45, 45]) {