Преглед изворни кода

redesign the Octathingy upper flare to be shorter and similar to the quad capsule design, resize windscreen to match new design, tie windscreen mounting thread size to radius of main body

Fernando Pablo Lopez-Lezcano пре 9 година
родитељ
комит
0c265d05ee
2 измењених фајлова са 33 додато и 33 уклоњено
  1. 15 8
      Octathingy_EM200.scad
  2. 18 25
      Octathingy_mount_pcb.scad

+ 15 - 8
Octathingy_EM200.scad

@@ -50,27 +50,32 @@ facets = 128;
 //// render the different assemblies
 ////
 
-//// microphone body and array
-windscreen_thread_radius = mic_radius * 1.8;
+//// microphone body and array parameters
+//
+// FIXME: for some reason octa_pcb_radius is not being found, changing
+//        the order of includes above messes up other mode parameters
+//        for now hardwire this parameter
+windscreen_thread_radius = 31.425;
+// windscreen_thread_radius = octa_pcb_radius;
 windscreen_radius = windscreen_thread_radius + 5.0;
 windscreen_thread_height = 8;
-windscreen_height = 68;
+windscreen_height = 71;
 
-render_octa_capsule_array(212.3);
+render_octa_capsule_array(207.3);
 
 difference() {
     render_octa_capsule_flare(49.2);
 
-    *translate([-60, -60, 0]) {
-        cube([60, 60, 120]);
+    translate([-60, -60, 0]) {
+        cube([60, 60, 150]);
     }
 }
 
 difference() {
     union() {
-    render_sphear_lower_windscreen(tetra_pcb_mount_height - 10 + 28);
+    render_sphear_lower_windscreen(tetra_pcb_mount_height - 10 + 15);
 
-    render_sphear_upper_windscreen(tetra_pcb_mount_height - 10 + 28 + windscreen_height);
+    render_sphear_upper_windscreen(tetra_pcb_mount_height - 10 + 15 + windscreen_height);
     }
     *translate([-60, -60, 0]) {
         cube([60, 60, 120]);
@@ -93,6 +98,8 @@ rotate([0, 180, 0]) {
 //
 *render_octa_microphone_cutout(0, 0, 0);
 
+*render_sphear_windscreen_thread_cover(0)
+
 //// microphone shock mount
 
 *render_octa_shock_mount_stand(0);

+ 18 - 25
Octathingy_mount_pcb.scad

@@ -109,6 +109,12 @@ box_radius = pcb_front + (pcb_thickness + pcb_tfit) + pcb_back + 2 * wall;
 // calculated main body corner radius
 mount_corner = box_radius - pcb_width / 2 + pcb_slot_depth + 4.0;
 
+// body parameters
+render_screw_holes = true;
+radial_pcb_offset = 17.0;
+octa_pcb_mount_height = pcb_length - pcb_low_exp - pcb_hi_exp;
+octa_pcb_radius = radial_pcb_offset + pcb_width/2 + 5 * wall;
+
 // body to flares snap joint arm slot width
 snap_joint_slot_w = 0.75;
 
@@ -222,9 +228,6 @@ module rounded_octagon_wall(height, radius, wall) {
     }
 }
 
-render_screw_holes = true;
-radial_pcb_offset = 17.0;
-
 module octa_mount_body(height, radius, lower_lip, upper_lip, clear) {
     // rotate pcb assembly so it does not interfere with the screws
     offset_angle = -16;
@@ -387,6 +390,8 @@ module octa_mount_flare_no_ws(height, lip, transition, radius, top_radius, stalk
 }
 
 module octa_mount_flare(height, lip, transition, radius, top_radius, stalk_height, dot) {
+    // transition from bottom box to windscreen mounting thread
+    transition_to_threads = 5;
     // bottom box
     difference() {
         union() {
@@ -402,6 +407,10 @@ module octa_mount_flare(height, lip, transition, radius, top_radius, stalk_heigh
                     }
                 }
             }
+            // indicator of "front" of microphone
+            rotate([0, 0, 180]) translate([radius - 0.75, 0, 0]) {
+                cylinder(r = 1.0, h = lip/2, $fn = facets);
+            }
         }
         // flange to mount on body
         rounded_octagon_wall(lip + 1.00, radius - wall, wall);
@@ -427,8 +436,7 @@ module octa_mount_flare(height, lip, transition, radius, top_radius, stalk_heigh
         }
     }
     // flare to windscreen threads
-    transition_to_threads = 5.0;
-    translate([0, 0, height]) {
+    translate([0, 0, height - windscreen_thread_height - transition_to_threads]) {
         difference() {
             hull() {
                 rounded_octagon(thin_mint, radius);
@@ -437,7 +445,7 @@ module octa_mount_flare(height, lip, transition, radius, top_radius, stalk_heigh
                 }
             }
             hull() {
-                rounded_octagon(thin_mint, radius - 2 * wall);
+                rounded_octagon(thin_mint, radius - wall);
                 translate([0, 0, transition_to_threads]) {
                     cylinder(r = windscreen_thread_radius - windscreen_thread_depth - wall, h = thin_mint, $fn = facets);
                 }
@@ -445,24 +453,24 @@ module octa_mount_flare(height, lip, transition, radius, top_radius, stalk_heigh
         }
     }
     // windscreen mounting threads
-    translate([0, 0, height + transition_to_threads]) difference() {
+    translate([0, 0, height - windscreen_thread_height]) difference() {
         metric_thread(diameter = windscreen_thread_radius * 2, pitch = windscreen_thread_pitch,
             length = windscreen_thread_height, angle = windscreen_thread_angle, internal = false);
         cylinder(r = windscreen_thread_radius - wall - windscreen_thread_depth, h = windscreen_thread_height + thin_mint, $fn = facets);
     }
 
     // flare to stalk
-    translate([0, 0, height + transition_to_threads + windscreen_thread_height]) {
+    translate([0, 0, height - 1.5]) {
         difference() {
             hull() {
                 cylinder(r = windscreen_thread_radius - windscreen_thread_depth, h = thin_mint, $fn = facets);
-                translate([0, 0, transition - transition_to_threads - windscreen_thread_height]) {
+                translate([0, 0, transition + 1.5]) {
                     cylinder(r = top_radius, h = thin_mint, $fn = facets);
                 }
             }
             hull() {
                 cylinder(r = windscreen_thread_radius - windscreen_thread_depth - wall, h = thin_mint, $fn = facets);
-                translate([0, 0, transition - transition_to_threads - windscreen_thread_height]) {
+                translate([0, 0, transition + 1.5]) {
                     cylinder(r = top_radius - wall, h = thin_mint, $fn = facets);
                 }
             }
@@ -474,19 +482,6 @@ module octa_mount_flare(height, lip, transition, radius, top_radius, stalk_heigh
             cylinder(r = top_radius, h = stalk_height, $fn = facets);
             cylinder(r = top_radius - wall, h = stalk_height, $fn = facets);
         }
-        // add marker for "back of microphone" orientation
-        if (dot == 1) {
-            rotate([0, 0, 90]) {
-                translate([0, top_radius - wall * 2 / 3, stalk_height - top_radius]) {
-                    difference() {
-                        sphere(r = top_radius / 3, $fn = 32);
-                        translate([0, -top_radius + top_radius / 2, 0]) {
-                            cube([top_radius, top_radius, top_radius], center = true);
-                        }
-                    }
-                }
-            }
-        }
         // close stalk and add holes for cables
         translate([0, 0, stalk_height - top_radius - wall]) {
             difference() {
@@ -727,8 +722,6 @@ module render_octa_capsule_flare(z_offset) {
 
 // microphone body: main body, holds printed circuit boards
 //
-octa_pcb_mount_height = pcb_length - pcb_low_exp - pcb_hi_exp;
-octa_pcb_radius = radial_pcb_offset + pcb_width/2 + 5 * wall;
 
 module render_octa_pcb_mount(z_offset, showint) {
     translate([0, 0, z_offset]) {