Răsfoiți Sursa

Merge branch 'master' of cm-gitlab.stanford.edu:ambisonics/microphones

Fernando Pablo Lopez-Lezcano 10 ani în urmă
părinte
comite
ba84a2aa00
1 a modificat fișierele cu 94 adăugiri și 29 ștergeri
  1. 94 29
      calibration/test_rig_gimbal_clip.scad

+ 94 - 29
calibration/test_rig_gimbal_clip.scad

@@ -3,37 +3,102 @@
         Author: Wisam Reid 
   ------------------------------------------------- */ 
 
-// Diameter for the clip ring
-diameter_clip= 30;
-// Diameter for the gimbal ring
-diameter_gimbal= 10;
-
-thickness=5;
-
-// diameter for gimbal pinhole
-diameter_pinhole=1;// "0" for no-hole.
-
 // number of facets
 $fn=64;
 
-// twist rings? (in degrees)
-orientation=0;
-translate([thickness/4,0,0])difference()
-union(){
-  
-    difference(){
-        translate([-(diameter_gimbal+thickness)/2,0,0])rotate([0,0,180])cylinder(d=diameter_gimbal+thickness,h=thickness, center=true);
-        translate([-(diameter_gimbal+thickness)/2,0,0])rotate([90,0,0])cylinder(d=thickness/2,h=diameter_gimbal+(thickness*.75), center=true);
-        // vertical ring cut out
-        translate([-(diameter_gimbal+thickness)/2,0,0])rotate([0,0,180])cylinder(d=diameter_gimbal,h=diameter_gimbal, center=true);
-        translate([-(diameter_gimbal*1.25),-(diameter_gimbal/1.4),-(diameter_gimbal*3)])rotate([0,0,45])cube([diameter_gimbal,diameter_gimbal,6*diameter_gimbal]);
-        
-    }
-    rotate([0,0,180])translate([thickness/2,0,0])
-    difference(){
-        translate([-(diameter_clip+thickness)/2,0,0])rotate([0,0,180])cylinder(d=diameter_clip+thickness,h=thickness, center=true);
-        // vertical ring cut out
-        translate([-(diameter_clip+thickness)/2,0,0])rotate([0,0,180])cylinder(d=diameter_clip,h=diameter_clip, center=true);
-        translate([-(diameter_clip*1.5),-(diameter_clip/1.4),-(diameter_clip*3)])rotate([0,0,45])cube([diameter_clip,diameter_clip,6*diameter_clip]);     
+// Build Test Rig
+test_rig(20,20,20,1,10,1,5);
+
+module test_rig (diameter_clip, diameter_gimbal, clip_depth, taper_ratio, capsule_size,center_thickness, thickness) {
+    translate([((thickness) + center_thickness)/2,0,0]) {
+      // GIMBAL 
+      difference(){ // cutout center for capsule
+            // outer part of mic clip
+            //translate([-(diameter_clip+thickness)/2,0,0]){
+            translate([-(clip_depth + (diameter_gimbal/2)),0,0]){
+                    intersection() { // intersect with sphere for rounded edges
+                        sphere(r=(capsule_size/2)+thickness, center=true);
+                        cylinder(r=(capsule_size/2)+thickness, h=thickness, center=true);
+                    }
+            }
+      
+            // inner cutout for gimbal
+            translate([-(clip_depth + (diameter_gimbal/2)),0,0]){
+                cylinder(d=capsule_size,h=diameter_clip, center=true);
+            }
+        }
+        difference(){ // cut gimbal pinhole and inner mic clip radius
+            union(){ // unite gimbal bracket with mic clip
+                
+              // GIMBAL BRACKET
+              translate([-(thickness/(taper_ratio/2)),0,0]){
+                    difference(){ // cutout inner part of gimbal bracket
+                        intersection(){ // intersect with sphere for rounded edges
+                            hull(){ // convex hull of spheres
+                                translate([-2*clip_depth,0,0]){
+                                    sphere(r=(diameter_gimbal/taper_ratio)-thickness, center=true);  
+                                }
+                                sphere(r=(diameter_gimbal/taper_ratio)-2*thickness, center=true);  
+                            } 
+                            hull(){ // outer part of gimbal bracket
+                                translate([-clip_depth,0,0]){
+                                    cylinder(d=diameter_gimbal+thickness,h=thickness, center=true);
+                                }
+                                cylinder(d=diameter_gimbal/taper_ratio,h=thickness, center=true);
+                            }
+                        }
+                        hull(){ // inner cutout for gimbal bracket
+                            translate([-clip_depth,0,0]){
+                                cylinder(d=diameter_gimbal,h=thickness, center=true);
+                            }
+                            translate([-(center_thickness+thickness),0,0]){
+                                cylinder(d=(diameter_gimbal/taper_ratio) - thickness,h=thickness,center=true);
+                            }
+                        }
+                        // C-shape cutout
+                        translate([-(diameter_gimbal+clip_depth)+(thickness/(taper_ratio/2)),0,-thickness/2]){
+                            rotate([0,0,45]){
+                                cube([diameter_gimbal,diameter_gimbal,2*thickness],center=true);
+                            }
+                        }
+                    } 
+                }
+                
+                // MIC CLIP 
+                rotate([0,0,180]){
+                    translate([thickness/2,0,0]){
+                        difference(){ // cutout inner part of mic clip
+                            // outer part of mic clip
+                            translate([-(diameter_clip+thickness)/2,0,0]){
+                                rotate([0,0,180]){
+                                    intersection() { // intersect with sphere for rounded edges
+                                        sphere(r=diameter_clip-thickness, center=true);
+                                        cylinder(r=diameter_clip-thickness, h=thickness, center=true);
+                                    }
+                                    // cylinder(d=diameter_clip+thickness,h=thickness, center=true);
+                                }
+                            }
+                            // cut clip opening 
+                            translate([-(diameter_clip*1.5),-(diameter_clip/1.4),-(diameter_clip*3)]){
+                                rotate([0,0,45]){
+                                    cube([diameter_clip,diameter_clip,6*diameter_clip]);
+                                }
+                            }     
+                        }
+                    }
+                }
+            }
+            
+            // inner cutout for mic clip
+            translate([diameter_clip/2,0,0]){
+                cylinder(d=diameter_clip,h=diameter_clip, center=true);
+            }
+            // gimbal pin hole
+            translate([-(clip_depth + (diameter_gimbal/2)),0,0]){            
+                rotate([90,0,0]){
+                    cylinder(d=thickness/2,h=diameter_gimbal + (thickness/2), center=true);
+                }
+            }
+        }
     }
 }