#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 x=(bsize-xsize)*math.sqrt(2) #33.94 #y=(bsize+3) ############################################################################ #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]) #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]) ###################################################### #Verstrebungen #if i = Quadrat corners=[(0,0,-xsize/2),(x,0,-xsize/2),(x,fsize,-xsize/2),(0,fsize,-xsize/2),(0,0,xsize/2),(x,0,xsize/2),(x,fsize,xsize/2),(0,fsize,xsize/2)] #if not Quadrat #corners=[(0,0,-xsize/2),(y,0,-xsize/2),(y,fsize,-xsize/2),(0,fsize,-xsize/2),(0,0,xsize/2),(y,0,xsize/2),(y,fsize,xsize/2),(0,fsize,xsize/2)] st=rs.AddBox(corners) rs.MoveObject(st,[0,csize*0.821121779,42.5]) ts=rs.RotateObject(st,[0,csize*0.821121779,42.5],45,axis=[0,10,0],copy=False) msm=rs.MoveObject(ts,[1.5,0,3]) msn=rs.MirrorObject(msm,[bsize/2,0,0],[bsize/2,10,100],copy=True) mso=rs.CopyObject([msm,msn],[0,0,bsize-xsize]) msu=rs.CopyObject((msm,msn),[0,-csize*0.646791309,0]) rs.CopyObject([msm,msn],[0,-csize*0.646791309,bsize-xsize]) #################################################### #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)