import rhinoscriptsyntax as rs import random as ran allobjs = rs.AllObjects() rs.DeleteObjects(allobjs) def make_box(insertion = [0,0,0],xsize = 10,ysize = 10,zsize = 10): corners = [(0,0,0),(xsize,0,0),(xsize,ysize,0),(0,ysize,0),(0,0,zsize),(xsize,0,zsize),(xsize,ysize,zsize),(0,ysize,zsize)] mybox = rs.AddBox(corners) rs.MoveObject(mybox,(-xsize/2,-ysize/2,0)) rs.MoveObject(mybox, insertion) return(mybox) """ steps = 14 for i in range(steps) : make_box([i*0.3,0,i*0.18],0.6,1.2,0.18) """ def make_stair(start, th, tt, steps, thick, s_width): pointlist= [start] for i in range(steps) : pointlist.append([pointlist[-1][0],pointlist[-1][1],pointlist[-1][2]+th]) pointlist.append([pointlist[-1][0]+tt,pointlist[-1][1],pointlist[-1][2]]) pointlist.append([pointlist[-1][0],pointlist[-1][1],pointlist[-1][2]-thick]) pointlist.append([pointlist[0][0],pointlist[0][1],pointlist[0][2]-thick]) pointlist.append([pointlist[0][0],pointlist[0][1],pointlist[0][2]]) s_outline=rs.AddPolyline(pointlist) path = rs.AddLine(start, [start[0],start[1]+s_width,start[2]]) hull = rs.ExtrudeCurve(s_outline, path) rs.CapPlanarHoles(hull) return(hull) steps = 26 th=.18 tt=.3 thick=0.2 s_width=1.2 make_stair([0,0,0], th, tt,steps, thick, s_width) make_stair([steps*tt, s_width, steps*th],th,-tt,steps,thick,s_width)