################################### ### DM2_w24 # AGruber@tugraz.at ### ### hu_06 UN_headquaters NYC ### ###################################################### ### paneling / new dimensions ### 87.5 x 22.0 meters (was lenY = 116.56 / lenX = 28.18) ################################### ###################################################### ############################## import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:/WWW/ge84lid/dm2/") ### import DM_lib as dm ### reload( dm ) ############################## rs.UnitSystem(4) # km = 5, meters = 4, cm = 3 etc rs.ShowGrid(None, 0) # grid > 0 = off rs.ShowGridAxes(None, 1) # y/y/z axen display > 0/1 = off/on rs.ViewDisplayMode(rs.CurrentView(), "rendered") rs.Command("cplane w t enter", 0) # cPlane World Top dm.PointRadius(displayModeX=0, rad=3, styl=3) dm.printDisplay(1) # nomen est omen rs.EnableRedraw(0) alleObjekte = rs.AllObjects() rs.DeleteObjects(alleObjekte) rs.Redraw() ###_________________________________________# ### basic settings for grid to fit UN_slab # ### # floors = H = dm.H = 40 # default=40 / incl roof slabs = L = dm.L = 11 # default=11 depth = D = dm.D = 4 # default= 4 / division in building_depth floorHeight = fH = dm.fH = 4.0 # default= 4.0 / 4.0*(H-1) = 156 meters # ################ # get from DM_lib as dm: UnoGridCoords = dm.UnoGridCoords # get gridCoords L*D*H = 1760 UnoPanelCoords = dm.UnoPanelCoords # get panelCoords [frontPanels, backPanels, sidePanels, upSidePanels] / default arguments s.u. ################____________________________# ################ lengthVec = lVec = rs.VectorUnitize(rs.VectorSubtract( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord(1, 0, 0) )) ## rs.AddPoint( dm.getUnoCoord(1, 0, 0) ) depthVec = dVec = rs.VectorUnitize(rs.VectorSubtract( dm.getUnoCoord(0, 1, 0), dm.getUnoCoord(0, 0, 0) )) ## rs.AddPoint( dm.getUnoCoord(0, 1, 0) ) ################ ########################################################################################### UnoPanelCoords = dm.getUNpanelCoords(anzL=10*7, anzH=39, anzD=3, stepL=1, stepH=1, stepD=1) ### = all ~windows_panels BigPanelCoords = dm.getUNpanelCoords(anzL=10*1, anzH=39, anzD=3, stepL=2, stepH=6, stepD=2) ### = all ~windows_panels UnoPanelCoords = dm.getUNpanelCoords(anzL=10*1, anzH=39, anzD=3, stepL=1, stepH=3, stepD=1) ### = standard for hu_06 ########################################################################################### ########################################################## frontPanels = UnoPanelCoords[0] ### list of coordLists ! backPanels = UnoPanelCoords[1] sidePanels = UnoPanelCoords[2] upSidePanels = UnoPanelCoords[3] allPanels = UnoPanelCoords[4] ################################# dm.newEmptyLayer("myPROJ", [25,25,112]) ### Panel_DEF def Panels_Vorne( panel, sockel = 0, divi = 4, cnt = 0): p0, p1, p2, p3 = panel #rs.ObjectColor(rs.AddCurve( [p0, p1, p2, p3], 1 ), [200,0,0]) if sockel: #vR = rs.AddLine(p0, p1) #vL = rs.AddLine(p3, p2) vU = rs.AddLine(p0, p3) vO = rs.AddLine(p1, p2) coords_U = rs.DivideCurve(vU, divi, 0) coords_O = rs.DivideCurve(vO, divi, 0) #rs.AddCurve( coords_U, 1) #rs.AddCurve( coords_O, 1) rs.DeleteObjects([vU, vO]) for i in range( divi+1 ): dir = -1 if i%2==0: dir = 1 coords_U[i] = rs.VectorAdd(coords_U[i], dVec*dir) coords_O[i] = rs.VectorAdd(coords_O[i], dVec*dir) else: dir = -1 coords_U[i] = rs.VectorAdd(coords_U[i], dVec*dir) coords_O[i] = rs.VectorAdd(coords_O[i], dVec*dir) sockel = rs.AddLine( coords_U[i], coords_O[i] ) rs.ObjectName( sockel, "sockel") else: vR = rs.AddLine(p0, p1) vL = rs.AddLine(p3, p2) coords_R = rs.DivideCurve(vR, divi, 0) coords_L = rs.DivideCurve(vL, divi, 0) #rs.AddCurve( coords_R, 1) #rs.AddCurve( coords_L, 1) rs.DeleteObjects([vR, vL]) for i in range( divi+1 ): rs.AddLine( coords_R[i], coords_L[i] ) coords = rs.DivideCurve(rs.AllObjects()[0], divi, 0) rs.DeleteObject(rs.AllObjects()[0]) #rs.AddPoints( coords ) dir = 1 if i%2==0: dir = -1 for s in range(divi+1): if s%2==0: coords[s] = rs.VectorAdd(coords[s], dVec*dir) else: coords[s] = rs.VectorAdd(coords[s], -dVec*dir) schuss = rs.AddCurve( coords, 1) rs.ObjectName( schuss, "schussfaden") vU = rs.AddLine(p0, p3) vO = rs.AddLine(p1, p2) coords_U = rs.DivideCurve(vU, divi, 0) coords_O = rs.DivideCurve(vO, divi, 0) #rs.AddCurve( coords_U, 1) #rs.AddCurve( coords_O, 1) rs.DeleteObjects([vU, vO]) for i in range( divi+1 ): rs.AddLine( coords_U[i], coords_O[i] ) coords = rs.DivideCurve(rs.AllObjects()[0], divi, 0) #coords = rs.DivideCurve(rs.AllObjects()[0], divi, 1) rs.DeleteObject(rs.AllObjects()[0]) #rs.AddPoints( coords ) dir = -1 if i%2==0: dir = 1 for k in range(divi+1): if k%2==0: coords[k] = rs.VectorAdd(coords[k], dVec*dir) else: coords[k] = rs.VectorAdd(coords[k], -dVec*dir) kett = rs.AddCurve( coords, 1) rs.ObjectName( kett, "kettfaden") ### Seiten Paneele definieren def Panels_Seiten( panel, sockel = 0, divi = 4, cnt = 0 ): p0, p1, p2, p3 = panel if sockel: pass else: vR = rs.AddLine(p0, p1) vL = rs.AddLine(p3, p2) coords_R = rs.DivideCurve(vR, divi, 0) coords_L = rs.DivideCurve(vL, divi, 0) #rs.AddCurve( coords_R, 1) #rs.AddCurve( coords_L, 1) rs.DeleteObjects([vR, vL]) for i in range( divi+1 ): rs.AddLine( coords_R[i], coords_L[i] ) coords = rs.DivideCurve(rs.AllObjects()[0], divi, 0) rs.DeleteObject(rs.AllObjects()[0]) #rs.AddPoints( coords ) dir = 1 if i%2==0: dir = -1 for s in range(divi+1): if s%2==0: coords[s] = rs.VectorAdd(coords[s], dVec*dir) else: coords[s] = rs.VectorAdd(coords[s], -dVec*dir) schuss = rs.AddCurve( coords, 1) rs.ObjectName( schuss, "schussfaden") if 1: ### Sockel = Erdgeschoss/Kettfaedenueberstand for i,panel in enumerate(frontPanels[0:]): sockelVal = 0 if i<10: sockelVal = 1 #rs.Redraw() Panels_Vorne( panel, sockel = sockelVal, cnt=i, divi=8 ) if 1: for i,panel in enumerate(backPanels): sockelVal = 0 if i<10: sockelVal = 1 #rs.Redraw() Panels_Vorne( panel, sockel=sockelVal ) if 1: for i,panel in enumerate(sidePanels): sockelVal = 0 if i<3: sockelVal = 1 #rs.Redraw() Panels_Seiten( panel, sockel = sockelVal, cnt=i, divi=8 ) if 1: for i,panel in enumerate(upSidePanels): sockelVal = 0 if i<3: sockelVal = 1 #rs.Redraw() Panels_Seiten( panel, sockel=sockelVal ) for crv in rs.ObjectsByName("sockel"): rs.RebuildCurve(crv, degree=3, point_count=20) rs.ObjectColor(crv, [139,71,93]) rs.ObjectPrintWidth(crv, width=0) for crv in rs.ObjectsByName("kett*"): rs.RebuildCurve(crv, degree=3, point_count=20) rs.ObjectColor(crv, [139,71,93]) rs.ObjectPrintWidth(crv, width=0) for crv in rs.ObjectsByName("schuss*"): rs.RebuildCurve(crv, degree=3, point_count=20) rs.ObjectPrintWidth(crv, width=0)