import rhinoscriptsyntax as rs import scriptcontext as sc import random as ran allobjs = rs.AllObjects() rs.DeleteObjects(allobjs) besize = 20 # sidelength of box distance = 1 # betwween boxes offset = besize + distance num = 20 # create a box corners = [(0,0,0), (besize,0,0), (besize,besize,0), (0,besize,0), (0,0,besize), (besize,0,besize), (besize,besize,besize), (0,besize,besize)] #rs.AddBox(corners) #box = rs.AddBox(corners) #rs.MoveObjects(box, (10,0,0)) #rs.EnableRedraw(enable=False) # man kann ihm beim zeichen nicht mehr zuschauen, # dafür geht es auch schneller #for z in range(num): # for y in range(num): # for x in range(num): # box = rs.AddBox(corners) # rs.MoveObjects(box, (x*offset, y*offset, z*offset)) #rs.EnableRedraw(enable=True) #box = rs.AddBox(corners) #rs.MoveObjects(box, (2*10,0,0)) #box = rs.AddBox(corners) #rs.MoveObjects(box, (3*10,0,0)) #box = rs.AddBox(corners) #rs.MoveObjects(box, (4*10,0,0)) #box = rs.AddBox(corners) #rs.MoveObjects(box, (5*10,0,0)) # % nur wenn ein Wert genau durch 2 teilbar ist! #for y in range(num): # for x in range(num): # if ((x+y)%3) and ((x-y)%3): # box = rs.AddBox(corners) # rs.MoveObjects(box, (x*offset, y*offset, 0)) rs.EnableRedraw(enable=False) for z in range(num): for y in range(num): for x in range(num): myran = ran.randint(0,12) if (myran > 1): if ((x+y-z)%5) and ((x-y+z)%4): box = rs.AddBox(corners) rs.MoveObjects(box, (x*offset, y*offset, z*offset)) rs.ObjectColor(box, (x*255/num, y*255/num,z*255/num)) #else: #box = rs.AddBox(corners) #rs.MoveObjects(box, (x*offset, y*offset, z*offset)) #rs.ObjectColor(box, (255,0,0)) rs.EnableRedraw(enable=True)