import rhinoscriptsyntax as rs import random as ran import fantastic_stairs_lib as fs reload(fs) # Alle Objekte loschen rs.DeleteObjects(rs.AllObjects()) # Spiralparameter: Hohe=20, Minimaler Radius=5, Maximaler Radius=15 curve = fs.make_random_spiral(20, 5, 30) len_c = rs.CurveLength(curve) # Parameter An = 4 # Abstand vom Start P = 16 # Abstand zwischen Stutzen mods = (len_c - An) / (P * fs.tt + fs.pod_l + fs.tt) steps = int(mods * P) + 1 # Treppe erstellen fs.make_curved_podeststair(curve, steps=steps, pod_l=fs.pod_l, DC=steps + 1, P=P, An=An) # Gelander und Stutzen hinzufugen i = 1 len_fromstart = An + P * fs.tt + fs.pod_l / 4 while len_fromstart <= len_c: point = rs.CurveArcLengthPoint(curve, len_fromstart) m_l = rs.AddLine(point, [point[0], point[1], i * P * fs.th - fs.thick]) rs.AddPipe(m_l, 0, 0.2) # Gelander (box1, line1) = fs.make_box_wline( [point[0], point[1], i * P * fs.th - fs.thick], fs.pod_l, 8.2, fs.thick ) param = rs.CurveClosestPoint(curve, point) normal = rs.CurveTangent(curve, param) angle = rs.Angle([0, 0, 0], normal)[0] rs.RotateObjects([box1, line1], [point[0], point[1], i * P * fs.th - fs.thick], angle, [0, 0, 1]) i += 1 len_fromstart += P * fs.tt + fs.pod_l + fs.tt