################################### ### DM2_w24 # AGruber@tugraz.at ### ### ue_05 UN_headquaters NYC ### ################################### ############################## import rhinoscriptsyntax as rs import random, time, sys ### sys.path.append("P:/") ### 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() ################# ### 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]) #####################################################UNO HQ if 1: p0=dm.getUnoCoord(0,0,0) p1=dm.getUnoCoord(10,0,0) p2=dm.getUnoCoord(10,0,39) p3=dm.getUnoCoord(0,0,39) planeA=(p0,p1,p2,p3,p0) Kreuzerl1=rs.AddCurve(planeA, 1) if 1: p0=dm.getUnoCoord(0,3,0) p1=dm.getUnoCoord(10,3,0) p2=dm.getUnoCoord(10,3,39) p3=dm.getUnoCoord(0,3,39) planeB=(p0,p1,p2,p3,p0) Kreuzerl2=rs.AddCurve(planeB,1) ############Connection if 1: anz=50 coords_1 = rs.DivideCurve(Kreuzerl1, anz, create_points=0) coords_2 = rs.DivideCurve(Kreuzerl2, anz, create_points=0) for i in range(anz): p0 = coords_1[i] p4 = coords_2[i] rs.AddLine( p0, p1 ) rs.AddLine(p0,p4) rs.AddLine( p3, p0 ) #########################RUTSCHE dm.newEmptyLayer("Rutsche", [200,50,100]) R0=gC (l=0, d=0, h=39) R1 = rs.VectorAdd ( R0, rs.VectorScale( dVec, 50.0)) R2=gC(5,0,37) R3= gC(4,0,30) R4=rs.VectorAdd ( R3, rs.VectorScale( dVec, 100.0)) R5= gC(8,0,25) R6=rs.VectorAdd ( R5, rs.VectorScale( dVec, -30.0)) R7=gC(3,3,25) R8=gC(5,3,27) R9=gC(8,3,20) R10=rs.VectorAdd ( R9, rs.VectorScale( dVec, 50.0)) R11=gC(5,3,10) R12=gC(8,0,10) R13=gC(0,0,0) R14=rs.VectorAdd ( R13, rs.VectorScale( dVec, 50.0)) R15=gC(8,3,0) R16=gC(10,3,0) R17=rs.VectorAdd ( R16, rs.VectorScale( dVec, -70.0)) R18=gC(0,0,10) R19=gC(0,0,10) R20=rs.VectorAdd ( R19, rs.VectorScale( dVec, 70.0)) R21=gC(10,3,20) R22=gC(10,0,20) R23=rs.VectorAdd ( R22, rs.VectorScale( dVec, -50.0)) R24=gC(0,0,30) R25=gC(0,0,30) R26=rs.VectorAdd ( R25, rs.VectorScale( dVec, 70.0)) R27=gC(10,3,39) R28=gC(10,0,39) R29=rs.VectorAdd ( R25, rs.VectorScale( dVec, -40.0)) R30=gC(0,0,39) R31=gC(0,0,39) R32=rs.VectorAdd ( R31, rs.VectorScale( dVec, 2.0)) coords= [R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15,R16,R17,R18,R19,R20,R21,R22,R23,R24,R25,R26,R27,R28,R29,R30,R31,R32] crvDiv=555 #######iwie aendern fuer die hue?? crv=rs.AddCurve(coords,2) coords=rs.DivideCurve(crv,crvDiv,create_points=False) dom=rs.CurveDomain(crv)[1] print "dom=",dom pX=rs.EvaluateCurve(crv,dom*0.5) planeX=rs.CurvePerpFrame(crv,dom*0.5) #hier wird Normalebene ausgrechnet rs.AddCircle(pX,5.5) rs.AddCircle(planeX,5.5) circDiv = 16 allCoordsLists = [] for cor in coords: paraX = rs.CurveClosestPoint( crv, cor ) planeX = rs.CurvePerpFrame (crv, paraX) circ = rs.AddCircle ( planeX, 4) circCoords = rs.DivideCurve(circ,circDiv,0) rs.DeleteObject( circ ) allCoordsLists.append(circCoords) i = 0 for i in range(circDiv): coords = [] for list in allCoordsLists: pX = list[i] coords.append (pX) #Rutsche=rs.AddCurve(coords, 3) Rutsche = rs.AddInterpCurve(coords, degree=3, knotstyle=3 ) if 1: p0=dm.getUnoCoord(0,0,0) p1=dm.getUnoCoord(10,0,0) p2=dm.getUnoCoord(10,3,0) p3=dm.getUnoCoord(0,3,0) planeA=(p0,p1,p2,p3,p0) Boden=rs.AddCurve(planeA, 1) p00=dm.getUnoCoord(0,0,39) p10=dm.getUnoCoord(10,0,39) p20=dm.getUnoCoord(10,3,39) p30=dm.getUnoCoord(0,3,39) planeB=(p00,p10,p20,p30,p00) Decke=rs.AddCurve(planeB, 2) dm.newEmptyLayer("Stuetzen", [100,50,200]) if 1: anz=8 coords_1 = rs.DivideCurve(Boden, anz, create_points=0) coords_2 = rs.DivideCurve(Rutsche, anz, create_points=0) for i in range(anz): p0 = coords_1[i] p4 = coords_2[i] stuetze=rs.AddLine(p0,p4) rs.ObjectPrintWidth(stuetze, 0.3) anz=8 coords_1 = rs.DivideCurve(Decke, anz, create_points=0) coords_2 = rs.DivideCurve(Rutsche, anz, create_points=0) for i in range(anz): p0 = coords_1[i] p4 = coords_2[i] stuetzeO=rs.AddLine(p0,p4) rs.ObjectPrintWidth(stuetzeO, 0.3) rs.ObjectColor(stuetzeO, [0,100,110]) #____________________________:here you end ################################### dm.zA( proz=0.95 ) rs.EnableRedraw(1) ### 4 the MACs #dm.printDisplay(1) dm.newEmptyLayer("Default")