################################### ### DM2_w24 # Patrycja Werstak ### ### 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\arch2506\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(), "wireframe") 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) ###_________________________________________# ### 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 ######mal .. (bsp. 7) um linien in breite zu schmaelern####### ########################################################################################### ########################################################## frontPanels = UnoPanelCoords[0] ### list of coordLists ! backPanels = UnoPanelCoords[1] sidePanels = UnoPanelCoords[2] upSidePanels = UnoPanelCoords[3] allPanels = UnoPanelCoords[4] ################################# dm.newEmptyLayer("UNO::setUp", [120,120,240]) if 1: ### SETUP >> dont' exec @ homework ! rs.ObjectColor(rs.AddCurve( [dm.getUnoCoord(0,0,0), dm.getUnoCoord(0,0,39), dm.getUnoCoord(10,0,39), dm.getUnoCoord(10,0,0), dm.getUnoCoord(10,3,0), dm.getUnoCoord(0,3,0), dm.getUnoCoord(0,3,39), dm.getUnoCoord(10,3,39)], 1), [100,0,200]) rs.ObjectColor(rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord(0, 1, 0) ), [222, 0, 0] ) rs.ObjectColor(rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord(1, 0, 0) ), [0, 222, 0] ) rs.ObjectColor(rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord(0, 0, 2) ), [0, 0, 222] ) rs.ObjectPrintWidth( rs.AllObjects()[0:4], 1.0 ) rs.ZoomExtents() #for coords in BigPanelCoords[4]: rs.AddCurve( coords, 1 ) if 0: ### DEMO >> dont' exec @ homework ! print len(frontPanels) dm.textDots( frontPanels[0] ) for coords in frontPanels[0:10]+sidePanels: pass rs.AddPoints( coords ) rs.AddCurve( coords, 1 ) #rs.AddSrfPt( coords ) #for coords in sidePanels[0:]: # rs.AddPoints( coords ) for coords in BigPanelCoords[4]: pass rs.AddCurve( coords, 1 ) if 0: ### DEMO >> dont' exec @ homework !!!!!!############ #############: ### panel_DEF: def myPanel( panel, basement = 0 ): p0, p1, p2, p3 = panel ### get items (==coords) from list rs.AddLine( p0, p2 ) if basement: crv = rs.AddCurve( [p0, p1, dm.pntInbetween(p1, p3), p2, p3], 1 ) rs.ObjectPrintWidth( crv, 1 ) rs.ObjectColor( crv, [200,0,0]) else: rs.AddCurve( panel ) for i,panel in enumerate(frontPanels[:]): pass panNr = 0 if i<10 or i>119: panNr = 1 myPanel( panel, basement = panNr ) ### basement = (i<20 or i>109) #rs.Redraw() #_____________________________here you go: dm.newEmptyLayer("myPROJ", [200,100,200]) def panelAG( panel, circle, inverse): p0,p1,p2,p3 = panel nVec = dm.normVec3pnts( p0, p1, p2 ) zVal = p0 [2] if inverse: outVal = dm.reMap(zVal, 3, 150, 0, 100) else: outVal = dm.reMap(zVal, 3, 150, 100, 0) outValD = dm.reMap(zVal, 3, 150, 0.8, 0.8) #Skalierung kleine Rechtecke anz = int(dm.reMap(zVal, 0, 156-12, 20, 20)) nVec1 = rs.VectorScale( nVec, outVal*0.2) #Herauskragung p0I = dm.pntInbetween(p0, p2, outValD) p1I = dm.pntInbetween(p3, p1, outValD) p2I = dm.pntInbetween(p2, p0, outValD) p3I = dm.pntInbetween(p1, p3, outValD) p4I = dm.pntInbetween(p0, p2, outValD) p0V = rs.VectorAdd( p0I, nVec1 ) p1V = rs.VectorAdd( p1I, nVec1 ) p2V = rs.VectorAdd( p2I, nVec1 ) p3V = rs.VectorAdd( p3I, nVec1 ) p4V = rs.VectorAdd( p4I, nVec1 ) coords1 = [p0, p1, p2, p3, p0] coords2 = [p0V, p1V, p2V, p3V, p4V] #crv = rs.AddCurve( coords1, 1 ) ###raster crv_1 = rs.AddCurve( coords1, 0 ) ###kreise crv_2 = rs.AddCurve( coords2, circle ) ###kreise klein vorne #crv_3 = rs.AddCurve( coords2, 1 ) ###raster vorne coordsA = rs.DivideCurve( crv_2, anz , 0) #Auskragung coordsI = rs.DivideCurve( crv_1, anz , 0) # Raster for i in range(anz) : # linien #if i<10: rs.ObjectColor(rs.AddCurve( [coordsA[i], coordsI[i]],1),[100,150,100]) #if i>10: #rs.ObjectColor(rs.AddCurve( [coordsA[i], coordsI[i]],2),[70, 70, 200]) rs.ObjectColor( crv_1, [200,0,0] ) #grossen Kreise Farbe rs.ObjectColor( crv_2, [0,0,0] ) #kleinen Kreise Farbe # if i>59: # rs.ObjectColor(crv_2_col, [100, 150, 200]) # if i>79: # rs.ObjectColor(crv_2_col, [100, 100, 200]) #lines = [rs.AddCurve([p0, p2V]), rs.AddCurve([p1, p1V]), rs.AddCurve([p2, p0V]), rs.AddCurve([p3, p3V]), rs.AddCurve([p3, p4V]), rs.AddCurve([p1, p0V]), rs.AddCurve([p2, p3V]), rs.AddCurve([p3V, p2]), rs.AddCurve([p0V, p3V]), rs.AddCurve([p1V, p4V]) ] for i,panel in enumerate(frontPanels): pass #rs.AddCurve( panel, 1) circle = 0 inverse = False if i % 2 == 1: circle = 3 inverse = True panelAG( panel, circle, inverse) #____________________________:here you end ################################# #rs.ZoomExtents() rs.EnableRedraw(1) ### 4 the MACs dm.printDisplay(1) dm.newEmptyLayer("Default")