import rhinoscriptsyntax as rs import random as ran import fantastic_stairs_lib as fs # reload(fs) # delete everything and start from scratch rs.DeleteObjects(rs.AllObjects()) curve =rs.AddSpiral([0,0,0],[0,0,1], 0, turns= 5, radius0= 20, radius1= 2) curve2 =rs.AddSpiral([0,0,0],[0,0,1], 0, turns= 10, radius0= 50, radius1= 30) len_c= rs.CurveLength(curve) An=0 P=10 mods = (len_c-An) / (P*fs.tt+fs.pod_l + fs.tt) steps = int(mods*P)+1 treppe1 = fs.make_curved_podeststair(curve, steps=steps, pod_l=fs.pod_l, DC=steps+1, P=P, An=An) treppe2 = fs.make_curved_podeststair(curve2, steps=steps*2, pod_l=fs.pod_l, DC=steps+1, P=P, An=An) rs.MirrorObject(treppe2, [0,1,0], [0,-1,0], copy=True) rs.MirrorObject(treppe2, [1,0,0], [-1,0,0], copy=True) rs.MirrorObject(treppe2, [-1,1,0], [1,-1,0], copy=True) i = 1 len_fromstart = An+P*fs.tt+fs.pod_l/2 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/2]) rs.AddPipe(m_l,0,0.2) (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 = i+1 len_fromstart += P*fs.tt+fs.pod_l + fs.tt rs.DeleteObjects([curve,curve2,line1])