import rhinoscriptsyntax as rs import random as ran allobjects=rs.AllObjects() rs.DeleteObjects(allobjects) #variablen bsize=10 #groesse der boxen dist=2 #distanz der boxen offs=bsize+dist #offset der boxen num=20 #nummer der boxen in richtung #box machen (soft coding mit einer variable) #man muss nicht in die naechste zeile gehen, aber man sieht das dann besser 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) #loop als eine art array befehl (i mal der abstand) #loop in loop: beide richtungen for h in range(num): for i in range(num): for j in range(num): if not(i+h+j+7)%5 and ((i+j*2)%4 and (i*2-j)%3): myran=ran.randint(0,15) if myran<12: box=rs.AddBox(corners) rs.MoveObject(box, (i*offs,j*offs,h*offs)) rs.ObjectColor(box,(i*(180/num),j*(150/num),h*(150/num))) rs.EnableRedraw(True) #redraw bedeutet dass der wuerfel auf einmal aufgebaut wird und nicht nach und nach #% bedeutet eine bedingung: es wird nur wenn es durch 2 teilbar ist #er gibt den rest einer teilung wieder