summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Treppe.scad52
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