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 2.5KB

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