// Gipsplaat plug // plug(aantal spiralen,lengte in mm, twistfactor); plug(1,20,5); //schacht(1); module kruiskop(){ scale([1,1,1.75]) intersection(){ union(){ rotate([45,0,0])cube([1.5,6,6],center=true); rotate([0,45,0])cube([6,1.5,6],center=true); } cube([7.5,7.5,7.5],center=true); } } module plug(n,hg,t){ k=1; d=k+2.0; difference(){ union(){ intersection() { difference(){ translate([0,0,k])linear_extrude(height=hg,twist=-(hg/t)*360)schacht(n); linear_extrude(height=hg)rotate([0,0,45])difference(){ // kruis circle(d=4.5); for(i=[0:90:360]) rotate(i)translate([4/2,0])scale([1,1])rotate(45)square(1,center=true); } translate([0,0,hg-4])cylinder(d=4,h=10,$fn=20); } cylinder(r1=hg,r2=0,h=hg+d,$fn=24); // punt } kop(k); } } } module schacht(n=1){ ll=4.0; nn=2.25; difference(){ union(){ circle(d=6); for(i=[0:360/n:360]) rotate(i)difference(){ circle(r=ll,$fn=30); union(){ translate([nn,0])square(100); translate([-100-nn,0])square(100); translate([-100-nn,-200])square(200); } } } } } module kop(k){ $fn=40; difference(){ union(){ cylinder(d=14,h=k); translate([0,0,k])cylinder(d1=8,d2=6,h=1.5); translate([0,0,k])cylinder(d1=10,d2=6,h=0.75); } translate([0,0,-2])kruiskop(); } }