import rhinoscriptsyntax as rs # Clear the scene rs.DeleteObjects(rs.AllObjects()) rs.EnableRedraw(False) # Define initial points and parameters for the spiral and line point0 = (0, 0, 0.5) point1 = (0, 0, 5) pitch = 2 turns = 1 radius0 = 2.0 radius2 = 3 # 2. Seite radiuss0 = 3.5 radiuss2 = 4.5 point2 = (0,0,12) # Create the initial straight line crv1 = rs.AddLine([radius0 / 1.5, -6, 0], [radius0, 0, 0.5]) crv2 = rs.AddLine([radius2/1.5, -6, 0], [radius2, 0, 0.5]) # Create the spiral curve crvS1 = rs.AddSpiral(point0, point1, pitch, turns, radius0, radius0) crvS2 = rs.AddSpiral(point0, point1, pitch, turns, radius2, radius2) # Bridge Curve crvB1 = rs.AddCurve(([radius0, 0, 2.5],[radius0, 3, 2.5], [-radius2,9,3], [-radius2,25,3],[radiuss0,31,2.5], [radiuss0,34,2.5]),3) crvB2 = rs.AddCurve(([radius2, 0, 2.5],[radius2, 3, 2.5], [-radius0,9,3], [-radius0,25,3], [radiuss2,31,2.5], [radiuss2,34,2.5]),3) # Create the spirale curve on the other side crvS1o1 = rs.AddSpiral([0,34,2.5], [0,34,0.5], pitch, turns, radius2,radius2) crvS1o2 = rs.AddSpiral([0,34,2.5], [0,34,0.5], pitch, turns, radius0,radius0) # Create the initial straight line on the other side crv1o1 = rs.AddLine([-radius2 / 1.5, 40, 0], [-radius2, 34, 0.5]) crv1o2 = rs.AddLine([-radius0 / 1.5, 40, 0], [-radius0, 34, 0.5]) #Anfangsstuck2 crv3 = rs.AddLine([-radiuss0/1.5,-6,0],[-radiuss0,0,0.5]) crv4 = rs.AddLine([-radiuss2/1.5,-6,0],[-radiuss2,0,0.5]) #Spirale2 crvS3 = rs.AddSpiral(point0, point2, pitch, -turns, -radiuss0, -radiuss0) crvS4 = rs.AddSpiral(point0, point2, pitch, -turns, -radiuss2, -radiuss2) # Bridge Curve crvB3 = rs.AddCurve(([-radiuss0, 0, 2.5], [-radiuss0, 3, 3], [radius2,9,3.5], [radius2,25,3.5], [-radius0,31,3], [-radius0,34,2.5]),3) crvB4 = rs.AddCurve(([-radiuss2, 0, 2.5], [-radiuss2, 3, 3], [radius0,9,3.5], [radius0,25,3.5], [-radius2,31,3], [-radius2,34,2.5]),3) # Create the spirale curve on the other side crvS3o3 = rs.AddSpiral([0,34,2.5], [0,34,0.5], pitch, -turns, -radiuss2,-radiuss2) crvS4o4 = rs.AddSpiral([0,34,2.5], [0,34,0.5], pitch, -turns, -radiuss0,-radiuss0) # Create the initial straight line on the other side crv1o3 = rs.AddLine([radiuss2 / 1.5, 40, 0], [radiuss2, 34, 0.5]) crv1o4 = rs.AddLine([radiuss0 / 1.5, 40, 0], [radiuss0, 34, 0.5]) # Define a cross-section line for the sweep (2mm wide) line_for_sweep1 = rs.AddLine([radius0 / 1.5, -6, 0], [2, -6, 0]) line_for_sweep2 = rs.AddLine([-radiuss0 / 2.63, 40, 0], [-2, 40, 0]) line_for_sweep3 = rs.AddLine([-radiuss0 / 1.5, -6, 0], [-3, -6, 0]) line_for_sweep4 = rs.AddLine([radiuss0 / 1.5, 40, 0], [3, 40, 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]) # Delete the original curves to clean up rs.DeleteObjects([crv1, crvS1,crvB1,crvS1o1,crv1o1]) rs.DeleteObjects([crv2, crvS2,crvB2,crvS1o2,crv1o2]) rs.DeleteObjects([crv3, crvS3,crvB3,crvS3o3,crv1o3]) rs.DeleteObjects([crv4, crvS4,crvB4,crvS4o4,crv1o4]) # 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, 7, 2]) crvstr1c =rs.AddCurve(([-1, 7, 2],[-10,18,7],[0,27,2]),2) crvstrl2 = rs.AddLine([0, 27, 2], [radiuss0, 32, 0]) # structure2 crvstr2l1 = rs.AddLine([-radiuss0, 2, 0], [1, 8, 2]) crvstr2c =rs.AddCurve(([1, 8, 2],[10,18,7],[0,28,2]),3) crvstr2l2 = rs.AddLine([0, 28, 2], [-radiuss0, 32, 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, 32, 0], [radiuss0+0.3, 32, 0]) line_str_sweep3 = rs.AddLine([-radiuss0, 2, 0], [-radiuss0-0.3, 2, 0]) line_str_sweep4 = rs.AddLine([-radiuss0, 32, 0], [-radiuss0-0.3, 32, 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) #connection rods structure 1 crv1_rod03 = rs.AddCurve(([-2.6,24,3.35], [-1.85,22.5,3]),3) crv1_rod02 = rs.AddCurve(([-3.8,22,3.97], [-1.85,22.5,3]),3) crv1_rod01 = rs.AddCurve(([-3.8,22,3.97], [-2.3,20.5,3]),3) crv1_rod0 = rs.AddCurve(([-4.75,20,4.35], [-2.3,20.5,3]),3) crv1_rod1 = rs.AddCurve(([-4.75,20,4.35], [-2.55,19,3]),3) crv1_rod2 = rs.AddCurve(([-5.1,18,4.5], [-2.55,19,3]),3) crv1_rod3 = rs.AddCurve(([-5.1,18,4.5], [-2.65,17,3]),3) crv1_rod4 = rs.AddCurve(([-5.1,16,4.45], [-2.65,17,3]),3) crv1_rod5 = rs.AddCurve(([-5.1,16,4.45], [-2.6,15,3]),3) crv1_rod6 = rs.AddCurve(([-4.8,14,4.2], [-2.6,15,3]),3) crv1_rod7 = rs.AddCurve(([-4.8,14,4.2], [-2.45,13.5,3]),3) crv1_rod8 = rs.AddCurve(([-4,12,3.78], [-2.45,13.5,3]),3) crv1_rod9 = rs.AddCurve(([-4,12,3.78], [-2.2,12,3]),3) crv1_rod10 = rs.AddCurve(([-3,10,3.18], [-2.2,12,3]),3) rs.AddPipe(crv1_rod03,0,0.02) rs.AddPipe(crv1_rod02,0,0.02) rs.AddPipe(crv1_rod01,0,0.02) rs.AddPipe(crv1_rod0,0,0.02) rs.AddPipe(crv1_rod1,0,0.02) rs.AddPipe(crv1_rod2,0,0.02) rs.AddPipe(crv1_rod3,0,0.02) rs.AddPipe(crv1_rod4,0,0.02) rs.AddPipe(crv1_rod5,0,0.02) rs.AddPipe(crv1_rod6,0,0.02) rs.AddPipe(crv1_rod7,0,0.02) rs.AddPipe(crv1_rod8,0,0.02) rs.AddPipe(crv1_rod9,0,0.02) rs.AddPipe(crv1_rod10,0,0.02) #connection rods structure 2 crv2_rod03 = rs.AddCurve(([3,24,3.61], [2.1,22.5,3.5]),3) crv2_rod02 = rs.AddCurve(([4.15,22,4.1], [2.1,22.5,3.5]),3) crv2_rod01 = rs.AddCurve(([4.15,22,4.1], [2.45,20.5,3.5]),3) crv2_rod0 = rs.AddCurve(([4.75,20,4.42], [2.45,20.5,3.5]),3) crv2_rod1 = rs.AddCurve(([4.75,20,4.42], [2.6,19,3.5]),3) crv2_rod2 = rs.AddCurve(([5.1,18,4.5], [2.6,19,3.5]),3) crv2_rod3 = rs.AddCurve(([5.1,18,4.5], [2.65,17,3.5]),3) crv2_rod4 = rs.AddCurve(([5,16,4.4], [2.65,17,3.5]),3) crv2_rod5 = rs.AddCurve(([5,16,4.4], [2.51,15,3.5]),3) crv2_rod6 = rs.AddCurve(([4.5,14,4.1], [2.51,15,3.5]),3) crv2_rod7 = rs.AddCurve(([4.5,14,4.1], [2.31,13.5,3.5]),3) crv2_rod8 = rs.AddCurve(([3.7,12,3.6], [2.31,13.5,3.5]),3) crv2_rod9 = rs.AddCurve(([3.7,12,3.6], [1.98,12,3.5]),3) crv2_rod10 = rs.AddCurve(([2.31,10,2.9], [1.98,12,3.5]),3) rs.AddPipe(crv2_rod03,0,0.02) rs.AddPipe(crv2_rod02,0,0.02) rs.AddPipe(crv2_rod01,0,0.02) rs.AddPipe(crv2_rod0,0,0.02) rs.AddPipe(crv2_rod1,0,0.02) rs.AddPipe(crv2_rod2,0,0.02) rs.AddPipe(crv2_rod3,0,0.02) rs.AddPipe(crv2_rod4,0,0.02) rs.AddPipe(crv2_rod5,0,0.02) rs.AddPipe(crv2_rod6,0,0.02) rs.AddPipe(crv2_rod7,0,0.02) rs.AddPipe(crv2_rod8,0,0.02) rs.AddPipe(crv2_rod9,0,0.02) rs.AddPipe(crv2_rod10,0,0.02) rs.EnableRedraw(True)