test_rig_gimbal_clip.scad 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*-------------------------------------------------
  2. [Gimbal Mic Clip]
  3. Author: Wisam Reid
  4. ------------------------------------------------- */
  5. // number of facets
  6. $fn=64;
  7. // Build Test Rig
  8. test_rig(20,20,20,1,10,1,5);
  9. module test_rig (diameter_clip, diameter_gimbal, clip_depth, taper_ratio, capsule_size,center_thickness, thickness) {
  10. translate([((thickness) + center_thickness)/2,0,0]) {
  11. // GIMBAL
  12. difference(){ // cutout center for capsule
  13. // outer part of mic clip
  14. //translate([-(diameter_clip+thickness)/2,0,0]){
  15. translate([-(clip_depth + (diameter_gimbal/2)),0,0]){
  16. intersection() { // intersect with sphere for rounded edges
  17. sphere(r=(capsule_size/2)+thickness, center=true);
  18. cylinder(r=(capsule_size/2)+thickness, h=thickness, center=true);
  19. }
  20. }
  21. // inner cutout for gimbal
  22. translate([-(clip_depth + (diameter_gimbal/2)),0,0]){
  23. cylinder(d=capsule_size,h=diameter_clip, center=true);
  24. }
  25. }
  26. difference(){ // cut gimbal pinhole and inner mic clip radius
  27. union(){ // unite gimbal bracket with mic clip
  28. // GIMBAL BRACKET
  29. translate([-(thickness/(taper_ratio/2)),0,0]){
  30. difference(){ // cutout inner part of gimbal bracket
  31. intersection(){ // intersect with sphere for rounded edges
  32. hull(){ // convex hull of spheres
  33. translate([-2*clip_depth,0,0]){
  34. sphere(r=(diameter_gimbal/taper_ratio)-thickness, center=true);
  35. }
  36. sphere(r=(diameter_gimbal/taper_ratio)-2*thickness, center=true);
  37. }
  38. hull(){ // outer part of gimbal bracket
  39. translate([-clip_depth,0,0]){
  40. cylinder(d=diameter_gimbal+thickness,h=thickness, center=true);
  41. }
  42. cylinder(d=diameter_gimbal/taper_ratio,h=thickness, center=true);
  43. }
  44. }
  45. hull(){ // inner cutout for gimbal bracket
  46. translate([-clip_depth,0,0]){
  47. cylinder(d=diameter_gimbal,h=thickness, center=true);
  48. }
  49. translate([-(center_thickness+thickness),0,0]){
  50. cylinder(d=(diameter_gimbal/taper_ratio) - thickness,h=thickness,center=true);
  51. }
  52. }
  53. // C-shape cutout
  54. translate([-(diameter_gimbal+clip_depth)+(thickness/(taper_ratio/2)),0,-thickness/2]){
  55. rotate([0,0,45]){
  56. cube([diameter_gimbal,diameter_gimbal,2*thickness],center=true);
  57. }
  58. }
  59. }
  60. }
  61. // MIC CLIP
  62. rotate([0,0,180]){
  63. translate([thickness/2,0,0]){
  64. difference(){ // cutout inner part of mic clip
  65. // outer part of mic clip
  66. translate([-(diameter_clip+thickness)/2,0,0]){
  67. rotate([0,0,180]){
  68. intersection() { // intersect with sphere for rounded edges
  69. sphere(r=diameter_clip-thickness, center=true);
  70. cylinder(r=diameter_clip-thickness, h=thickness, center=true);
  71. }
  72. // cylinder(d=diameter_clip+thickness,h=thickness, center=true);
  73. }
  74. }
  75. // cut clip opening
  76. translate([-(diameter_clip*1.5),-(diameter_clip/1.4),-(diameter_clip*3)]){
  77. rotate([0,0,45]){
  78. cube([diameter_clip,diameter_clip,6*diameter_clip]);
  79. }
  80. }
  81. }
  82. }
  83. }
  84. }
  85. // inner cutout for mic clip
  86. translate([diameter_clip/2,0,0]){
  87. cylinder(d=diameter_clip,h=diameter_clip, center=true);
  88. }
  89. // gimbal pin hole
  90. translate([-(clip_depth + (diameter_gimbal/2)),0,0]){
  91. rotate([90,0,0]){
  92. cylinder(d=thickness/2,h=diameter_gimbal + (thickness/2), center=true);
  93. }
  94. }
  95. }
  96. }
  97. }