Pārlūkot izejas kodu

tweak some tolerances for altest test print, calculate mount corner automatically

Fernando Pablo Lopez-Lezcano 10 gadi atpakaļ
vecāks
revīzija
85ad463b8c
1 mainītis faili ar 31 papildinājumiem un 23 dzēšanām
  1. 31 23
      TinySpHEAR_mount_pcb.scad

+ 31 - 23
TinySpHEAR_mount_pcb.scad

@@ -32,24 +32,28 @@ include <CCRMA_logo.scad>;
 ////
 
 // size of Zapnspark printed circuit board
-// (ideal size in Kicad design)
-pcb_length = 79.375;
-pcb_width = 19.050;
-// (specification of ultimaker pcb material)
-pcb_thickness = 1.61;
+// kicad length = 79.375
+// measured length = 79.20 (2016.08.25)
+pcb_length = 79.20;
+// kicad width = 19.050
+// measured width = 18.82 (2016.08.25)
+pcb_width = 18.85;
+// ultimaker spec thickness = 1.61
+// measured thickness = 1.56 (w/ copper)
+pcb_thickness = 1.58;
 
 // tolerance to add to length and width of pcb
 //
-// printed with pcb_fit = 0.25 -> 19.05 + 0.25 = 19.3 (ideal printed)
-//   measured printed = 19.04 - 0.25 = 18.79 (ultimaker 2 plus, 2016.08.23)
-//   measured pcb width = 18.85 (diff = 0.06, othermill)
+// measured 3d print width = 18.70 (with pcb_fit = 0.3)
+// actual printed = 18.70 - 0.3 = 16.97
+// total correction = 18.85 - 16.97 = 1.88
 //
-pcb_fit = 0.2;
+pcb_fit = 0.55;
 
 // tolerance add to thickness of pcb
 //
-// printed with pcb_tfit = 0.3 -> 1.61 + 0.3 = 1.91 (ideal printed)
-// measured print channel = 1.85 : 0.06 thinner (ultimaker 2 plus, 2016.08.23)
+// printed with pcb_tfit = 0.15 -> 1.58 + 0.15 = 1.73 (ideal printed)
+// measured print channel = 1.63 : 0.1 thinner (ultimaker 2 plus, 2016.08.24)
 // measured pcb thickness = 1.58 (othermill)
 //
 pcb_tfit = 0.15;
@@ -61,28 +65,27 @@ pcb_tfit = 0.15;
 pcb_low_exp = 12.0;
 pcb_hi_exp = 8.0;
 
+// lip fit for flares
+lip_fit = 0.15;
+
 // clearance from the bottom and top of pcb's to the start of the flare,
 // this adds space for the protuding molex pins on which we solder
 pcb_low_clear = 15.0;
 pcb_hi_clear = 15.0;
 
+// depth of slot into which the printed circuit board fits
+pcb_slot_depth = 1.0;
+
 // diameter of four conductor cable
 cable_diam = 9.5;
 
 // lip that mounts flares into main body box
 mount_lip = 6.0;
 
-// main body corner radius
-mount_corner = 15.0;
-
 // capsule array mount, height of flare and stalk
 flare_height = 50;
 stalk_height = 40;
 
-// lip fit for flares
-// 0.20 seems to be fine (0.3 was too lose)
-lip_fit = 0.20 / 2;
-
 // wall thickness
 wall = 1.0;
 
@@ -93,6 +96,9 @@ pcb_back = 3.0;
 // calculated minimum "radius" of microphone box
 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 + 1.0;
+
 // shock mount parameters
 //
 
@@ -168,7 +174,7 @@ module tetra_mount_body(height, radius, corner, lower_lip, upper_lip, clear) {
         tetra_mount_box(height, radius, corner);
         union() {
             // hollow out the inside with slots for pcbs
-            tetra_pcb_clear(pcb_length, pcb_width, pcb_thickness, 1.0, pcb_front, pcb_back);
+            tetra_pcb_clear(pcb_length, pcb_width, pcb_thickness, pcb_slot_depth, pcb_front, pcb_back);
             // trim square angles
             cylinder(r = pcb_front, h = height, $fn = facets);
             // remove slots from inside body
@@ -525,7 +531,7 @@ module render_tetra_pcb_mount(z_offset, showint) {
     rotate([0, 0, -90]) {
         translate([0, -(box_radius - 0.5), tetra_pcb_mount_height / 2]) {
             rotate([90, 270, 0]) {
-                logo_scale = 1/2;
+                logo_scale = 1 / 2.2;
                 scale([logo_scale, logo_scale, 1.0]) {
                     ccrma_logo(1.75);
                 }
@@ -572,9 +578,11 @@ module render_tetra_microphone(z_offset, spread) {
 module render_tetra_microphone_cutout(z_offset, spread) {
     difference() {
         render_tetra_microphone(z_offset, spread);
-        // a cube that blots out half the microphone
-        translate([0, -50, -50]) {
-            cube([50, 100, 650]);
+        // a cube that blots out 1/4 of the microphone
+        rotate([0, 0, 45]) {
+            translate([0, 0, -50]) {
+                cube([50, 100, 650]);
+            }
         }
     }
 }