import rhinoscriptsyntax as rs import random as ran allobjs = rs.AllObjects() rs.DeleteObjects(allobjs) rs.EnableRedraw(False) bsize = 5 # side length of box dist = 1 # distance between boxes offs = bsize + dist # offset of boxes num = 15 # number of boxes in one row 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) # Punkte auf Linie erstellen #my_pts = rs.DivideCurve(my_cst, 10, True, True) # an jedem Punkt eine Box setzten #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 = ran.randint(0,0) ranscale = ran.uniform(1,3) 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], [ranscale, ranscale, ranscale]) rs.EnableRedraw(True)