use <threads.scad>

// Schlauch: 20.3 22.8 auf 30 länge

$fn=120;
Delta = 0.01;
Inch = 25.4;
Gewinde=10.5;
Bohrung=10;
Kugel=25;

module austritt() {
	cylinder(d1=2, d2=2.5, h=15);
}

intersection() {
	difference() {
		union() {
			// Duschkopf-Gewinde an Schlauch
			!metric_thread (diameter=20, pitch=Inch/14, length=Gewinde, leadin=2, test=false);
			// Außenform Oval
			translate([0,0,Gewinde+25/2-1]) scale([1,1,1.5]) difference() {
				sphere(d=Kugel);
				for(i=[0:360/5:359]) {
					rotate([0,0,i])
						translate([Kugel/2,0,0]) rotate([45,0,-20]) scale([1,0.05,1.2]) sphere(d=Kugel);
				}
			}
		}
		// Innenbohrung
		hull() {
			translate([0,0,-Delta]) cylinder(d=Bohrung, h=Gewinde);
			translate([0,0,Gewinde+Kugel*2/3]) scale([1.2,1.2,1.5]) sphere(d=Bohrung);
		}
	}
	translate([0,0,0]) cube(100, center=true);
}
