/*------------------------------------------------- [Gimbal Mic Clip] Author: Wisam Reid ------------------------------------------------- */ // number of facets $fn=64; // Build Test Rig test_rig(20,20,20,1,1,5); module test_rig (diameter_clip, diameter_gimbal, clip_depth, taper_ratio, center_thickness, thickness) { translate([((thickness) + center_thickness)/2,0,0]) { 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); } } } } }