-- Draw Coil -- Lua script for Osmond PCB -- By Robert Rau -- On Oct. 14, 2013 CoilCenterX = 5*inch CoilCenterY = 5*inch CoilInnerRad = 0.1*inch CoilWireThick = 0.1*inch CoilWireSpace = 0.01*inch CoilTurns = 6 CoilDirection = 1 -- +1: clockwise, -1: counter clockwise CoilLayer = 1 StepsPerCircle=400 TwoPI = 2*3.1415926535 SpiralPitch = CoilWireThick + CoilWireSpace CurrentRadius = CoilInnerRad SpiralPitchInc = SpiralPitch/StepsPerCircle SpiralIndex = 0 set_layer(CoilLayer) move_pen_to( CoilCenterX+CoilInnerRad, CoilCenterY ) OldX = CurrentRadius OldY = 0 AbsoluteX = CoilCenterX + CoilInnerRad AbsoluteY = CoilCenterY for Theta = CoilDirection * TwoPI/StepsPerCircle, CoilDirection * TwoPI*CoilTurns, CoilDirection * TwoPI/StepsPerCircle do -- calc next point and draw it LocalX = (CurrentRadius*(math.cos(Theta))) LocalY = (CurrentRadius*(math.sin(Theta))) draw_pen_by ( LocalX-OldX, LocalY-OldY) -- set segment to proper width AbsoluteX = AbsoluteX + LocalX-OldX AbsoluteY = AbsoluteY + LocalY-OldY CoilTrace = get_nearest_trace( AbsoluteX, AbsoluteY ) CoilTrace:set_width(CoilWireThick) -- Prep for next iteration of loop OldX = LocalX OldY = LocalY SpiralIndex = SpiralIndex +1 CurrentRadius = CoilInnerRad+SpiralPitchInc*SpiralIndex end