Advertisement
Guest User

syringe dispenser

a guest
Feb 5th, 2023
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.34 KB | Source Code | 0 0
  1. $fn=96;
  2.  
  3. // dispenser2();
  4. // syringe_body();
  5. // support();
  6. //piston();
  7. handle();
  8. //knob();
  9.  
  10.  
  11.  
  12. module dispenser()
  13. {
  14. syringe_body();
  15. translate([0, 0, 52]) rotate([180,0,0]) support();
  16. translate([0, 0, -10]) handle();
  17. translate([0, 0, 60]) rotate([0,180,0]) piston();
  18. translate([0, 0, -30]) rotate([0,180,0]) knob();
  19. }
  20.  
  21. module dispenser2()
  22. {
  23. // # syringe_body();
  24. translate([50, 50, 15]) rotate([-90,0,0]) support();
  25. // translate([0, 0, 5]) rotate([0,90,0]) handle();
  26. // translate([0, 80, 20]) rotate([180,0,0]) piston();
  27. // translate([0, 53, 0]) rotate([0,0,0]) knob();
  28. }
  29.  
  30.  
  31. module knob()
  32. {
  33. height=10;
  34. diameter=30;
  35. difference()
  36. {
  37. cylinder(d=diameter,h=height);
  38. translate([0,0,-1]) cylinder(d=6,h=height+2);
  39. translate([0,0,height-5]) cylinder(d=13,h=6, $fn=6);
  40.  
  41. //top champfer
  42. translate([0,0,height]) rotate_extrude() translate([diameter/2,0,0]) circle(r=1.6,$fn=4);
  43. //bottom champfer
  44. rotate_extrude() translate([diameter/2,0,0]) circle(r=1.6,$fn=4);
  45. //knurls
  46. for(i=[0:29])
  47. rotate([0,0,i*12]) linear_extrude(height=height+0.1,twist=height/45*120) translate([diameter/2,0]) circle(r=1.1,$fn=4);
  48. //more knurls
  49. for(i=[0:29])
  50. rotate([0,0,i*12]) linear_extrude(height=height+0.1,twist=height/45*-120) translate([diameter/2,0]) circle(r=1.1,$fn=4);
  51.  
  52. }
  53. }
  54.  
  55. module piston()
  56. {
  57. difference()
  58. {
  59. union()
  60. {
  61. cylinder(d=10, h=8.4);
  62. translate([0, 0, 8.4]) cylinder(d=13.6, h=2);
  63. translate([0, 0, 10.4]) cylinder(d=15, h=10);
  64. }
  65. translate([0, 0, 4]) cylinder(d=5.4, h=20);
  66. }
  67. }
  68.  
  69. module handle()
  70. {
  71. thickness = 10;
  72.  
  73. difference()
  74. {
  75. minkowski()
  76. {
  77. difference()
  78. {
  79. union()
  80. {
  81. hull()
  82. {
  83. translate([0, -3, -3]) cube([thickness,34,13],true);
  84. translate([-thickness/2, 0, 0]) rotate([0,90,0]) cylinder(d=16, h=thickness);
  85. translate([-thickness/2, -20, -2.5]) rotate([0,90,0]) cylinder(d=14, h=thickness);
  86. }
  87.  
  88. difference()
  89. {
  90. hull()
  91. {
  92. translate([0, 24.5, 13/2-9.5]) cube([thickness,13,13],true);
  93. translate([-thickness/2, 30, 4-9.5]) rotate([0,90,0]) cylinder(d=8, h=thickness);
  94. translate([-thickness/2, 21, 86-9.5]) rotate([0,90,0]) cylinder(d=6, h=thickness);
  95. translate([-thickness/2, 31, 86-9.5]) rotate([0,90,0]) cylinder(d=6, h=thickness);
  96. }
  97. translate([-6, 118, 45-9.5]) rotate([0,90,0]) cylinder(d=180, h=12, $fn=192 );
  98. }
  99. translate([0, 21, 17/2-9.5]) cube([thickness,14,17],true);
  100. }
  101. translate([-6, 14, 7.5]) rotate([0,90,0]) cylinder(d=8, h=12);
  102. }
  103. cylinder(r=1,h=1);
  104. }
  105. union()
  106. {
  107. translate([-10, 0, 0]) rotate([0,90,0]) cylinder(d=10.4, h=20);
  108. translate([-15, -20.5, -3]) rotate([0,90,0]) cylinder(d=3.5, h=30);
  109. hull()
  110. {
  111. cylinder(d=6.5, h=25, center=true);
  112. rotate([15,0,0]) cylinder(d=6.5, h=25, center=true);
  113. }
  114. }
  115. }
  116. }
  117.  
  118.  
  119. module support()
  120. {
  121. r_inner = 9;
  122. ring_height = 15;
  123. r_ball = 2;
  124. difference()
  125. {
  126. union()
  127. {
  128. minkowski()
  129. {
  130. hull()
  131. {
  132. translate([0, 19, (ring_height+12)/2+2]) cube([22,10,ring_height+12],true);
  133. translate([0, 20.5, 29]) rotate([0,90,0]) cylinder(d=10, h=22, center=true);
  134.  
  135. }
  136. sphere(r=2);
  137. }
  138. rotate([0,0,4]) translate([12, 15-8, ring_height/2]) cube([4,13.0,ring_height],true);
  139. rotate([0,0,-4]) translate([-12, 15-8, ring_height/2]) cube([4,13.0,ring_height],true);
  140. rotate([0,0,0]) translate([-0, 12, ring_height/2]) cube([5+ring_height, 5, ring_height],true);
  141. }
  142.  
  143. union()
  144. {
  145. translate([0, 20, 32]) cube([12.6, 30,30],true);
  146. translate([-15, 20.5, 29]) rotate([0,90,0]) cylinder(d=3.5, h=30);
  147. translate([12, 20.5, 29]) rotate([0,90,0]) cylinder(d=6.5, h=30);
  148. translate([-13, 20.5, 29]) rotate([0,90,0]) cylinder(d=6.5, h=2, $fn=6);
  149. }
  150. }
  151. difference()
  152. {
  153. cylinder(r=r_inner+5, h=ring_height);
  154. translate([0, 0, -1]) cylinder(r=r_inner, h=ring_height+2);
  155. # translate([0, -0.75-ring_height/2, ring_height/2 ]) cube ([6,1.5, ring_height],true);
  156. # translate([0, 0.75+ring_height/2, ring_height/2 ]) cube ([6,1.5, ring_height],true);
  157. }
  158.  
  159. }
  160.  
  161.  
  162. module syringe_body()
  163. {
  164. diameter = 18.8;
  165. wall = 1;
  166. handle = 35;
  167. height = 73;
  168. radius=diameter/2;
  169.  
  170. difference()
  171. {
  172. union()
  173. {
  174. cylinder(r=radius, h=height);
  175. translate([0, 0, height]) scale([1,1,0.8]) sphere(r = radius);
  176. translate([0, 0, 87-10]) cylinder(d=10.4, h=10);
  177. hull()
  178. {
  179. translate([0, 0, wall/2]) cube([12,diameter+4,wall],true);
  180. translate([handle/2-8, 0, 0]) cylinder(r=8, h=wall);
  181. translate([-handle/2+8, 0, 0]) cylinder(r=8, h=wall);
  182.  
  183. }
  184. }
  185. union()
  186. {
  187. translate([0, 0, -wall]) cylinder(r=(radius-wall), h=height);
  188. cylinder(d=10.4-2*wall, h=88);
  189. }
  190. }
  191. }
Tags: OpenSCAD
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement