Wendeltreppe mit glatter Unterseite (Software)
Das Wendeltreppenprogramm hat nun noch eine kleine Erweiterung bekommen. Die Unterseite der Treppe wird jetzt als Ausformungskörper an den Stufenrückseiten entlanggeführt. Dadurch ergibt sich eine sehr schöne glatte Treppenunterseite.
Die neue Version des Pythonprogramms verzichtet darauf, die Stufen der Wendeltreppe als eigenen Block zu definieren. Das sorgte für die Unbequemlichkeit, das Script nicht erneut in derselben Zeichnungsdatei laufen lassen zu können.
Beim Konstruieren von Wendeltreppen mit mehreren Windungen kam es beim Testen des Programms gelegentlich vor, dass der Ausformen-Befehl ein paar Stufen nicht mitbekam und das CAD-Programm eine originelle Betonschleife konstruierte. In diesem Fall hilft es, mit der Maus die Ansicht so zu drehen und zu zoomen, dass alle Stufen gut erkennbar sind und sich nicht gegenseitig verdecken, die missratene Wendeltreppe zu löschen und die Ausführung des Scriptes mittels SCRIPT zu wiederholen.
#!/usr/bin/env python3 # benötigt mindestens Python 3.6 from math import pi, degrees, radians, sin, cos print(""" Dieses Programm erzeugt eine AutoCAD/BricsCAD-Scriptdatei für eine Wendeltreppe. """) def fi(s, vorgabe=None): "float input" while True: print(f"{s}{f' ({vorgabe})' if vorgabe else ''}: ",end="") inp = input().replace(",",".") if not inp: inp = vorgabe try: return float(inp) except: print("Fehler: Eingabe wurde nicht als Zahl erkannt.") print("Der Außendurchmesser sollte nicht kleiner als 120 cm sein.") da = fi("Außendurchmesser der Treppe", 250) du = da - 60 ul = pi * du print(f"\nDer Durchmesser der Lauflinie beträgt {du} cm.") print(f"Ihr Umfang beträgt {ul:.1f} cm.") print("\nDer Innendurchmesser muss größer als null sein.") di = fi("Innendurchmesser der Treppe", 50) ht = fi("\nHöhe der Treppe", 260) n = round(ht/17) hs = ht/n print(f"\nDie Treppe erhält {n} Stufen.") print(f"Die Stufenhöhe beträgt {hs:.1f} cm.") # rechnerischer Auftritt aus Schrittmaßregel ra = 63 - 2 * hs # rechnerischer Winkel der Treppe rw = 360 * n * ra / ul # gerundet auf 15° rwg = int(round(rw/15)*15) print("\nLinks herum ansteigende Treppen besitzen einen positiven Drehwinkel," "\nrechts herum ansteigende Treppen einen negativen.") wt = fi("Gesamtdrehwinkel der Treppe",rwg) # Winkel einer Stufe ws = wt/n # Koordinatendrehung def rot(x, y, grad): w = radians(grad) return x * cos(-w) - y * sin(w), x * sin(w) + y * cos(-w) with open("WENDELTREPPE.SCR","w") as scr: # Koordinateneingabe geht vor Objektfang scr.write("OSnapCoord 1\n") # Einheit Zentimeter scr.write("_InsUnits 5\n") # Die Unterseite der Wendeltreppe wird als Ausformungskörper entlang # der Rückseiten der (späteren) Stufenprofile angelegt. # In der Liste Lp merken wir uns einen Punkt pro Querschnitt, den # wir beim Ausformen anklicken können. Lp = [] # Für alle Stufen ab der zweiten: for i in range(1,n+1): # Hinterseite der Stufe xi,yi = rot(di/2, 0, i*ws) xa,ya = rot(da/2, 0, i*ws) p0 = f"{xi},{yi},{(i-1)*hs}" p1 = f"{xa},{ya},{(i-1)*hs}" p2 = f"{xa},{ya},{i*hs}" p3 = f"{xi},{yi},{i*hs}" scr.write(f"3DPoly {p0} {p1} {p2} {p3} s\n") Lp.append(p1) # Ausformen scr.write(f"_Loft {' '.join(Lp)}\n\n\n") # Nun werden die einzelnen Stufen auf die „Rampe“ gesetzt. # Für alle Stufen: for i in range(n): # Vorderseite der Stufe xi,yi = rot(di/2, 0, i*ws) xa,ya = rot(da/2, 0, i*ws) p0 = f"{xi},{yi},{i*hs}" p1 = f"{xa},{ya},{i*hs}" p2 = f"{xa},{ya},{(i+1)*hs}" p3 = f"{xi},{yi},{(i+1)*hs}" scr.write(f"3DPoly {p0} {p1} {p2} {p3} s\n") # Rotieren scr.write(f"Rotation l 0,0,0 0,0,1 {ws}\n") # Anzeige anpassen scr.write("-APunkt -1,-1,1\n") scr.write(f"Zoom Fenster {-da/2},{-da/2},0 {da/2},{da/2},{ht}\n") print(""" Fertig. Starten Sie die erzeugte Scriptdatei WENDELTREPPE.SCR im CAD-Programm in einer leeren Zeichnung (Einheit Zentimeter) mit dem Befehl SCRIPT! """) input("[Enter]")
--
Dipl.-Ing. Martin Vogel
Leiter des Bauforums
Bücher:
CAD mit BricsCAD
Bauinformatik mit Python
gesamter Thread:
- Python-Programm für Wendeltreppen in AutoCAD und BricsCAD -
Martin Vogel,
21.06.2018, 16:09
- Wendeltreppe mit glatter Unterseite -
Martin Vogel,
21.06.2018, 19:38
- Wendeltreppenprogramm für glatte Unterseite und beidseitigen Handlauf - Martin Vogel, 22.06.2018, 13:47
- Wendeltreppe mit glatter Unterseite -
Martin Vogel,
21.06.2018, 19:38