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); } }