import rhinoscriptsyntax as rs import random as ran allobjs= rs.AllObjects() rs.DeleteObjects(allobjs) bsize = 10 #side length of box dist = 1 #distance between boxes offs = bsize + dist #offset of boxes num = 15 #number of boxes in one row #create a box corners = [(0,0,0), (bsize,0,0), (bsize,bsize,0), (0,bsize,0), (0,0,bsize), (bsize,0,bsize), (bsize,bsize,bsize), (0,bsize,bsize)] """ my_c = rs.AddLine((0,0,0), (200,300,0)) my_c = rs.AddCurve([[0,0,0],[100,200,0],[300,-200,0],[500,200,0],[700,-400,0],[900,400,0]],3) my_c = rs.AddSpiral([0,0,0],[0,0,1000],15,10,100,50) my_pts = rs.DivideCurve(my_c, 70, False, True) for p in my_pts: my_box = rs.AddBox(corners) rs.MoveObject(my_box,p) """ plane = rs.WorldXYPlane() my_rect = rs.AddRectangle(plane, 200, 100) for i in range(200): xran = ran.randint(-100,300) yran = ran.randint(-200,300) zran = 0 ranscale = ran.uniform(1,6) if not(rs.PointInPlanarClosedCurve([xran,yran,zran],my_rect,plane,0)): my_box = rs.AddBox(corners) rs.MoveObject(my_box,[xran,yran,zran]) rs.ScaleObject(my_box,[xran,yran,zran], [1,1,ranscale])