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