Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1. //$fn = 50;
  2. $fn = 100;
  3. //$fn = 200;
  4.  
  5. //Tolerances?
  6. headset_OD_T = 0.1;
  7. camera_gap_T = 0.8;
  8. lens_holder_T = 0.1;
  9. THICKNESS = 2;
  10.  
  11. //Diameters of lens and headset objects
  12. headset_OD = 47.2 + headset_OD_T;
  13. camera_gapW = 21.2 + camera_gap_T;
  14. camera_gapH = 21;
  15. lens_OD = 37.8 + lens_holder_T;
  16. lens_band_thickness = 1.6 + lens_holder_T;
  17.  
  18. //Set variables for thickness.
  19. shaft_height = 10;
  20. lens_tab_OD = 1;
  21. lens_cup_height = lens_band_thickness + lens_tab_OD + lens_holder_T;
  22. reflector_height = 4 + THICKNESS;
  23. reflector_ID = lens_OD - lens_band_thickness - lens_holder_T;
  24. lens_spacer = 1;
  25. lens_holder_gap_H = 1 + lens_cup_height;
  26. lens_holder_gap_W = 10;
  27.  
  28.  
  29.  
  30. difference(){
  31. EyePiece();
  32. lensHolderGaps();
  33. }
  34.  
  35. module EyePiece(){
  36. Shaft();
  37. Reflector();
  38. }
  39.  
  40. module Shaft(){
  41. difference(){
  42. cylinder_outer(shaft_height, (headset_OD + THICKNESS)/2);
  43. cylinder_outer(shaft_height, headset_OD/2);
  44. translate([0, -headset_OD/2, 0]){
  45. cube([camera_gapW, camera_gapH, 50], center = true);
  46. }
  47. }
  48. }
  49.  
  50. module Reflector(){
  51. translate([0, 0, shaft_height - (THICKNESS / 2)]){
  52. translate([0, 0, reflector_height]){
  53. lensCup();
  54. }
  55. translate([0, 0, THICKNESS / 2]){
  56. difference(){
  57. difference(){
  58. cone_outer(reflector_height, (headset_OD + THICKNESS)/2, (lens_OD + THICKNESS)/2);
  59. translate([0, 0, -(THICKNESS + reflector_height)]){
  60. cone_outer(reflector_height * 2, (1.25*(headset_OD + THICKNESS) + THICKNESS)/2, reflector_ID/2);
  61. }
  62. }
  63. cylinder_outer(10, reflector_ID/2);
  64. }
  65. }
  66. }
  67. }
  68.  
  69. module lensCup(){
  70. difference(){
  71. cylinder_outer(lens_spacer, (lens_OD + THICKNESS)/2);
  72. cylinder_outer(lens_spacer, reflector_ID/2);
  73. }
  74. difference(){
  75. cylinder_outer(lens_cup_height, (lens_OD + THICKNESS)/2);
  76. cylinder_outer(lens_cup_height, lens_OD/2);
  77. }
  78. translate([0, 0, lens_cup_height - lens_tab_OD/2]){
  79. lensHolderTabs();
  80. }
  81. }
  82.  
  83. module lensHolder(){
  84. translate([lens_tab_OD/2, 0, 0]){
  85. difference(){
  86. sphere(d = lens_tab_OD);
  87. translate([lens_tab_OD/2, 0, 0]){
  88. cube([lens_tab_OD, lens_tab_OD, lens_tab_OD], center = true);
  89. }
  90. }
  91. }
  92. }
  93.  
  94. module lensHolderGaps(){
  95. translate([0, 0, shaft_height + (reflector_height)]){
  96. rotate(a = 0, v=[0, 0, 1]){
  97. translate([0, 0, lens_holder_gap_H/2])cubeOnAxis(headset_OD, lens_holder_gap_W, lens_holder_gap_H);
  98. rotate(a = 90, v = [0, 1, 0])scale([0.25, 1])cylinder(h=headset_OD, d1 = lens_holder_gap_W, d2 = lens_holder_gap_W);
  99. }
  100. rotate(a = -180, v=[0, 0, 1]){
  101. translate([0, 0, lens_holder_gap_H/2])cubeOnAxis(headset_OD, lens_holder_gap_W, lens_holder_gap_H);
  102. rotate(a = 90, v = [0, 1, 0])scale([0.25, 1])cylinder(h=headset_OD, d1 = lens_holder_gap_W, d2 = lens_holder_gap_W);
  103. }
  104. }
  105.  
  106. }
  107.  
  108. module cubeOnAxis(length, width, height){
  109. translate([length/2, 0, 0]){
  110. cube([length, width, height], center = true);
  111. }
  112. }
  113. module lensHolderTabs(){
  114. rotate(a = 30, v=[0, 0, 1]){
  115. translate([lens_OD/2 - lens_tab_OD/2, 0, 0]){
  116. lensHolder();
  117. }
  118. }
  119. rotate(a = 90, v=[0, 0, 1]){
  120. translate([lens_OD/2 - lens_tab_OD/2, 0, 0]){
  121. lensHolder();
  122. }
  123. }
  124. rotate(a = 150, v=[0, 0, 1]){
  125. translate([lens_OD/2 - lens_tab_OD/2, 0, 0]){
  126. lensHolder();
  127. }
  128. }
  129. rotate(a = -150, v=[0, 0, 1]){
  130. translate([lens_OD/2 - lens_tab_OD/2, 0, 0]){
  131. lensHolder();
  132. }
  133. }
  134. rotate(a = -90, v=[0, 0, 1]){
  135. translate([lens_OD/2 - lens_tab_OD/2, 0, 0]){
  136. lensHolder();
  137. }
  138. }
  139. rotate(a = -30, v=[0, 0, 1]){
  140. translate([lens_OD/2 - lens_tab_OD/2, 0, 0]){
  141. lensHolder();
  142. }
  143. }
  144. }
  145.  
  146. module cylinder_outer(height,radius){
  147. fudge = 1/cos(180/$fn);
  148. cylinder(h=height,r=radius*fudge);
  149. }
  150.  
  151. module cone_outer(height,radius1,radius2){
  152. fudge = 1/cos(180/$fn);
  153. cylinder(h=height,r1=radius1*fudge,r2=radius2*fudge);
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement