summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2023-04-06 21:18:10 +0200
committerErich Eckner <git@eckner.net>2023-04-06 21:18:10 +0200
commit090f6cff68ce4f2eb1efb734989f2d2202fe3640 (patch)
tree3248eaa36190a91ce4c798325fb04a2ef6e7b66a
downloadSchluesselanhaenger-090f6cff68ce4f2eb1efb734989f2d2202fe3640.tar.xz
Leerling
-rw-r--r--Schluesselanhaenger.scad56
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);
+ }