###hausuebung 6A### ###Lorene Seufert# ###Gruber 3####### import rhinoscriptsyntax as rs import random, time, sys sys.path.append("P:/") import DM_lib as dm rs.UnitSystem(4) # km = 5, meters = 4, cm = 3 etc rs.ShowGrid(None, 0) # grid > 0 = off rs.ShowGridAxes(None, 0) # y/y/z axen display > 0/1 = off/on rs.ViewDisplayMode(rs.CurrentView(), "arctic") 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) ###_________________________________________# ### 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 1: ### 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=0) 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 1: coords = UnoGridCoords[:] ### make COPY - not equal ! random.shuffle( coords ) racrv = rs.AddCurve( coords[0:], random.randint(1, 1) ) rs.ObjectColor(racrv, [255,177,98]) ################# ### 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]) p0 = gC(5,3,39) pA = gC(10,3,37) # pB = gC(5,3,35) # p1 = rs.VectorAdd(pA, rs.VectorScale( dVec, 50 )) p2 = rs.VectorAdd(pB, rs.VectorScale( dVec, 100 )) pC = gC(1,3,33) # p3 = rs.VectorAdd(pC, rs.VectorScale( dVec, 50 )) p4 = gC(5,1,31) pD = gC(10,0,29) # p5 = rs.VectorAdd(pD, rs.VectorScale( dVec, -50 )) pE = gC(5,0,27) # p6 = rs.VectorAdd(pE, rs.VectorScale( dVec, -100 )) pF = gC(0,0,25) # p7 = rs.VectorAdd(pF, rs.VectorScale( dVec, -50 )) p8 = gC(5,1,23) pG = gC(9,3,21) # p9 = rs.VectorAdd(pG, rs.VectorScale( dVec, 40 )) pH = gC(5,3,19) # p10 = rs.VectorAdd(pH, rs.VectorScale( dVec, 80 )) pI = gC(2,3,17) # p11 = rs.VectorAdd(pI, rs.VectorScale( dVec, 40 )) p12 = gC(5,1,15) pJ = gC(9,0,13) # p13 = rs.VectorAdd(pJ, rs.VectorScale( dVec, -40 )) pK = gC(5,0,11) # p14 = rs.VectorAdd(pK, rs.VectorScale( dVec, -80 )) pL = gC(2,0,9) # p15 = rs.VectorAdd(pL, rs.VectorScale( dVec, -40 )) p16 = gC(5,1,7) pM = gC(7,3,6) # p17 = rs.VectorAdd(pM, rs.VectorScale( dVec, 20 )) pN = gC(5,3,5) # p18 = rs.VectorAdd(pN, rs.VectorScale( dVec, 40 )) pO = gC(3,3,4) # p19 = rs.VectorAdd(pO, rs.VectorScale( dVec, 20 )) p20 = gC(5,3,0) coords = [p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20] #pts = rs.AddPoints( coords ) crv = rs.AddCurve( coords, 2) rs.HideObject(crv) anzCircs = 100 anzCircPts = 15 coords = rs.DivideCurve(crv, anzCircs, create_points=0) dom = rs.CurveDomain( crv )[1] allCircCoordsLists = [] for cor in coords: paraX = rs.CurveClosestPoint(crv, cor) planeX = rs.CurvePerpFrame(crv, paraX) circ = rs.AddCircle( planeX, 3) coords = rs.DivideCurve( circ, anzCircPts, 0) #rs.DeleteObject( circ ) allCircCoordsLists.append(coords ) i = 10 for i in range(anzCircPts): coords = [] for coordList in allCircCoordsLists: coords.append( coordList[i] ) lin = rs.AddInterpCurve(coords, degree=3, knotstyle=2) rs.ObjectColor(lin, [251,232,112]) #### ab hier hausuebung 6A ##stuetzen 1 pS0 = gC(5,3,39) pS1 = gC(3,3,21) pS2 = gC(8,3,21) ##stuetzen 2 pS3 = gC(5,0,34) pS4 = gC(3,0,15) pS5 = gC(8,0,15) ##stuetzen 3 pS6 = gC(5,3,21) pS7 = gC(3,3,10) pS8 = gC(8,3,10) ##stuetzen 4 pS9 = gC(5,0,15) pS10 = gC(3,0,0) pS11 = gC(8,0,0) ##stuetzen 5 pS12 = gC(4,3,10) pS13 = gC(7,3,10) pntsStue = [pS0, pS1, pS2, pS3, pS4, pS5, pS6, pS7, pS8, pS9, pS10, pS11, pS12, pS3] pC1 = dm.pntCurveClosest(p2, crv) st1 = rs.AddLine(pC1, pS0) st2 = rs.AddLine(pC1, pS1) st3 = rs.AddLine(pC1, pS2) pC2 = dm.pntCurveClosest(p6, crv) st4 = rs.AddLine(pC2, pS3) st5 = rs.AddLine(pC2, pS4) st6 = rs.AddLine(pC2, pS5) pC3 = dm.pntCurveClosest(p10, crv) st7 = rs.AddLine(pC3, pS6) st8 = rs.AddLine(pC3, pS7) st9 = rs.AddLine(pC3, pS8) pC4 = dm.pntCurveClosest(p14, crv) st10 = rs.AddLine(pC4, pS9) st11 = rs.AddLine(pC4, pS10) st12 = rs.AddLine(pC4, pS11) pC5 = dm.pntCurveClosest(p18, crv) st13 = rs.AddLine(pC5, pS12) st14 = rs.AddLine(pC5, pS13) stue = [st1, st2, st3, st4, st5, st6, st7, st8, st9, st10, st11, st12, st13, st14] for pnts in pntsStue: rs.ObjectColor(stue, [173,90,56]) rs.ObjectPrintWidth(stue,3) #____________________________:here you end ################################### dm.zA( proz=0.95 ) rs.EnableRedraw(1) ### 4 the MACs #dm.printDisplay(1) dm.newEmptyLayer("Default")