diff options
author | Erich Eckner <git@eckner.net> | 2023-04-06 21:18:10 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2023-04-06 21:18:10 +0200 |
commit | 090f6cff68ce4f2eb1efb734989f2d2202fe3640 (patch) | |
tree | 3248eaa36190a91ce4c798325fb04a2ef6e7b66a | |
download | Schluesselanhaenger-090f6cff68ce4f2eb1efb734989f2d2202fe3640.tar.xz |
Leerling
-rw-r--r-- | Schluesselanhaenger.scad | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Schluesselanhaenger.scad b/Schluesselanhaenger.scad new file mode 100644 index 0000000..c46b5a7 --- /dev/null +++ b/Schluesselanhaenger.scad @@ -0,0 +1,56 @@ +d = 2; +h = 10; +b = 30; +alpha = 30; +r = 2.5; +rBohrung = 1; + +rotate_extrude(angle = 180, $fn = 100) + translate([h/2,0,0]) + circle(r = d/2, $fn = 100); +for (i=[-1:2:1]) { + translate([i*h/2,0,0]) + rotate([90,0,0]) + linear_extrude(b) + circle(r = d/2, $fn = 100); + rotate([0,90*(i+1),0]) { + translate([0,-b,0]) + rotate_extrude(angle = -alpha, $fn = 100) + translate([h/2,0,0]) + circle(r = d/2, $fn = 100); + translate([-h/2*cos(alpha),-b-h/2*sin(alpha),0]) + rotate([90,0,alpha]) + linear_extrude((h/2-r)/tan(alpha)) + circle(r = d/2, $fn = 100); + } +} +translate([0,-b-h/2*sin(alpha)+r*sin(180-alpha)-(h/2-r)/tan(alpha)*cos(alpha),0]) { + rotate([0,0,-180+alpha]) + rotate_extrude(angle = 180 - 2*alpha, $fn = 100) + translate([r,0,0]) + circle(r = d/2, $fn = 100); + rotate_extrude(angle = 360, $fn = 100) + translate([rBohrung + d/2,0,0]) + circle(r = d/2, $fn = 100); +} +translate([0,0,-d/2]) + linear_extrude(d) + difference() { + union() { + translate([-h/2,-b]) + square([h,b]); + for (i=[0:1]) + translate([0,-b*i,0]) + circle(r = h/2, $fn = 100); + translate([0,-b-h/2*sin(alpha)+r*sin(180-alpha)-(h/2-r)/tan(alpha)*cos(alpha)]) + circle(r = r, $fn = 100); + polygon([ + [-h/2*cos(alpha),-b-h/2*sin(alpha)], + [-r*cos(alpha),-b-h/2*sin(alpha)-(h/2-r)/tan(alpha)*cos(alpha)], + [r*cos(alpha),-b-h/2*sin(alpha)-(h/2-r)/tan(alpha)*cos(alpha)], + [h/2*cos(alpha),-b-h/2*sin(alpha)], + ]); + } + translate([0,-b-h/2*sin(alpha)+r*sin(180-alpha)-(h/2-r)/tan(alpha)*cos(alpha)]) + circle(r = rBohrung + d/2, $fn = 100); + } |