diff options
author | Erich Eckner <git@eckner.net> | 2022-06-19 20:30:45 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2022-06-19 20:30:45 +0200 |
commit | cab4bbf41c775e1bd3f40f9242059e3e8a5d8d20 (patch) | |
tree | 02c7df01f784378689237174a51431a34ca2a91b | |
parent | 87e4afb43980a7be1358764ac1e17809515fc0d8 (diff) | |
download | Treppe-cab4bbf41c775e1bd3f40f9242059e3e8a5d8d20.tar.xz |
-rw-r--r-- | Treppe.scad | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Treppe.scad b/Treppe.scad index e69de29..6278b92 100644 --- a/Treppe.scad +++ b/Treppe.scad @@ -0,0 +1,52 @@ +Innenradius = 5; +Radius = 70; +Wanddicke = 5; +Hoehe = 230; +Stufenanzahl = 14; +Stufendicke = 5; +Startwinkel = 15; +Gesamtwinkel = 325; +Stufenwinkel = Gesamtwinkel / Stufenanzahl; +Untertritt = 5; + +linear_extrude(height = Hoehe){ +polygon( + points = [ + [-Radius, -Radius], + [-Radius, Radius], + [Radius * sin(22.5), Radius], + [Radius, Radius * sin(22.5)], + [Radius, -Radius], + [Radius + Wanddicke, -Radius], + [Radius + Wanddicke, (Radius + Wanddicke) * sin(22.5)], + [(Radius + Wanddicke) * sin(22.5), Radius + Wanddicke], + [-Radius - Wanddicke, Radius + Wanddicke], + [-Radius - Wanddicke, -Radius] + ] +); +} +cylinder(h = Hoehe, r = Innenradius); + +for(Stufennummer = [1:Stufenanzahl]) + translate([0,0,Stufennummer*Hoehe/Stufenanzahl - Stufendicke]) + linear_extrude(height = Stufendicke){ + difference(){ + intersection(){ + rotate([0, 0, Stufennummer*Gesamtwinkel/Stufenanzahl + Startwinkel]) + polygon(points = [ + [0,0], + [2*Radius, -2*Radius * tan(Stufenwinkel)], + [2*Radius, Untertritt], + [0,Untertritt] + ]); + polygon(points = [ + [-Radius, -Radius], + [-Radius, Radius], + [Radius * sin(22.5), Radius], + [Radius, Radius * sin(22.5)], + [Radius, -Radius] + ]); + }; + circle(r=Innenradius); + } + }
\ No newline at end of file |