#python 2 import rhinoscriptsyntax as rs import random as ran # Delete all objects and start from scratch allobjs = rs.AllObjects() rs.DeleteObjects(allobjs) # Parameters bsize, dist, num = 10, 1, 30 # box size, distance between the boxes and number per row offs = bsize + dist # offset between the boxes 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)] #---------------------------------------------------------------------------------------------- #2D version # #for i in range(num): # for j in range(num): # if ((i+j)%5) and ((i-j)%4) and ((i-j)%5) and ((i+j)%4): # box = rs.AddBox(corners) # rs.MoveObjects(box, (i*offs, j*offs, 0)) # rs.ObjectColor(box, (i * 255 // num, j * 255 // num, 0)) # #rs.EnableRedraw(True) #---------------------------------------------------------------------------------------------- """ rs.EnableRedraw(False) even_num = range(0,num**3,2) # fibonacci sequence example fibonacci = [0] a, b = 0, 1 while b < (num**3): fibonacci.append(b) a, b = b, a+b print fibonacci for i in range(num): for j in range(num): for k in range(num): if (i in fibonacci) or (j in fibonacci) or (k in fibonacci): box = rs.AddBox(corners) rs.MoveObjects(box, (i*offs, j*offs, k*offs)) rs.ObjectColor (box, ((i*255/num),(j*200/num),(k*50/num))) #rs.ObjectColor(box, (i*(255/num), j*(255/num), k*(255/num))) rs.EnableRedraw(True) """ #---------------------------------------------------------------------------------------------- #version 1 """ rs.EnableRedraw(False) for i in range(num): for j in range(num): for k in range(num): rand_num = ran.randint(0,9) if (rand_num > 2): if ((i + j + k)% 3) and ((i + j - k) %2) and ((i - j + k) %3)and ((i - j - k) %3): box = rs.AddBox(corners) rs.MoveObjects(box, (i*offs, j*offs, k*offs)) rs.ObjectColor(box,(i*(120/num), j*(200/num), k*(112/num))) rs.EnableRedraw(True) """ #---------------------------------------------------------------------------------------------- """ #version 2 rs.EnableRedraw(False) for i in range(num): for j in range(num): for k in range(num): rand_num = ran.randint(0,9) if (rand_num > 2 ): if ((i + j + k) %4) and ((i - j + k) %3) and ((i + j - k) %4): box = rs.AddBox(corners) rs.MoveObject(box, (i*offs, j*offs, k*offs)) rs.ObjectColor(box,(i*(153/num), j*(255/num), k*(153/num))) else: box = rs.AddBox(corners) rs.MoveObject(box, (i*offs, j*offs, k*offs)) rs.ObjectColor(box,(255,0,127)) rs.EnableRedraw(True) """