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.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();