//Wheels nSpokes = 10 TorRadius = 2 Torradius = 0.2 SpokeRadius = 0.05 SpokeHeight = 4 SpokeRotation = 360/nSpokes Wheel = torus(TorRadius,Torradius) Spoke = cylinder(SpokeRadius,SpokeHeight) for(i=1;i<=nSpokes;i++){ /* Wheel.add(Spoke); */ Wheel = Wheel.add(Spoke); Wheel.rotateZ(SpokeRotation); } Wheel2 = Wheel.clone() Wheel2.rotateX(90).moveX(-7) Wheel2.display('black') Wheel.rotateX(90).moveX(0.3) Wheel.display('black') //Frame Cyl1Radius = 0.15 Cyl1Height = 4.5 Cyl2Radius = 0.15 Cyl2Height = 5 Cyl3Radius = 0.1 Cyl3Height = 3.5 Cyl4Radius = 0.1 Cyl4Height = 4.2 Cyl5Radius = 0.1 Cyl5Height = 3 Cyl6Radius = 0.08 Cyl6Height = 3.21 FramePart1 = cylinder(Cyl1Radius,Cyl1Height) FramePart1.rotateX(90).rotateY(27).moveZ(1.8).moveX(-6) FramePart2 = cylinder(Cyl2Radius,Cyl2Height) FramePart2.rotateX(90).rotateY(-35).moveX(-3.8).moveZ(1.3) FramePart3 = cylinder(Cyl3Radius,Cyl3Height) FramePart3.rotateX(90).rotateY(-75).moveX(-3.5).moveZ(3) FramePart4 = cylinder(Cyl4Radius,Cyl4Height) FramePart4.rotateX(90).rotateY(10).moveX(-2).moveZ(1.5) FramePart5 = cylinder(Cyl5Radius,Cyl5Height) FramePart5.rotateX(90).rotateY(-105).moveX(-1).moveZ(-0.3) FramePart6 = cylinder(Cyl6Radius,Cyl6Height) FramePart6.rotateX(90).rotateY(-40).moveX(-0.85).moveZ(1.2) FinalFrame = FramePart1.add(FramePart2).add(FramePart3).add(FramePart4).add(FramePart5).add(FramePart6) FinalFrame.display('aqua') //Seat s = polygon([[0, 0], [0.1, -0.2, -0.2], [0.2, -0.25, -0.3], [0.7, -0.35], [0.9, -0.4, 0.6], [1.1, -0.6, 0.9], [1.4, -0.8, -0.4], [1.7, -0.6, -0.4], [1.9, 0, -1], [1.7, 0.6, -1], [1.4, 0.8,-0.4], [1.1, 0.6, - 0.4], [0.9, 0.4, 0.9], [0.7, 0.35, 0.6], [0.2, 0.25], [0.1, 0.2, -0.3], [0, 0, -0.2]]); se = extrudeShape(s,1) //se.display(); //seat.display() sv = polygon([[-0.08,-0.15],[0.15,0.6333,-1.5],[0,1.2666,-1],[0.15,1.85,0.5],[0.35,1.95],[0.2,1.2666,-0.7],[0.32,0.6333,1.5],[0.15,-0.075,1.5]]) sve = extrudeShape(sv, 2); sve.rotateY(90); sve.moveX(-2); sve.rotateZ(90); sve.moveY(1); sve.moveZ(0.6); sve.moveX(1.85); //sve.display() finalseat = se.intersect(sve); finalseat.display('black') finalseat.moveZ(3.2); finalseat.moveX(-2.8); //Handlebars Handle1Radius = 0.1 Handle1Height = 0.5 Handle2Radius = 0.1 Handle2Height = 0.9 Handle3Radius = 0.13 Handle3Height = 2.8 Handle4Radius = 0.17 Handle4Height = 1 Handle5Radius = 0.17 Handle5Height = 1 HandlePart1 = cylinder(Handle1Radius,Handle1Height) HandlePart1.rotateZ(90).moveZ(3.8).moveX(-5.11) HandlePart2 = cylinder(Handle2Radius,Handle2Height) HandlePart2.rotateX(90).rotateY(-3).moveZ(4.2).moveX(-5.28) HandlePart3 = cylinder(Handle3Radius,Handle3Height) HandlePart3.moveZ(4.58).moveX(-5.3) HandlePart4 = cylinder(Handle4Radius,Handle4Height) HandlePart4.moveZ(4.58).moveX(-5.3).moveY(-0.9) HandlePart5 = cylinder(Handle5Radius,Handle5Height) HandlePart5.moveZ(4.58).moveX(-5.3).moveY(0.9) FinalHandlebars = HandlePart1.add(HandlePart2).add(HandlePart3).add(HandlePart4).add(HandlePart5) FinalHandlebars.display('black') //Pedals PedalRodLength = 2.4 PedalRodHeight = 0.2 PedalRodWidth = 0.2 PedalRod = cube(PedalRodLength,PedalRodHeight,PedalRodWidth) PedalRod.rotateZ(90).moveX(-2.4).moveZ(-0.65) PedalRod.display('black')