diff options
-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 |