#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 height=230 #total height (m) #Laenge nach den Stuetzen 345m bsize=27 #Fahrbahnbreite csize=1979 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=-1280 #Stuetzenentfernung x=(bsize-xsize)*math.sqrt(2) #33.94 ############################################################################ #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,bsize*2.48148148]) ############################################################################# #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,bsize*0.592592593),(bsize+8,0,bsize*0.592592593),(bsize+8,bsize+8,bsize*0.592592593),(0,bsize+8,bsize*0.592592593)] st=rs.AddBox(corners) m2=rs.MoveObject(st,[-4,332.5,0]) ################################################### #Teil unter der Fahrbahn corners=[(0,0,0),(xsize,0,0),(xsize,fsize,0),(0,fsize,0),(0,0,bsize*1.92592593),(xsize,0,bsize*1.92592593),(xsize,fsize,bsize*1.92592593),(0,fsize,bsize*1.92592593)] st=rs.AddBox(corners) sts1=rs.MoveObject(st,[0,345,bsize*0.592592593]) 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,345,bsize*0.740740741]) #Mittelteil 2 m1=rs.CopyObject(sts,[0,0,bsize-xsize]) rs.CopyObject((m3,sts,m1,sts1,m2),[0,1280,0]) ###################################################### #Verstrebungen 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)] st=rs.AddBox(corners) rs.MoveObject(st,[0,1625,bsize*1.57407407]) ts=rs.RotateObject(st,[0,1625,bsize*1.57407407],45,axis=[0,10,0],copy=False) msm=rs.MoveObject(ts,[bsize*0.0555555556,0,xsize]) msn=rs.MirrorObject(msm,[bsize/2,0,0],[bsize/2,10,bsize*3.7037037],copy=True) mso=rs.CopyObject([msm,msn],[0,0,bsize-xsize]) msu=rs.CopyObject((msm,msn),[0,-1280,0]) rs.CopyObject([msm,msn],[0,-1280,bsize-xsize]) #################################################### #Teil oberhalb der Fahrbahn corners=[(0,0,0),(xsize,0,0),(xsize,fsize,0),(0,fsize,0),(0,0,bsize*2.04),(xsize,0,bsize*2.04),(xsize,fsize,bsize*2.04),(0,fsize,bsize*2.04)] st1=rs.AddBox(corners) p4=rs.MoveObject(st1,[0,1625,bsize*2.55555556]) 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,1628.5,bsize*4.25925926]) ################################################### #Teil 1 oberhalb der Fahrbahn corners=[(0,0,0),(xsize,0,0),(xsize,fsize,0),(0,fsize,0),(0,0,bsize*1.77777778),(xsize,0,bsize*1.77777778),(xsize,fsize,bsize*1.77777778),(0,fsize,bsize*1.77777778)] st4=rs.AddBox(corners) p3=rs.MoveObject(st4,[1.5,1625,bsize*4.59259259]) 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,1628.5,bsize*5.96296296]) ################################################### #Teil 2 oberhalb der Fahrbahn corners=[(0,0,0),(xsize,0,0),(xsize,fsize,0),(0,fsize,0),(0,0,bsize*1.18518519),(xsize,0,bsize*1.18518519),(xsize,fsize,bsize*1.18518519),(0,fsize,bsize*1.18518519)] st7=rs.AddBox(corners) p2=rs.MoveObject(st7,[3,1625,bsize*6.2962963]) 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,1628.5,bsize*7.07407407]) ################################################## #Teil 3 oberhalb der Fahrbahn corners=[(0,0,0),(xsize,0,0),(xsize,fsize,0),(0,fsize,0),(0,0,bsize*1.18518519),(xsize,0,bsize*1.18518519),(xsize,fsize,bsize*1.18518519),(0,fsize,bsize*1.18518519)] st10=rs.AddBox(corners) p5=rs.MoveObject(st10,[4.5,1625,bsize*7.40740741]) st11=rs.CopyObject(p5,[bsize-12,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,1628.5,bsize*8.18518519]) ################################################### #Stuetze 2 kopieren rs.CopyObjects((st1,st2,st3,st4,st5,st6,st7,st8,st9,st10,st11,st12),[0,ste,0]) ############################################################################ #Stahlseile ############################################################################ #Stahlseil Mitte sta=rs.AddCurve(([6,350,bsize*8.51851852],[-5,985,-bsize*2.48148148],[6,1630,bsize*8.51851852]),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,bsize*2.62962963],[0,167.5,bsize*2.48148148],[6,349,bsize*8.51851852]),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,990,0],180,axis=None,copy=True) ############################################################################ #Pfeiler ############################################################################ c=rs.AddLine([0,0,bsize*2.62962963],[0,345,bsize*2.62962963]) points=rs.DivideCurveLength(c,10) for j in points: po=rs.AddPoint(j) 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,10,0],copy=True) rs.MirrorObject([mir1,pipe1],[0,989.5,0],[10,989.5,0],copy=True) rs.DeleteObject(line1) rs.DeleteObject(sur) l=l+1 ########################################################### d=rs.AddLine([0,355,bsize*2.62962963],[0,1625,bsize*2.62962963]) points=rs.DivideCurveLength(d,10) for i in points: rs.AddPoint(i) 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,10,0],copy=True) rs.DeleteObject(line) rs.DeleteObject(sur1) l=l+1 rs.EnableRedraw(True)