#DM2 - HUE3 #Raphael Wieser - 01613917 #Rhino Setup import rhinoscriptsyntax as rs import random as ran #alles loeschen allobjs = rs.AllObjects () rs.DeleteObjects (allobjs) rs.EnableRedraw (False) #Bauteildimensionen definieren #def Geschoss nges = 6 #Anzahl Geschosse n h = 3.5 #Geschosshoehe hdecke = 0.25 #Hoehe Geschossdecken #def Stuetzendimensionen xraster = 8 #Stuetzenraster in x yraster = 4 #Stuetzenraster in y spw = 8 #Spannweite Stuetzenraster ueberstand = spw/10 #seitlicher Uberstand Decke uber Stuetzenraster stu_d = 0.3 #Stuetzen staerke #def Punktfundament hfund = 0.6 #Hoehe Punktfundament sfund = 1.2 #Kantenlaenge Punktfundament #Decke berechnen bdecke = spw*(xraster-1)+ 2*ueberstand #Breite Decken ldecke = spw*(yraster-1) + sfund #decken laenge #Raster berechnen mitte = [spw*(xraster-1)/2, spw*(yraster-1)/2, hfund] #def Fkt Decke def make_decke (insertion= [0,0,0], xsize=10,ysize=10,zsize=10): corners = [[0,0,0], [xsize,0,0], [xsize,ysize,0], [0,ysize,0], [0,0,zsize], [xsize,0,zsize], [xsize,ysize,zsize], [0,ysize,zsize]] box=rs.AddBox (corners) rs.MoveObject (box, (-xsize/2, -ysize/2,0)) rs.MoveObject (box, insertion) return (box) #def Fkt Punktfundamente def make_fdt (spw=5.0, sfund = 1, hfund = 0.6, xraster=2, yraster=3): fns = [] for i in range (xraster): for j in range (yraster): fns.append(make_decke ([i*spw,j*spw,0 ], sfund, sfund, hfund)) return (fns) #def Fkt Stueze def make_stz (spw=5.0, level = 0.7, stu_d = 0.2, h = 3.0, xraster=2, yraster=3): cls = [] for i in range (xraster): for j in range (yraster): cls.append(make_decke ([i*spw,j*spw,level], stu_d, stu_d, h)) return (cls) #Listen definieren fdt = [] stz = [] deck = [] fas = [] for i in range (nges): mitte [2] = hfund + i*(hdecke + h) level = hfund + hdecke + (i-1)*(h+hdecke) if i == 0: make_fdt (spw, xraster=xraster, yraster=yraster) else: stz.extend (make_stz (spw, level, stu_d, h, xraster, yraster)) deck.append (make_decke (mitte, bdecke, ldecke, hdecke)) #auf layer zuweisen rs.AddLayer ("fundament") rs.LayerColor ("fundament", (2, 2, 2)) rs.ObjectLayer (fdt, "fundament") rs.AddLayer ("stuetze") rs.LayerColor ("stuetze", (10, 10, 10)) rs.ObjectLayer (stz, "stuetze") rs.AddLayer ("decke") rs.LayerColor ("decke", (92, 87, 81)) rs.ObjectLayer (deck, "decke")