#dm2_Gruber2_WS24# #hu5_UN headquaters spirale #giulia koller# import rhinoscriptsyntax as rs import random, time, sys sys.path.append("C:\Users\giulia.KOLLER-EDV\Documents\AA_WS24\DM2") import DM_lib as dm rs.UnitSystem(4) rs.ShowGrid(None,0) rs.ShowGridAxes(None,1) rs.ViewDisplayMode(rs.CurrentView(), "wireframe") rs.Command("cplane w t enter", 0) dm.PointRadius(displayModeX=0, rad=10, styl=3) dm.printDisplay(state=1) rs.EnableRedraw(0) floors = H = dm.H = 40 slabs = L = dm.L = 11 depth = D = dm.D = 4 floorHeight = fH = dm.fH = 4.0 UnoGridCoords= dm.getUnoGridCoords() dm.newEmptyLayer("UNO::setUp::points", [178,34,34]) #Neue Layer erstellt dm.newEmptyLayer("UNO::setUp::geo", [255,215,0]) dm.newEmptyLayer("UNO::setUp::crv", [0,100,0]) dm.newEmptyLayer("UNO::setUp", [0,0,139]) lengthVec = lVec = rs.VectorUnitize(rs.VectorSubtract(dm.getUnoCoord(0,0,0),dm.getUnoCoord(1,0,0))) depthVec = dVec = rs.VectorUnitize(rs.VectorSubtract(dm.getUnoCoord(0,1,0),dm.getUnoCoord(0,0,0))) 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.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[:] random.shuffle(coords) rs.AddCurve(coords[0:],random.randint(1,3)) def gC (l=1, d=2, h=3): cor = dm.getUnoCoord(l, d, h) return dm.getUnoCoord(l, d, h) dm.newEmptyLayer("myPROJ",[0,0,0]) p0=gC(10,10,10) p1=gC(2,3,5) p2=rs.VectorAdd(p1,rs.VectorScale(lVec,150)) p3=gC(9,25,35) p4=rs.VectorAdd(p3,rs.VectorScale(dVec,-300)) p5=gC(5,9,25) p6=gC(15,9,20) p7=rs.VectorAdd(p6,rs.VectorScale(lVec,300)) p8=gC(7,8,9) p9=rs.VectorAdd(p8,rs.VectorScale(dVec,-200)) p10=gC(9,5,39) p11=gC(6,19,29) p12=rs.VectorAdd(p11,rs.VectorScale(dVec,50)) p13=gC(4,13,10) p14=gC(5,6,20) p15=rs.VectorAdd(p14,rs.VectorScale(lVec,-70)) p16=gC(16,4,19) coords=[p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p0] crv=rs.AddCurve(coords,2) def makeSchlauch(anzCircs =40, divCircs = 118, crvDeg = 2): coords = rs.DivideCurve( crv, anzCircs, create_points=0) allCircCoordsLists = [] for cor in coords: pass paraX = rs.CurveClosestPoint( crv, cor ) planeX = rs.CurvePerpFrame ( crv, paraX ) circ = rs.AddCircle( planeX, 5.5) coords = rs.DivideCurve( circ, divCircs, 0) rs.DeleteObject(circ) allCircCoordsLists.append(coords) allCircCoordsLists.append(allCircCoordsLists[0]) i = 0 for i in range( int( divCircs*0.5 )+1 ): coords = [] for list in allCircCoordsLists: p0 = list[i] coords.append( p0 ) rs.AddInterpCurve(coords, degree=crvDeg, knotstyle=3) makeSchlauch(anzCircs = 18, divCircs = 66, crvDeg = 9) points=[rs.AddPoint(-167,77,0), rs.AddPoint(227,160,0), rs.AddPoint(304,239,0), rs.AddPoint(85,70,0), rs.AddPoint(565,350,0), rs.AddPoint(-82,32,0), rs.AddPoint(-78,-137,0), ] for point in points: r = random.randint(0, 255) g = random.randint(0, 255) b = random.randint(0, 255) rs.ObjectColor(point, (r, g, b)) dm.zA( proz=0.95 ) rs.CurrentLayer("Default")