Zyklonstutzen.scad 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. $fn=120;
  2. include <threads.scad>;
  3. Teil=1; // [1:Tonne, 2:Aufsatz, 3:Alles, 4:Druck, 5:Rahmen]
  4. Debug=false;
  5. D_Innen=75;
  6. Wand=4;
  7. module Flansch(diameter) {
  8. difference() {
  9. cylinder(d=D_Innen+2*32, h=5);
  10. for(i=[0:360/6:359]) rotate([0,0,i]) translate([D_Innen/2+20 ,0,0]) cylinder(d=6.5, h=20, center=true);
  11. cylinder(d=diameter, h=15, center=true);
  12. }
  13. }
  14. module Gewinde(Innen=false) {
  15. LEADIN=(Innen) ? 1 : 1;
  16. DIFF=(Innen) ? 1 : 0;
  17. metric_thread(diameter=DIFF+84, pitch=6, length=35, leadin=LEADIN
  18. , internal=Innen, thread_size=4, groove=Innen, angle=45);
  19. }
  20. module Tonne() {
  21. // Tonne: Innengewinde
  22. difference() {
  23. union() {
  24. Flansch(D_Innen);
  25. hull() {
  26. D=D_Innen+15;
  27. R=3;
  28. cylinder(d=D, h=0.1);
  29. translate([0,0,35-R]) rotate_extrude() translate([D/2-R,0]) circle(r=R);
  30. }
  31. }
  32. Gewinde(Innen=true);
  33. }
  34. }
  35. module Aufsatz() {
  36. // Abscheider: Außengewinde
  37. difference() {
  38. union() {
  39. cylinder(d=115, h=5);
  40. Gewinde(Innen=false);
  41. }
  42. cylinder(d=D_Innen, h=40);
  43. for(i=[0:360/8:359]) rotate([0,0,i]) translate([50,0,0]) cylinder(d=6.5, h=20, center=true);
  44. }
  45. }
  46. module Rahmen() {
  47. rotate([180,0,0]) difference() {
  48. union() {
  49. cylinder(d=115, h=5);
  50. }
  51. cylinder(d=85, h=40);
  52. for(i=[0:360/4:359]) rotate([0,0,i]) translate([50,0,0]) {
  53. cylinder(d=5.5, h=20, center=true);
  54. cylinder(d1=11.5, d2=0, h=11.5/2, center=false);
  55. }
  56. }
  57. }
  58. render()
  59. intersection() {
  60. if (Teil==1) Tonne();
  61. if (Teil==2) Aufsatz();
  62. if (Teil==5) Rahmen();
  63. if (Teil==3) {
  64. color("red") translate([0,0,-15]) Flansch(D_Innen+16);
  65. color("green") translate([0,0,0]) rotate([180,0,0]) Tonne();
  66. color("blue") translate([0,0,18]) rotate([180,0,0]) Aufsatz();
  67. }
  68. if (Teil==4) {
  69. color("red") translate([0,90,0]) Flansch(D_Innen+16); // Tonne IG Stutzen + 1mm
  70. color("green") translate([-110,0,0]) Tonne();
  71. color("blue") translate([100,0,0]) Aufsatz();
  72. }
  73. if (Debug) translate([0,150,0]) cube(300, center=true);
  74. }