import rhinoscriptsyntax as rs import random as ran # delete everything and start from scratch allobjs = rs.AllObjects() rs.DeleteObjects(allobjs) # attributes bsize = 10 # side length of box dist = 1 # distance between boxes offs = bsize + dist # offset of boxes num = 10 # number of boxes var_1 = 4 # variable 1 var_2 = 3 # variable 2 var_3 = 5 # variable 3 var_4 = 2 # variable 4 # 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)] rs.EnableRedraw(False) # random for i in range(num): for j in range(num): for k in range(num): my_ran = ran.randint(0,9) if (my_ran >1): if ((i+j+k)%(var_1)) and ((i-j-k)%(var_2))and ((i+j-k)%(var_3))and ((i-j+k)%(var_4)): box = rs.AddBox(corners) rs.MoveObject(box, (i*offs,j*offs,k*offs)) rs.ObjectColor(box, (i*(255/num),j*(255/num),k*(255/num))) else: box = rs.AddBox(corners) rs.MoveObject(box, (i*offs,j*offs,k*offs)) rs.ObjectColor(box, (255,0,0)) rs.EnableRedraw(True)