################################### ### DM2_w24 # AGruber@tugraz.at ### ### ue_05 UN_headquaters NYC ### ################################### ############################## import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:/WWW/soenkele/dm2/lib") ### 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(), "pen") 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 ! rs.DeleteObjects(rs.AllObjects()) 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) ) #HUE #Headquarters of the United Nations Hight = [0, 9, 19, 29, 39] unoCrv = [] index = 0 for item in Hight: unoCoords = [ dm.getUnoCoord(0,0, item), dm.getUnoCoord(10,0,item), dm.getUnoCoord(10,3,item), dm.getUnoCoord(0,3,item), dm.getUnoCoord(0,0,item)] unoCrv.append (rs.AddCurve(unoCoords, 1)) if index > 0: Fassade_anz= item Fassade_coords_U = rs.DivideCurve(unoCrv [index-1], Fassade_anz) Fassade_coords_O = rs.DivideCurve(unoCrv [index], Fassade_anz) Fassade_coords_O += Fassade_coords_O for i in range(Fassade_anz): p1 = Fassade_coords_U[i] p2 = Fassade_coords_O[i] Fassade = rs.AddLine( p1, p2 ) rs.ObjectColor(Fassade, [200,200,200]) index+= 1 #The Slide #Abbreveation def gC (l=1, d=2, h=3): cor = dm.getUnoCoord(l, d, h) return cor curve = None if(1): p0 = gC(l = 10, d = 0, h = 39) p1 = rs.VectorAdd(p0, rs.VectorScale( dVec, 100)) p2 = gC( 5,3,39 ) p3 = gC( 8,0,34 ) p4 = rs.VectorAdd(p3, rs.VectorScale( dVec, -100)) p5 = gC( 4,2,29 ) p6 = gC( 6,0,24 ) p7 = rs.VectorAdd(p6, rs.VectorScale( dVec, 100)) p8 = gC( 3,1,19 ) p9 = gC( 4,0,14 ) p10 = rs.VectorAdd(p9, rs.VectorScale( dVec, -100)) p11 = gC( 2,0,9 ) p12 = gC( 2,0,4 ) p13 = rs.VectorAdd(p12, rs.VectorScale( dVec, 100)) p14 = gC( 0,0,0 ) coords = [p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14] crv = rs.AddCurve( coords, 3) crvDiv = 14 coords = rs.DivideCurve(crv, crvDiv, create_points = 0) #rs.AddPoints( coords ) circDiv = 30 allCoordsLists = [] for cor in coords: paraX = rs.CurveClosestPoint(crv, cor) planeX = rs.CurvePerpFrame(crv, paraX) circ = rs.AddCircle(planeX, 2.5) circCoords = rs.DivideCurve( circ, circDiv, 0) #rs.AddPoints(circCoords) rs.DeleteObject(circ) allCoordsLists.append(circCoords) i = 0 for i in range(circDiv): coords = [] for list in allCoordsLists: pX = list[i] coords.append( pX ) coat = rs.AddCurve( coords, 3 ) rs.ObjectPrintWidth( coat, .3) rs.ObjectColor( coat, [0,0,150] ) #Dom dom = [] if rs.IsCurve(crv): dom = rs.CurveDomain( crv )[1] #The Support Structure def makeSupportStructure(crv, anz = 15,circDiv = 10,rad = 3): coords_support = [] x_min, x_max = 0, 10 y_min, y_max = 0, 3 z_min, z_max = 9, 29 x = random.randint(x_min, x_max) y = random.randint(y_min, y_max) z = random.randint(z_min, z_max) c = (x,y,z) c = dm.getUnoCoord(x,y,z) for i in range(anz): X = dom/anz*i #print("dom:", dom) if not rs.IsCurve(crv): continue pX = rs.EvaluateCurve(crv, X) ln = rs.AddLine (c, pX) #rs.AddPoint( pX ) #pC = rs.AddPoint(c) planeX = rs.CurvePerpFrame( crv, X) sphr = rs.AddSphere(planeX, rad) rs.ObjectPrintWidth( sphr, 2) rs.ObjectColor( sphr, [0,150,0] ) makeSupportStructure(coat) rs.DeleteObject(crv)