My self-made 3D-printable designs, mainly in OpenSCAD
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CapAdapter.scad 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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 = 1.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. // OpenSCAD Threads
  31. // http://dkprojects.net/openscad-threads/
  32. include <threads.scad>;
  33. module cap() {
  34. rotate([180, 0, 0])
  35. //38mm3start (); // diameter: 42, radius: 21
  36. 28PCO1810 (); // diameter: 30.43, radius: 15.215
  37. //28PCO1881 (); // diameter: 30.4, radius: 15.2
  38. cylinder(d = diameter, h = channel_diameter + (2 * wall_size));
  39. }
  40. module adapter() {
  41. difference() {
  42. cap();
  43. // gas input hole
  44. translate([-diameter / 2 - 1, 0, (channel_diameter / 2) + wall_size])
  45. rotate([0, 90, 0])
  46. cylinder(d = channel_diameter, h = diameter / 2 - wall_size + 1);
  47. // liquid output hole
  48. translate([wall_size, 0, (channel_diameter / 2) + wall_size])
  49. rotate([0, 90, 0])
  50. cylinder(d = channel_diameter, h = diameter / 2 - wall_size + 1);
  51. // gas input outlet
  52. translate([-wall_size, 0, wall_size + channel_diameter - 20])
  53. cylinder(d = channel_diameter, h = 20);
  54. // liquid output inlet
  55. translate([wall_size, 0, wall_size + channel_diameter - 20])
  56. cylinder(d = channel_diameter, h = 20);
  57. // gas input thread
  58. translate([-diameter / 2 - 1, 0, (channel_diameter / 2) + wall_size])
  59. rotate([0, 90, 0])
  60. metric_thread(thread2_diameter, thread2_pitch, thread2_height + 1, internal = true);
  61. // liquid output thread
  62. translate([diameter / 2 - thread2_height, 0, (channel_diameter / 2) + wall_size])
  63. rotate([0, 90, 0])
  64. metric_thread(thread2_diameter, thread2_pitch, thread2_height + 1, internal = true);
  65. }
  66. // liquit output inlet
  67. translate([wall_size, 0, -pipe_height - wall_height])
  68. difference() {
  69. cylinder(d = pipe_diameter + (2 * pipe_wall_size), h = pipe_height);
  70. translate([0, 0, -1])
  71. cylinder(d = pipe_diameter, h = pipe_height + 2);
  72. translate([0, 0, -1])
  73. metric_thread(thread_diameter, thread_pitch, thread_height + 1, internal = true);
  74. }
  75. /*
  76. // inlet hose adapter
  77. translate([-diameter - hose_offset, 0, 6])
  78. rotate([0, 90, 0])
  79. tube_adapter();
  80. // outlet hose adapter
  81. translate([diameter + hose_offset, 0, 6])
  82. rotate([0, -90, 0])
  83. tube_adapter();
  84. */
  85. }
  86. //translate([0, 0, channel_diameter + (2 * wall_size)])
  87. //rotate([180, 0, 0])
  88. adapter();