$fn=120; include ; Teil=1; // [1:Tonne, 2:Aufsatz, 3:Alles, 4:Druck, 5:Rahmen] Debug=false; D_Innen=75; Wand=4; module Flansch(diameter) { difference() { cylinder(d=D_Innen+2*32, h=5); 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); cylinder(d=diameter, h=15, center=true); } } module Gewinde(Innen=false) { LEADIN=(Innen) ? 1 : 1; DIFF=(Innen) ? 1 : 0; metric_thread(diameter=DIFF+84, pitch=6, length=35, leadin=LEADIN , internal=Innen, thread_size=4, groove=Innen, angle=45); } module Tonne() { // Tonne: Innengewinde difference() { union() { Flansch(D_Innen); hull() { D=D_Innen+15; R=3; cylinder(d=D, h=0.1); translate([0,0,35-R]) rotate_extrude() translate([D/2-R,0]) circle(r=R); } } Gewinde(Innen=true); } } module Aufsatz() { // Abscheider: Außengewinde difference() { union() { cylinder(d=115, h=5); Gewinde(Innen=false); } cylinder(d=D_Innen, h=40); for(i=[0:360/8:359]) rotate([0,0,i]) translate([50,0,0]) cylinder(d=6.5, h=20, center=true); } } module Rahmen() { rotate([180,0,0]) difference() { union() { cylinder(d=115, h=5); } cylinder(d=85, h=40); for(i=[0:360/4:359]) rotate([0,0,i]) translate([50,0,0]) { cylinder(d=5.5, h=20, center=true); cylinder(d1=11.5, d2=0, h=11.5/2, center=false); } } } render() intersection() { if (Teil==1) Tonne(); if (Teil==2) Aufsatz(); if (Teil==5) Rahmen(); if (Teil==3) { color("red") translate([0,0,-15]) Flansch(D_Innen+16); color("green") translate([0,0,0]) rotate([180,0,0]) Tonne(); color("blue") translate([0,0,18]) rotate([180,0,0]) Aufsatz(); } if (Teil==4) { color("red") translate([0,90,0]) Flansch(D_Innen+16); // Tonne IG Stutzen + 1mm color("green") translate([-110,0,0]) Tonne(); color("blue") translate([100,0,0]) Aufsatz(); } if (Debug) translate([0,150,0]) cube(300, center=true); }