|
|
@@ -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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|