dSchraube = 8; Schluesselweite = 13; Kopfhoehe = 8; h = 30; dUnten = 17; dOben = 29.5; $fn = 300; rKante = 10; Schraubenkopfdiagonale = Schluesselweite / cos(30); difference() { // cylinder(h = h, r1 = dUnten/2, r2 = dOben/2); rotate_extrude() { polygon([ [0, 0], for (hh = [0: 0.01: 1]) [dUnten/2 + (1-cos(hh*180))/2*(dOben-dUnten)/2, hh * (h-rKante)], for (alpha = [0: 90]) [dOben/2 + (cos(alpha)-1)*rKante, h + (sin(alpha)-1)*rKante], [0, h] ]); }; translate([0,0,-1]) cylinder(h = h+2, r = dSchraube/2); translate([0,0,h - Kopfhoehe]) linear_extrude(Kopfhoehe+1) polygon( [ for (a = [0:60:300]) [Schraubenkopfdiagonale/2*cos(a),Schraubenkopfdiagonale/2*sin(a)] ] ); }