import rhinoscriptsyntax as rs import random as ran # Delete everything and start from scratch allobjs = rs.AllObjects() rs.DeleteObjects(allobjs) bsize = 10 # Side length of each small box dist = 1 # Distance between small boxes offs = bsize + dist # Offset of small boxes num = 30 # Number of small boxes in each dimension of the large cube # Define the corners of the small 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) # Create a pattern that fills the entire cube but leaves tunnels (holes) open for i in range(num): for j in range(num): for k in range(num): # Create tunnel-like holes running through the cube if (i % 5 != 0) and (j % 5 != 0) and (k % 5 != 0): # Leaves holes every 5th position if ran.randint(0, 10) > 2: # Random chance to create more variation in the pattern box = rs.AddBox(corners) rs.MoveObject(box, (i * offs, j * offs, k * offs)) rs.ObjectColor(box,(i*(50/num),j*(255/num),k*(255/num))) """ for i in range (num): for j in range (num): if (i % 5 != 0) and (j % 5 != 0): if ran.randint(0, 10) > 2: box = rs.AddBox(corners) rs.MoveObject(box, (i*offs,j*offs,0)) rs.ObjectColor(box,(255,200,10)) """ rs.EnableRedraw(True)