#golden gate bridge skript import rhinoscriptsyntax as rs import random as ran import flipped_classroom_lib as fc import math as math rs.DeleteObjects(rs.AllObjects()) rs.EnableRedraw(False) ########################################################################### #Masse ########################################################################### #Leange zwischen den Stuetzen 1280m #Laenge nach den Stuetzen 345m #total height (m) 230m #variable Werte bsize=27 #Fahrbahnbreite 27 csize=1979 #Fahrbahnlaenge 1979 m=52 #z-Wert Stuetze 52 o=10 #abstand zwischen Streben 10 n=67 #Fahrbahnhoehe 67 #quasi fixe Werte dsize=bsize*0.148148148 #Fahrbahndicke fsize=10 #y-Richtwert Stuetze unter der Fahrbahn xsize=3 #x-Wert Stuetze ysize=9 #Mittelteil 1 z-Wert ste=csize*0.646791309 #Stuetzenentfernung ############################################################################ #Fahrbahn ############################################################################ #add box corners=[(0,0,0),(bsize,0,0),(bsize,csize,0),(0,csize,0),(0,0,dsize),(bsize,0,dsize),(bsize,csize,dsize),(0,csize,dsize)] bo=rs.AddBox(corners) rs.MoveObject(bo,[0,0,n]) ############################################################################# #Stuetzen 1 und 2 ############################################################################# #unterstes Teil corners=[(0,0,0),(bsize+8,0,0),(bsize+8,bsize+8,0),(0,bsize+8,0),(0,0,m*0.307692308),(bsize+8,0,m*0.307692308),(bsize+8,bsize+8,m*0.307692308),(0,bsize+8,m*0.307692308)] st=rs.AddBox(corners) m2=rs.MoveObject(st,[-4,csize*0.176856998-(bsize+8)/2,0]) ################################################### #Teil unter der Fahrbahn corners=[(0,0,0),(xsize,0,0),(xsize,fsize,0),(0,fsize,0),(0,0,m+2),(xsize,0,m+2),(xsize,fsize,m+2),(0,fsize,m+2)] st=rs.AddBox(corners) sts1=rs.MoveObject(st,[0,csize*0.17433047,m*0.307692308]) m3=rs.CopyObject(sts1,[bsize-xsize,0,0]) hlin=rs.AddLine((xsize/2,fsize/2,m*0.384615385+xsize/2),(xsize/2,fsize/2,m*0.384615385+m+2-(m*0.384615385-m*0.307692308))) rs.MoveObject(hlin, [0,csize*0.17433047,0]) hlin2=rs.CopyObject(hlin,[bsize-xsize,0,0]) #Verstrebungen pts1=rs.DivideCurve(hlin, 2) pts2=rs.DivideCurve(hlin2, 2) for i in range(2): line1=rs.AddLine(pts1[i], pts2[i+1]) x1=rs.CurveLength(line1) box1=fc.make_box(pts1[i], x1, fsize, xsize) angle= rs.Angle(pts1[i], pts2[i+1])[1] rs.MoveObject(box1, (0,-fsize/2, -xsize/2)) rs.RotateObject(box1, pts1[i], -angle, axis= (0,1,0)) box2=rs.MirrorObject(box1,[bsize/2,0,0],[bsize/2,10,100],copy=True) rs.CopyObject([box1,box2],[0,csize*0.646791309,0]) #Mittelteil 1 corners=[(0,0,0),(bsize,0,0),(bsize,fsize,0),(0,fsize,0),(0,0,xsize),(bsize,0,xsize),(bsize,fsize,xsize),(0,fsize,xsize)] st=rs.AddBox(corners) sts=rs.MoveObject(st,[0,csize*0.17433047,m*0.384615385]) #Mittelteil 2 m1=rs.CopyObject(sts,[0,0,m*0.461538462]) #rs.CopyObject((m3,sts,m1,sts1,m2),[0,csize-699,0]) #################################################### #Teil oberhalb der Fahrbahn corners=[(0,0,0),(xsize,0,0),(xsize,fsize,0),(0,fsize,0),(0,0,m*1.07692308),(xsize,0,m*1.07692308),(xsize,fsize,m*1.07692308),(0,fsize,m*1.07692308)] st1=rs.AddBox(corners) p4=rs.MoveObject(st1,[0,csize*0.17433047,m*1.32692308]) st2=rs.CopyObject(p4,[bsize-xsize,0,0]) #Mittelteil 1 corners=[(0,0,0),(bsize,0,0),(bsize,fsize-7,0),(0,fsize-7,0),(0,0,ysize),(bsize,0,ysize),(bsize,fsize-7,ysize),(0,fsize-7,ysize)] st3=rs.AddBox(corners) rs.MoveObject(st3,[0,csize*0.17609904,m*2.21153846]) ################################################### #Teil 1 oberhalb der Fahrbahn corners=[(0,0,0),(xsize,0,0),(xsize,fsize,0),(0,fsize,0),(0,0,m*0.923076923),(xsize,0,m*0.923076923),(xsize,fsize,m*0.923076923),(0,fsize,m*0.923076923)] st4=rs.AddBox(corners) p3=rs.MoveObject(st4,[1.5,csize*0.17433047,m*2.38461538]) st5=rs.CopyObject(p3,[bsize-xsize*2,0,0]) #Mittelteil 1 corners=[(0,0,0),(bsize-xsize,0,0),(bsize-xsize,fsize-7,0),(0,fsize-7,0),(0,0,ysize),(bsize-xsize,0,ysize),(bsize-xsize,fsize-7,ysize),(0,fsize-7,ysize)] st6=rs.AddBox(corners) rs.MoveObject(st6,[1.5,csize*0.176099041,m*3.09615385]) ################################################### #Teil 2 oberhalb der Fahrbahn corners=[(0,0,0),(xsize,0,0),(xsize,fsize,0),(0,fsize,0),(0,0,m*0.615384615),(xsize,0,m*0.615384615),(xsize,fsize,m*0.615384615),(0,fsize,m*0.615384615)] st7=rs.AddBox(corners) p2=rs.MoveObject(st7,[3,csize*0.17433047,m*3.26923077]) st8=rs.CopyObject(p2,[bsize-xsize*3,0,0]) #Mittelteil 2 corners=[(0,0,0),(bsize-xsize*2,0,0),(bsize-xsize*2,fsize-7,0),(0,fsize-7,0),(0,0,ysize),(bsize-xsize*2,0,ysize),(bsize-xsize*2,fsize-7,ysize),(0,fsize-7,ysize)] st9=rs.AddBox(corners) rs.MoveObject(st9,[3,csize*0.17609904,m*3.67307692]) ################################################## #Teil 3 oberhalb der Fahrbahn corners=[(0,0,0),(xsize,0,0),(xsize,fsize,0),(0,fsize,0),(0,0,m*0.615384615),(xsize,0,m*0.615384615),(xsize,fsize,m*0.615384615),(0,fsize,m*0.615384615)] st10=rs.AddBox(corners) p5=rs.MoveObject(st10,[4.5,csize*0.17433047,m*3.84615385]) st11=rs.CopyObject(p5,[bsize-xsize*4,0,0]) #Mittelteil 3 corners=[(0,0,0),(bsize-xsize*3,0,0),(bsize-xsize*3,fsize-7,0),(0,fsize-7,0),(0,0,ysize),(bsize-xsize*3,0,ysize),(bsize-xsize*3,fsize-7,ysize),(0,fsize-7,ysize)] st12=rs.AddBox(corners) rs.MoveObject(st12,[4.5,csize*0.17609904,m*4.25]) ################################################### #Stuetze 2 kopieren rs.CopyObjects((st1,st2,st3,st4,st5,st6,st7,st8,st9,st10,st11,st12,m3,sts,m1,sts1,m2),[0,ste,0]) ############################################################################ #Stahlseile ############################################################################ #Stahlseil Mitte sta=rs.AddCurve(([6,csize*0.176856998,m*4.42307692],[-5,csize*0.497726124,-n],[6,csize*0.823648307,m*4.42307692]),degree=2) stah=rs.MirrorObject(sta,[bsize/2,0,0],[bsize/2,csize,0],copy=True) #stah=rs.AddCurve(([bsize-6,350,bsize*8.51851852],[bsize+6,985,-bsize*2.48148148],[bsize-6,1630,bsize*8.51851852]),degree=2) stap=rs.AddPipe(sta,0,1) rs.AddPipe(stah,0,1) #Stahlseil Seite 1 und 2 sta1=rs.AddCurve(([0,0,n+dsize],[0,csize*0.0846387064,n],[6,csize*0.176351693,m*4.42307692]),2) pip1=rs.AddPipe(sta1,0,1) sta2=rs.MirrorObject(sta1,[bsize/2,10,0],[bsize/2,0,0],copy=True) pip2=rs.AddPipe(sta2,0,1) #Stahlseil 3 und 4 rp=rs.RotateObject((pip1,pip2),[bsize/2,csize*0.500252653,0],180,axis=None,copy=True) ############################################################################ #Pfeiler ############################################################################ c=rs.AddLine([0,0,n+dsize],[0,csize*0.17433047,n+dsize]) points=rs.DivideCurveLength(c,10) l=0 #L klein li_list=[] for k in points: line1=rs.AddLine(k,[k[0],k[1],k[2]+200]) sur= rs.AddPlaneSurface(rs.WorldZXPlane(), bsize*7.40740741,bsize*7.40740741) rs.MoveObject(sur, k) rs.MoveObject(sur, (0,0,-5)) curv_int=rs.CurveSurfaceIntersection(sta1,sur) if l>0: li=rs.AddLine(k,curv_int[0][2]) pipe1=rs.AddPipe(li,0,0.1) mir1=rs.MirrorObject(pipe1,[bsize/2,0,0], [bsize/2,o,0],copy=True) rs.MirrorObject([mir1,pipe1],[0,csize*0.5,0],[10,csize*0.5,0],copy=True) rs.DeleteObject(li) rs.DeleteObject(line1) rs.DeleteObject(sur) l=l+1 rs.DeleteObject(c) rs.DeleteObject(sta1) ########################################################### d=rs.AddLine([0,csize*0.179383527,n+dsize],[0,csize*0.821121779,n+dsize]) points=rs.DivideCurveLength(d,10) l=0 li_list=[0] for i in points: line=rs.AddLine(i, [i[0],i[1],i[2]+200]) sur1=rs.AddPlaneSurface(rs.WorldZXPlane(),bsize*7.40740741,bsize*7.40740741) rs.MoveObject(sur1,i) rs.MoveObject(sur1,(0,0,-10)) curv_int1=rs.CurveSurfaceIntersection(sta,sur1) if l>0: li=rs.AddLine(i,curv_int1[0][1]) pipe=rs.AddPipe(li,0,0.1) mir2=rs.MirrorObject(pipe, [bsize/2,0,0], [bsize/2,o,0],copy=True) rs.DeleteObject(li) rs.DeleteObject(line) rs.DeleteObject(sur1) l=l+1 rs.DeleteObject(d) rs.DeleteObject(sta) rs.EnableRedraw(True)