My self-made 3D-printable designs, mainly in OpenSCAD
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

CapAdapter.scad 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. // Soda bottle cap Co2 dispensing adapter
  2. // Made in July 2017 by xythobuz@xythobuz.de
  3. // Licensed under CC-BY-SA-NC
  4. // Necks & Caps for DIY projects
  5. // Xavan June 2016
  6. // https://www.thingiverse.com/thing:1654620
  7. // Minimum Radius: ~15mm
  8. // License: CC-BY
  9. include <NecksCaps.scad>;
  10. // cap-type specific
  11. diameter = 30.4;
  12. wall_height = 1.5;
  13. // Universal Hose Coupler & Funnel Maker
  14. // Mooncactus January 2013
  15. // https://www.thingiverse.com/thing:44850
  16. // License: CC-BY-SA
  17. include <HoseAdapter.scad>;
  18. channel_diameter = 4;
  19. wall_size = 4;
  20. pipe_diameter = 4;
  21. pipe_wall_size = 2.2;
  22. pipe_height = 20;
  23. hose_offset = 6.5;
  24. thread_diameter = 5;
  25. thread_pitch = 0.8;
  26. thread_height = 15;
  27. thread2_diameter = 5;
  28. thread2_pitch = 0.8;
  29. thread2_height = 10;
  30. oring_height = 2.2;
  31. oring_dia_add = 4.2;
  32. // OpenSCAD Threads
  33. // http://dkprojects.net/openscad-threads/
  34. //include <threads.scad>;
  35. // threads are not really useful in these sizes...
  36. module metric_thread(dia, pitch, height, internal) {
  37. cylinder(d = dia - pitch, h = height);
  38. }
  39. module cap() {
  40. rotate([180, 0, 0])
  41. //38mm3start (); // diameter: 42, radius: 21
  42. 28PCO1810 (); // diameter: 30.43, radius: 15.215
  43. //28PCO1881 (); // diameter: 30.4, radius: 15.2
  44. cylinder(d = diameter, h = channel_diameter + (2 * wall_size));
  45. }
  46. module adapter() {
  47. difference() {
  48. cap();
  49. // gas input hole
  50. translate([-diameter / 2 - 1, 0, (channel_diameter / 2) + wall_size])
  51. rotate([0, 90, 0])
  52. cylinder(d = channel_diameter, h = diameter / 2 - wall_size + 1);
  53. // liquid output hole
  54. translate([wall_size, 0, (channel_diameter / 2) + wall_size])
  55. rotate([0, 90, 0])
  56. cylinder(d = channel_diameter, h = diameter / 2 - wall_size + 1);
  57. // gas input outlet
  58. translate([-wall_size, 0, wall_size + channel_diameter - 20])
  59. cylinder(d = channel_diameter, h = 20);
  60. // liquid output inlet
  61. translate([wall_size, 0, wall_size + channel_diameter - 20])
  62. cylinder(d = channel_diameter, h = 20);
  63. // gas input thread
  64. translate([-diameter / 2 - 1, 0, (channel_diameter / 2) + wall_size])
  65. rotate([0, 90, 0]) {
  66. metric_thread(thread2_diameter, thread2_pitch, thread2_height + 1, internal = true);
  67. cylinder(d = thread2_diameter + oring_dia_add, h = oring_height + 1);
  68. }
  69. // liquid output thread
  70. translate([diameter / 2 - thread2_height, 0, (channel_diameter / 2) + wall_size])
  71. rotate([0, 90, 0]) {
  72. metric_thread(thread2_diameter, thread2_pitch, thread2_height + 1, internal = true);
  73. translate([0, 0, thread2_height - oring_height])
  74. cylinder(d = thread2_diameter + oring_dia_add, h = oring_height + 1);
  75. }
  76. }
  77. // liquit output inlet
  78. translate([wall_size, 0, -pipe_height - wall_height])
  79. difference() {
  80. cylinder(d = pipe_diameter + (2 * pipe_wall_size), h = pipe_height);
  81. translate([0, 0, -1])
  82. cylinder(d = pipe_diameter, h = pipe_height + 2);
  83. translate([0, 0, -1])
  84. metric_thread(thread_diameter, thread_pitch, thread_height + 1, internal = true);
  85. }
  86. /*
  87. // inlet hose adapter
  88. translate([-diameter - hose_offset, 0, 6])
  89. rotate([0, 90, 0])
  90. tube_adapter();
  91. // outlet hose adapter
  92. translate([diameter + hose_offset, 0, 6])
  93. rotate([0, -90, 0])
  94. tube_adapter();
  95. */
  96. }
  97. translate([0, 0, channel_diameter + (2 * wall_size)])
  98. rotate([180, 0, 0])
  99. adapter();