import rhinoscriptsyntax as rs # Clear the scene rs.DeleteObjects(rs.AllObjects()) rs.EnableRedraw(False) #Height Parameters hgt_initial_l = 0.5 #height for first intial lines hgt_spiral = 5 #end height of Spiral hgt_Bridge_c = hgt_spiral/2 #first height of Bridge Curve hgt_Bridge_c2 = hgt_spiral/2+0.5 #second height of Bridge Curve hgt_Bridge_c3 = hgt_spiral/2+1 #third height of Bridge Curve #Parameters for Spirales pitch = 2 turns = 1 radius0 = 2.0 radius2 = 3 #Paramters for Distances end_dist_Spirale = 34 #End distance of Spirale dist_Bridge_point_1 = end_dist_Spirale - end_dist_Spirale +3 #First Distance point of Bridge Curve dist_Bridge_point_2 = dist_Bridge_point_1 +6 #Second Distance point of Bridge Curve dist_Bridge_point_3 = end_dist_Spirale/2 + 8 #Third Distance point of Bridge Curve dist_Bridge_point_4 = end_dist_Spirale -3 #Fourth Distance point of Bridge Curve dist_initail_line = 6 #Distance of walkin path to spirale dist_initail_line_o=end_dist_Spirale+dist_initail_line #Distance of walkin path to spirale other side dist_structrue_end = end_dist_Spirale-2 #End of Structure Distance dist_structrue_point1 = dist_Bridge_point_1 +4 #Firts Distance Point Structure dist_structrue_point2 = end_dist_Spirale/2 +1 #Second Distance Point Structure dist_structrue_point3 = end_dist_Spirale -7 #Fird Distance Point Structure # 2. Seite radiuss0 = 3.5 radiuss2 = 4.5 point2 = (0,0,12) # Create the initial straight line crv1 = rs.AddLine([radius0 / 1.5, -dist_initail_line, 0], [radius0, 0, hgt_initial_l]) crv2 = rs.AddLine([radius2/1.5, -dist_initail_line, 0], [radius2, 0, hgt_initial_l]) # Create the spiral curve crvS1 = rs.AddSpiral([0, 0, hgt_initial_l], [0, 0, hgt_spiral], pitch, turns, radius0, radius0) crvS2 = rs.AddSpiral([0, 0, hgt_initial_l], [0, 0, hgt_spiral], pitch, turns, radius2, radius2) # Bridge Curve crvB1 = rs.AddCurve(([radius0, 0, hgt_Bridge_c],[radius0, dist_Bridge_point_1, hgt_Bridge_c], [-radius2,dist_Bridge_point_2,hgt_Bridge_c2], [-radius2,dist_Bridge_point_3,hgt_Bridge_c2],[radiuss0,dist_Bridge_point_4,hgt_Bridge_c], [radiuss0,end_dist_Spirale,hgt_Bridge_c]),3) crvB2 = rs.AddCurve(([radius2, 0, hgt_Bridge_c],[radius2, dist_Bridge_point_1, hgt_Bridge_c], [-radius0,dist_Bridge_point_2,hgt_Bridge_c2], [-radius0,dist_Bridge_point_3,hgt_Bridge_c2], [radiuss2,dist_Bridge_point_4,hgt_Bridge_c], [radiuss2,end_dist_Spirale,hgt_Bridge_c]),3) # Create the spirale curve on the other side crvS1o1 = rs.AddSpiral([0,end_dist_Spirale,hgt_Bridge_c], [0,end_dist_Spirale,hgt_initial_l], pitch, turns, radius2,radius2) crvS1o2 = rs.AddSpiral([0,end_dist_Spirale,hgt_Bridge_c], [0,end_dist_Spirale,hgt_initial_l], pitch, turns, radius0,radius0) # Create the initial straight line on the other side crv1o1 = rs.AddLine([-radius2 / 1.5, dist_initail_line_o, 0], [-radius2, end_dist_Spirale, hgt_initial_l]) crv1o2 = rs.AddLine([-radius0 / 1.5, dist_initail_line_o, 0], [-radius0, end_dist_Spirale, hgt_initial_l]) #Anfangsstuck2 crv3 = rs.AddLine([-radiuss0/1.5,-dist_initail_line,0],[-radiuss0,0,hgt_initial_l]) crv4 = rs.AddLine([-radiuss2/1.5,-dist_initail_line,0],[-radiuss2,0,hgt_initial_l]) #Spirale2 crvS3 = rs.AddSpiral([0, 0, hgt_initial_l], [0, 0, hgt_spiral], pitch, -turns, -radiuss0, -radiuss0) crvS4 = rs.AddSpiral([0, 0, hgt_initial_l], [0, 0, hgt_spiral], pitch, -turns, -radiuss2, -radiuss2) # Bridge Curve crvB3 = rs.AddCurve(([-radiuss0, 0, hgt_Bridge_c], [-radiuss0, dist_Bridge_point_1, hgt_Bridge_c2], [radius2,dist_Bridge_point_2,hgt_Bridge_c3], [radius2,dist_Bridge_point_3,hgt_Bridge_c3], [-radius0,dist_Bridge_point_4,hgt_Bridge_c2], [-radius0,end_dist_Spirale,hgt_Bridge_c]),3) crvB4 = rs.AddCurve(([-radiuss2, 0, hgt_Bridge_c], [-radiuss2, dist_Bridge_point_1, hgt_Bridge_c2], [radius0,dist_Bridge_point_2,hgt_Bridge_c3], [radius0,dist_Bridge_point_3,hgt_Bridge_c3], [-radius2,dist_Bridge_point_4,hgt_Bridge_c2], [-radius2,end_dist_Spirale,hgt_Bridge_c]),3) # Create the spirale curve on the other side crvS3o3 = rs.AddSpiral([0,end_dist_Spirale,hgt_Bridge_c], [0,end_dist_Spirale,hgt_initial_l], pitch, -turns, -radiuss2,-radiuss2) crvS4o4 = rs.AddSpiral([0,end_dist_Spirale,hgt_Bridge_c], [0,end_dist_Spirale,hgt_initial_l], pitch, -turns, -radiuss0,-radiuss0) # Create the initial straight line on the other side crv1o3 = rs.AddLine([radiuss2 / 1.5, dist_initail_line_o, 0], [radiuss2, end_dist_Spirale, hgt_initial_l]) crv1o4 = rs.AddLine([radiuss0 / 1.5, dist_initail_line_o, 0], [radiuss0, end_dist_Spirale, hgt_initial_l]) # Define a cross-section line for the sweep (2mm wide) line_for_sweep1 = rs.AddLine([radius0 / 1.5, -dist_initail_line, 0], [radius0, -dist_initail_line, 0]) line_for_sweep2 = rs.AddLine([-radiuss0 / 2.63, dist_initail_line_o, 0], [-radiuss0/1.75, dist_initail_line_o, 0]) line_for_sweep3 = rs.AddLine([-radiuss0 / 1.5, -dist_initail_line, 0], [-radiuss0/1.167, -dist_initail_line, 0]) line_for_sweep4 = rs.AddLine([radiuss0 / 1.5, dist_initail_line_o, 0], [radiuss0/1.167, dist_initail_line_o, 0]) # Join the created curves joined_curve1 = rs.JoinCurves([crv1, crvS1,crvB1,crvS4o4,crv1o4]) joined_curve2 = rs.JoinCurves([crv2, crvS2,crvB2,crvS3o3,crv1o3]) joined_curve3 = rs.JoinCurves([crv3, crvS3,crvB3,crvS1o2,crv1o2]) joined_curve4 = rs.JoinCurves([crv4, crvS4,crvB4,crvS1o1,crv1o1]) # Sweep the cross-section along the connected (joined) curve rs.AddSweep2([joined_curve1, joined_curve2],[line_for_sweep1,line_for_sweep4], False) rs.AddSweep2([joined_curve3, joined_curve4],[line_for_sweep3,line_for_sweep2], False) # Handlauf path = rs.AddLine([0,0,0], [0,0,0.3]) srf = rs.ExtrudeCurve([joined_curve1] , path) srf1 = rs.ExtrudeCurve([joined_curve2] , path) srf2 = rs.ExtrudeCurve([joined_curve3] , path) srf3 = rs.ExtrudeCurve([joined_curve4] , path) # structure1 crvstr1l1 = rs.AddLine([radiuss0, 1.5, 0], [-1, dist_structrue_point1, 2]) crvstr1c =rs.AddCurve(([-1, dist_structrue_point1, 2],[-10,dist_structrue_point2,7],[0,dist_structrue_point3,2]),2) crvstrl2 = rs.AddLine([0, dist_structrue_point3, 2], [radiuss0, dist_structrue_end, 0]) # structure2 crvstr2l1 = rs.AddLine([-radiuss0, 2, 0], [1, dist_structrue_point1, 2]) crvstr2c =rs.AddCurve(([1, dist_structrue_point1, 2],[10,dist_structrue_point2,7],[0,dist_structrue_point3,2]),3) crvstr2l2 = rs.AddLine([0, dist_structrue_point3, 2], [-radiuss0, dist_structrue_end, 0]) #Join structure curves joined_str1_curve1 = rs.JoinCurves([crvstr1l1,crvstr1c,crvstrl2]) joined_str2_curve1 = rs.JoinCurves([crvstr2l1,crvstr2c,crvstr2l2]) #sweep lines line_str_sweep1 = rs.AddLine([radiuss0, 1.5, 0], [radiuss0+0.3, 1.5, 0]) line_str_sweep2 = rs.AddLine([radiuss0, dist_structrue_end, 0], [radiuss0+0.3, dist_structrue_end, 0]) line_str_sweep3 = rs.AddLine([-radiuss0, 2, 0], [-radiuss0-0.3, 2, 0]) line_str_sweep4 = rs.AddLine([-radiuss0, dist_structrue_end, 0], [-radiuss0-0.3, dist_structrue_end, 0]) #Sweep structure 1 & 2 rs.AddSweep1(joined_str1_curve1,(line_str_sweep1, line_str_sweep2),False) rs.AddSweep1(joined_str2_curve1,(line_str_sweep3, line_str_sweep4),False) #Stangen rad = 0.02 points1=rs.DivideCurve(crvB1, 20) points2=rs.DivideCurve(crvstr1c, 12) points3=rs.DivideCurve(crvB3, 20) points4=rs.DivideCurve(crvstr2c, 12) for i in range(11): line1=rs.AddLine(points1[i+5], points2[i]) line2=rs.AddLine(points1[i+5], points2[i+1]) rs.AddPipe(line1,0, rad) rs.AddPipe(line2,0, rad) for i in range(11): line1=rs.AddLine(points3[i+5], points4[i]) line2=rs.AddLine(points3[i+5], points4[i+1]) rs.AddPipe(line1,0, rad) rs.AddPipe(line2,0, rad) rs.EnableRedraw(True)