gardena_f_dusche.scad 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. $fn=90;
  2. use <threads.scad>
  3. use <gardena.scad>
  4. Debug=false; // true false
  5. Schnitt=false;
  6. Delta=0.01;
  7. Inch=25.4;
  8. // Anschluss 25.4x14G Aussen auf 20x14G Duschschlauch für Gartenspritze
  9. module dusche_spritze() {
  10. Bohrung=12;
  11. TPI=14;
  12. SW=20;
  13. G_25=[25.4, TPI, 9]; // Dia, Pitch, Length
  14. G_20=[20, TPI, 11]; // Dia, Pitch, Length
  15. difference() {
  16. union() {
  17. L1=1; // Fase
  18. translate([0,0,0]) cylinder(d1=G_25.x-3, d2=G_25.x-1, h=L1);
  19. // Gewinde Spritze
  20. translate([0,0,L1]) metric_thread(diameter=G_25.x, pitch=Inch/G_25.y, length=G_25.z, leadin=2, test=Debug);
  21. L2=5; // Sechskant SW20
  22. translate([0,0,G_25.z+L1]) cylinder(r=SW/sqrt(3), h=L2, $fn=6);
  23. // Gewinde Duschschlauch
  24. translate([0,0,G_25.z+L2+L1]) metric_thread(diameter=G_20.x, pitch=Inch/G_20.y, length=G_20.z, leadin=2, test=Debug);
  25. }
  26. translate([0,0,-Delta]) cylinder(d=Bohrung, h=40);
  27. }
  28. }
  29. module halbzoll_f_gardena() {
  30. Bohrung=9;
  31. TPI=14;
  32. SW=20;
  33. G_20=[20, TPI, 11]; // Dia, Pitch, Length
  34. difference() {
  35. union() {
  36. L1=14; D=25;
  37. translate([0,0,0]) hull() {
  38. //cylinder(d=D, h=L1);
  39. Dr=3;
  40. translate([0,0,L1-Dr/2]) rotate_extrude() translate([(D-Dr)/2,0]) circle(d=Dr);
  41. cylinder(d=D, h=Delta);
  42. }
  43. translate([0,0,L1]) gardena_nippel();
  44. for (i=[0:360/60:359]) rotate([0,0,i]) translate([D/2,0,2]) cylinder(d=1, h=6, $fn=4);
  45. }
  46. translate([0,0,-Delta]) union() {
  47. L1=7;
  48. metric_thread(diameter=SW+0.2, pitch=Inch/TPI, length=L1, leadin=2, internal=true, test=Debug);
  49. L2=4;
  50. translate([0,0,L1]) cylinder(d=20, h=L2);
  51. cylinder(d=Bohrung, h=40);
  52. D1=13;
  53. translate([0,0,L1+L2-Delta]) cylinder(d1=D1, d2=Bohrung, h=7);
  54. }
  55. }
  56. }
  57. module halbzoll_m_gardena() {
  58. Bohrung=9;
  59. TPI=14;
  60. SW=20;
  61. G_20=[20, TPI, 12]; // Dia, Pitch, Length
  62. difference() {
  63. union() {
  64. L1=5; D=25;
  65. // Gewinde Duschschlauch
  66. translate([0,0,0]) metric_thread(diameter=G_20.x, pitch=Inch/G_20.y, length=G_20.z, leadin=2, test=Debug);
  67. translate([0,0,G_20.z]) cylinder(r=SW/sqrt(3), h=L1, $fn=6);
  68. translate([0,0,G_20.z+L1]) gardena_nippel();
  69. }
  70. translate([0,0,-Delta]) union() {
  71. cylinder(d=Bohrung, h=45);
  72. }
  73. }
  74. }
  75. module gardena_f_dusche() {
  76. // M27 x 1.5 Innen -> M20 x 14TPI Außen
  77. // Griff: D32
  78. Raendel=12;
  79. difference() {
  80. // Aussen
  81. union() {
  82. Da=[32, 28]; Dr=4;
  83. L1=11; // Aussenform zum Innengewinde
  84. cylinder(d=Da.x, h=L1);
  85. L2=12; // Konus mit Abrundung, sh. Da[von, bis]
  86. translate([0,0,L1]) hull() {
  87. cylinder(d=Da.x, h=Delta);
  88. translate([0,0,L2-Dr/2]) rotate_extrude() translate([(Da.y-Dr)/2,0]) circle(d=Dr);
  89. }
  90. // Aussengewinde für Duschschlauch
  91. translate([0,0,L1+L2]) metric_thread(diameter=20, pitch=25.4/14, length=12, leadin=2, test=Debug);
  92. // Rändelung zum Anfassen/Einschrauben
  93. for (i=[0:360/Raendel:359]) rotate([0,0,i]) translate([Da.x/2,0,2.5]) hull() {
  94. sphere(d=3);
  95. translate([0,0,6.5]) sphere(d=3);
  96. }
  97. *for (i=[0:360/90:359]) rotate([0,0,i]) translate([Da.x/2,0,1]) cylinder(d=1, h=9, $fn=4);
  98. }
  99. // Innen
  100. translate([0,0,-Delta]) union() {
  101. L1=10.5; // Innengewinde plus 0.2mm Toleranz+Spiel
  102. translate([0,0,0]) metric_thread(diameter=27.5, pitch=1.5, length=L1, leadin=2, internal=true, test=Debug);
  103. L2=9; // Konus zur Verjüngung wie aussen
  104. translate([0,0,L1]) cylinder(d1=27, d2=22, h=L2);
  105. // Zentrale "Bohrung" = Innenzwölfkant SW8, passt durch Gardenabuchse durch.
  106. for (i=[0,30]) rotate([0,0,i]) cylinder(r=8.05/sqrt(3), h=45, $fn=6);
  107. *cylinder(d=9, h=45);
  108. }
  109. // Belüftung für Harzdruck, ein Kanal pro Rändel
  110. for (i=[0:360/Raendel:359]) rotate([0,0,i]) rotate([0,90,0]) cylinder(d=1.5, h=20); //scale([1.5,1.5,1])
  111. }
  112. }
  113. intersection() {
  114. //dusche_spritze();
  115. //gardena_f_dusche();
  116. //halbzoll_f_gardena();
  117. halbzoll_m_gardena();
  118. translate([0,(Schnitt)?50:0,0]) cube(100, center=true);
  119. }