################################### ### DM2_w24 # AGruber@tugraz.at ### ### ue_05 UN_headquaters NYC ### ################################### ############################## import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:/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(state=1) ### nomen est omen / printDisplay(state=1, scale=1000, thickness=1, color="Display") rs.EnableRedraw(0) ### MAC >> problem ! ###_________________________________________# ### basic settings for grid to fit UN_slab # ### # ! no need 2 change ! 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 gridCoords L*D*H = 1760 UnoGridCoords = dm.getUnoGridCoords() # get from DM_lib as dm #################___________________________# dm.newEmptyLayer("UNO::setUp::points", [150,150,200] ) dm.newEmptyLayer("UNO::setUp::geo", [150, 20,150] ) dm.newEmptyLayer("UNO::setUp::crv", [200, 100, 100]) dm.newEmptyLayer("UNO::setUp", [120,120,140] ) ################ 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) ) ################ if 0: ### DEMOs / SETUP >> dont' exec @ homework ! if 1: rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord(10, 0, 0) ) rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord( 0, 3, 0) ) rs.AddLine( dm.getUnoCoord(0, 0, 0), dm.getUnoCoord( 0, 0, 39) ) rs.CurveArrows(rs.AllObjects()[0], arrow_style=2) rs.CurveArrows(rs.AllObjects()[1], arrow_style=2) rs.CurveArrows(rs.AllObjects()[2], arrow_style=2) rs.ObjectColor(rs.AllObjects()[2], [0, 222, 0] ) rs.ObjectColor(rs.AllObjects()[1], [222, 0, 0] ) rs.ObjectColor(rs.AllObjects()[0], [0, 0, 222] ) rs.ObjectPrintWidth( rs.AllObjects()[0:3], 1.0 ) p0 = dm.getUnoCoord( 0, 0, 0) p1 = dm.getUnoCoord( 10, 0, 0) p2 = dm.getUnoCoord( 10, 3, 0) p3 = dm.getUnoCoord( 0, 3, 0) unoBaseCoords = [p0, p1, p2, p3, p0] unoBaseCrv = rs.AddCurve( unoBaseCoords, 1) unoTopCoords = [dm.getUnoCoord( 0, 0, 39), dm.getUnoCoord( 10, 0, 39), dm.getUnoCoord( 10, 3, 39), dm.getUnoCoord( 0, 3, 39), dm.getUnoCoord( 0, 0, 39), ] unoTopCrv = rs.AddCurve( unoTopCoords, 1) rs.ZoomExtents() if 0: ############################## rs.CurrentLayer("UNO::setUp::points") rs.AddPoints( UnoGridCoords ) for i in range(L): rs.ObjectColor( rs.AddTextDot( str(i), dm.getUnoCoord(i, 0, 0) ), [0, 222, 0] ) for i in range(D): rs.ObjectColor( rs.AddTextDot( str(i), dm.getUnoCoord(0, i, 0) ), [222, 0, 0] ) for i in range(H): rs.ObjectColor( rs.AddTextDot( str(i), dm.getUnoCoord(0, 0, i) ), [0, 0, 222] ) ############################## if 0: rs.CurrentLayer("UNO::setUp::crv") dm.UN_slab(showAll=1) for i in range(8): p0 = dm.getUnoCoord( random.randint(0,L-1), random.randint(0,D-1), random.randint(0,H-1) ) p1 = dm.getUnoCoord( random.randint(0,L-1), random.randint(0,D-1), random.randint(0,H-1) ) rs.AddCurve( [p0, p1] ) dm.textDots( [p0, p1] ) rs.ZoomExtents() if 0: coords = UnoGridCoords[:] ### make COPY - not equal ! random.shuffle( coords ) rs.AddCurve( coords[0:], random.randint(1, 3) ) ################# ### abbreveation: def gC (l=1, d=2, h=3): cor = dm.getUnoCoord(l, d, h) return cor ## rs.AddPoint( gC(1,0,1) ) ################# #_____________________________here you go: dm.newEmptyLayer("myPROJ", [100,100,100]) # rot = (205,50,50) gruen = (60,160,60) blau = (50,100,255) ###Laengenpunkte for x in range(0, 11): lengthVU = gC(x, 0, 0) lengthVO = gC(x, 0, 39) lengthHU = gC(x, 3, 0) lengthHO = gC(x, 3, 39) lengthVU_id = rs.AddPoint(lengthVU) lengthVO_id = rs.AddPoint(lengthVO) lengthHU_id = rs.AddPoint(lengthHU) lengthHO_id = rs.AddPoint(lengthHO) ###Farben Punkte rs.ObjectColor(lengthVU_id, blau) rs.ObjectColor(lengthVO_id, blau) rs.ObjectColor(lengthHU_id, blau) rs.ObjectColor(lengthHO_id, blau) ###Linien zwischen den Lengenpunkten lines1 = rs.AddLine(lengthVU_id, lengthVO_id) lines2 = rs.AddLine(lengthVU_id, lengthHU_id) lines3 = rs.AddLine(lengthVO_id, lengthHO_id) lines4 = rs.AddLine(lengthHU_id, lengthHO_id) ###Farben Linien rs.ObjectColor(lines1, blau) rs.ObjectColor(lines2, blau) rs.ObjectColor(lines3, blau) rs.ObjectColor(lines4, blau) ###Tiefenpunkte for y in range(0, 4): depthRU = gC(0, y, 0) depthRO = gC(0, y, 39) depthLU = gC(10, y, 0) depthLO = gC(10, y, 39) depthRU_id = rs.AddPoint(depthRU) depthRO_id = rs.AddPoint(depthRO) depthLU_id = rs.AddPoint(depthLU) depthLO_id = rs.AddPoint(depthLO) ###Farben Punkte rs.ObjectColor(depthRU_id, blau) rs.ObjectColor(depthRO_id, blau) rs.ObjectColor(depthLU_id, blau) rs.ObjectColor(depthLO_id, blau) ###Linien zwischen den Tiefenpunkten lines1 = rs.AddLine(depthRU_id, depthRO_id) lines2 = rs.AddLine(depthRU_id, depthLU_id) lines3 = rs.AddLine(depthRO_id, depthLO_id) lines4 = rs.AddLine(depthLU_id, depthLO_id) ###Farben Linien rs.ObjectColor(lines1, blau) rs.ObjectColor(lines2, blau) rs.ObjectColor(lines3, blau) rs.ObjectColor(lines4, blau) ###Hoehenpunkte for z in range(0, 39): heightVR = gC(0, 0, z) heightHR = gC(0, 3, z) heightVL = gC(10, 0, z) heightHL = gC(10, 3, z) heightVR_id = rs.AddPoint(heightVR) heightHR_id = rs.AddPoint(heightHR) heightVL_id = rs.AddPoint(heightVL) heightHL_id = rs.AddPoint(heightHL) ###Farben Punkte rs.ObjectColor(heightVR_id, blau) rs.ObjectColor(heightHR_id, blau) rs.ObjectColor(heightVL_id, blau) rs.ObjectColor(heightHL_id, blau) ###Linien zwischen den Hoehenpunkten lines1 = rs.AddLine(heightVR_id, heightHR_id) lines2 = rs.AddLine(heightVR_id, heightVL_id) lines3 = rs.AddLine(heightHR_id, heightHL_id) lines4 = rs.AddLine(heightVL_id, heightHL_id) ###Farben Linien rs.ObjectColor(lines1, blau) rs.ObjectColor(lines2, blau) rs.ObjectColor(lines3, blau) rs.ObjectColor(lines4, blau) ###################################### ###Kurve p0 = gC(0,0,0) p1 = gC(0,3,5) p2 = rs.VectorAdd( p1, rs.VectorScale( dVec, 60 ) ) #p2_2 = rs.VectorAdd( p1, rs.VectorScale( lVec, -116 ) ) p3 = gC(10,3,10) p4 = rs.VectorAdd( p3, rs.VectorScale( lVec, -26 ) ) p5 = rs.VectorAdd( p3, rs.VectorScale( dVec, -70 ) ) p6 = gC(0,0,20) p7 = rs.VectorAdd( p6, rs.VectorScale( lVec, 40 ) ) p8 = rs.VectorAdd( p7, rs.VectorScale( dVec, 95 ) ) p9 = gC(10,3,27) p10 = gC(9,0,30) p11 = rs.VectorAdd( p10, rs.VectorScale( dVec, -25 ) ) p12 = rs.VectorAdd( p11, rs.VectorScale( lVec, 40 ) ) p13 = gC(2,1,34) p14 = gC(3,3,35) p15 = rs.VectorAdd( p14, rs.VectorScale( dVec, 40 ) ) p16 = gC(10,2,37) p17 = rs.VectorAdd( p16, rs.VectorScale( lVec, -26 ) ) p18 = rs.VectorAdd( p17, rs.VectorScale( dVec, -45 ) ) p19 = gC(8,0,39) p20 = gC(5,3,30) p21 = rs.VectorAdd( p20, rs.VectorScale( dVec, 85 ) ) p22 = gC(0,3,8) p23 = rs.VectorAdd( p22, rs.VectorScale( lVec, -15 ) ) p24 = gC(7,3,5) p25 = rs.VectorAdd( p24, rs.VectorScale( dVec, -85 ) ) p26 = gC(4,0,3) p27 = gC(0,0,0) anzCircs = 50 anzCircPts = 20 coords = [p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27] #rs.AddCurve( coords, 1 ) crv = rs.AddCurve( coords, 2 ) coords = rs.DivideCurve( crv, anzCircs, create_points=1) dom = rs.CurveDomain( crv ) [1] allCircCoordsLists = [] for cor in coords: pass paraX = rs.CurveClosestPoint( crv, cor ) planeX = rs.CurvePerpFrame(crv, paraX) circ = rs.AddCircle( planeX, 7.5 ) coords = rs.DivideCurve( circ, anzCircPts, 1) rs.DeleteObject( circ ) allCircCoordsLists.append ( coords ) i = 10 for i in range ( anzCircPts): coords = [] for coordList in allCircCoordsLists: coords.append( coordList [i] ) curve = rs.AddInterpCurve( coords, degree=3, knotstyle=5 ) ###Farbe Kurve rs.ObjectColor(curve, gruen) #____________________________:here you end ################################### dm.zA( proz=0.95 ) rs.EnableRedraw(1) ### 4 the MACs #dm.printDisplay(1) dm.newEmptyLayer("Default")