################################### ### 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, os ### sys.path.append("P:/") ### sys.path.append("D:/PY/") sys.path.append("P:/WWW/mori21/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.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) ###_________________________________________# ### 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=9*1, anzH=39, anzD=3, stepL=1, stepH=2, 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("UNO::setUp", [120,120,240]) if 0: ### 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 ) allPanels = [[dm.getUnoCoord( 0, 0, 20), dm.getUnoCoord( 0, 0, 39), dm.getUnoCoord(10, 0, 39), dm.getUnoCoord(10, 0, 20)]] allPanels.append([dm.getUnoCoord( 0, 0, 0), dm.getUnoCoord( 0, 0, 20), dm.getUnoCoord(10, 0, 20), dm.getUnoCoord(10, 0, 0)]) random.shuffle(allPanels) 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) =", len(frontPanels) dm.textDots( frontPanels[0] ) for coords in frontPanels[0:20]: pass rs.AddPoints( coords ) rs.AddCurve( coords, 1 ) #rs.AddSrfPt( coords ) #for coords in sidePanels[0:]: # rs.AddPoints( coords ) for coords in BigPanelCoords[1][5:]: pass coords[-1]=coords[random.randint(0,3)] rs.ObjectColor( rs.AddCurve( coords, degree=random.randint(1,3) ), [0,100,0]) rs.Redraw() def dividePanel( panel=allPanels[0], maxPanels=25, minHig=4.0 ): dm.esc() if maxPanels>500: maxPanels=500 random.shuffle(allPanels) if rs.Distance( panel[0], panel[1] ) > minHig*2: allPanels.remove( panel ) pMid = dm.pntInbetween(panel[0],panel[2]) allPanels.append([panel[0], dm.pntInbetween(panel[0],panel[1]), pMid, dm.pntInbetween(panel[3],panel[0])]) allPanels.append([dm.pntInbetween(panel[0],panel[1]), panel[1],dm.pntInbetween(panel[1],panel[2]), pMid]) allPanels.append([pMid, dm.pntInbetween(panel[1],panel[2]), panel[2], dm.pntInbetween(panel[2],panel[3])]) allPanels.append([dm.pntInbetween(panel[0],panel[3]), pMid, dm.pntInbetween(panel[2],panel[3]), panel[3]]) if len(allPanels) <= maxPanels : dividePanel( panel=random.choice( allPanels[0: int(len(allPanels)*0.666)]), maxPanels=maxPanels ) dividePanel(panel=allPanels[0], maxPanels=128, minHig=6.0 ) print "::: len(allPanels)",len(allPanels) def gC(L,B,H): return dm.getUnoCoord(L,B,H) #_____________________________here you go: dm.newEmptyLayer("myPROJ", [100,110,200]) p0= gC(10,0,0) p1= gC(9,0,0) coords_0 = [gC(0,0,0), gC(0,1,4), gC(0,0,8), gC(0,2,12), gC(0,1,18), gC(0,3,25), gC(0,0,29), gC(0,1,33), gC(0,0,39) ] coords_1 = [gC(2,0,0), gC(2,2,4), gC(2,1,8), gC(2,0,12), gC(2,1,18), gC(2,2,25), gC(2,1,29), gC(2,2,33), gC(2,0,39) ] coords_2 = [gC(4,0,0), gC(4,1,4), gC(4,0,8), gC(4,1,12), gC(4,0,18), gC(4,1,25), gC(4,2,29), gC(4,1,33), gC(4,0,39) ] coords_3 = [gC(6,0,0), gC(6,2,4), gC(6,1,8), gC(6,3,12), gC(6,2,18), gC(6,1,25), gC(6,1,29), gC(6,2,33), gC(6,0,39)] coords_4 = [gC(8,0,0), gC(8,1,4), gC(8,2,8), gC(8,0,12), gC(8,1,18), gC(8,1,25), gC(8,2,29), gC(8,1,33), gC(8,0,39)] coords_5 = [gC(10,0,0), gC(10,2,4), gC(10,1,8), gC(10,2,12), gC(10,1,18), gC(10,0,25), gC(10,1,29), gC(10,2,33), gC(10,0,39)] crv_0 = rs.AddCurve( coords_0, 2) crv_1 = rs.AddCurve( coords_1, 2) crv_2 = rs.AddCurve( coords_2, 3) crv_3 = rs.AddCurve( coords_3, 2) crv_4 = rs.AddCurve( coords_4, 2) crv_5 = rs.AddCurve( coords_5, 2) anz = 16*1 showPts = 0 deg = 1 delIt = 0 frames = 25*1 path = "L:/animatzi/GD_tst/" if not os.path.exists(path): os.makedirs(path) #coords_1 = makeFigure( pnts=pnts_singt, crv_degree=deg, pos=[50.0, 10.0,0], divis=anz, show=showPts, delIt=delIt, crv_name="MM_singt", obj_color=[0,200,0]) #coords_2 = makeFigure( pnts=pnts_wind, crv_degree=deg, pos=[00.0, 10.0,0], divis=anz, show=showPts, delIt=delIt, crv_name="MM_wind", obj_color=[210,0,120]) #rs.LayerVisible("mori", 1) #MM_0 = rs.ObjectsByName("MM_schlank")[0] #MM_1 = rs.ObjectsByName("MM_breit")[0] #MM_2 = rs.ObjectsByName("MM_arme")[0] coords_0 = rs.DivideCurve(crv_0, anz, 0) coords_1 = rs.DivideCurve(crv_1, anz, 0) coords_2 = rs.DivideCurve(crv_2, anz, 0) coords_3 = rs.DivideCurve(crv_3, anz, 0) coords_4 = rs.DivideCurve(crv_4, anz, 0) coords_5 = rs.DivideCurve(crv_5, anz, 0) #rs.LayerVisible("mori", 0) coordsLists = [coords_0, coords_1, coords_2, coords_3, coords_4, coords_5] #rs.HideObjects([crv_0,crv_1,crv_2,crv_3]) dm.getCameraTarget() #dm.setCameraTarget( [-77.48685689, 11.77273249, 12.05421199], [17.20711797, 25.7546931, 14.05896983], lens=49.99999999, rota=0, upVec=[-0.020714654726424725,-0.003058605226544303,0.999780749971529] ) # ... danke, andi ! ## cam 1 #dm.setCameraTarget( [-3151.51513522, -763.71493147, 419.74295749], [-582.27838656, -384.35640237, -47.55628417], lens=49.99999999, rota=0, upVec=[0.17518845445825773,0.02586730648051854,0.9841950456489659] ) # ... danke, andi ! #dm.setCameraTarget( [2282.27449924, -671.8852515, 454.02906213], [-361.78198394, 156.74870715, -257.41642053], lens=49.99999999, rota=0, upVec=[-0.23731190987082756,0.07437235496387741,0.9685823714329036] ) # ... danke, andi ! dm.setCameraTarget( [304.37066938, 600.09470895, 86.15043311], [792.29987168, 587.3116312, 75.92471574], lens=49.99999999, rota=0, upVec=[0.020938410144171304,-0.000548557707655585,0.9997806169680805] ) # ... danke, andi ! if 1: if 1: framNumber = 0 fac = 1/frames allCoords = [] for i in range(len(coordsLists)-1): for fram in range(0, frames+1): # facX = fac*fram # coords = [] # for j in range(anz): # cor = dm.pntInbetween( coords_1[j], coords_2[j], facX ) # coords.append(cor) coords_0=coordsLists[i] coords_1=coordsLists[i+1] coords = [ dm.pntInbetween( coords_0[j], coords_1[j], fac*fram ) for j in range(anz+1) ] #allCoords.append( coords ) #rs.AddPoints(coords) #rs.AddLine( coords[-1], coords[0] ) #coords.append(coords[0]) crv = rs.AddCurve(coords, 2) #rs.Redraw() #rs.Command("isolate -selId "+str(crv)+" enter enter", 0) nam = dm.makeName("gD", frameNumber=framNumber, anzahl=4, format='jpg') rs.Redraw() #rs.Command("-viewCaptureToFile Width=960 Height=540 Scale=2 DrawCPlaneAxes=No TransparentBackground=No "+path+nam, 0) framNumber +=1 #print nam dm.esc() # if 0: # for fram in range(0, frames+1): # # facX = fac*fram # # coords = [] # # for j in range(anz): # # cor = dm.pntInbetween( coords_1[j], coords_2[j], facX ) # # coords.append(cor) # coords = [ dm.pntInbetween( coords_1[j], coords_2[j], fac*fram ) for j in range(anz+1) ] # #allCoords.append( coords ) # #rs.AddPoints(coords) # #rs.AddLine( coords[-1], coords[0] ) # #coords.append(coords[0]) # crv = rs.AddCurve(coords, deg) # #rs.Redraw() # #rs.Command("isolate -selId "+str(crv)+" enter enter", 0) # nam = dm.makeName("gD", frameNumber=framNumber, anzahl=4, format='jpg') # rs.Redraw() # rs.Command("-viewCaptureToFile Width=960 Height=540 Scale=1 DrawCPlaneAxes=No TransparentBackground=No "+path+nam, 0) # framNumber +=1 # #print nam # dm.esc() #____________________________:here you end ################################# #rs.ZoomExtents() rs.EnableRedraw(1) ### 4 the MACs dm.printDisplay(1) dm.newEmptyLayer("Default")