Start A Program from Any Line with PathPilot

The “Set Start Line” function in PathPilot can save you a lot of time and effort when running a complex program. It allows you to start a program from a specific spot (e.g. to run a single operation in a complex program), or to stop a program run, make an adjustment, and continue from where you left off. This can help in a wide variety of situations like replacing a broken tool, adjusting a fixture location, or even making corrections or minor edits to a program.

“Set Start Line” can be used at many locations in a typical G-code program. Starting at the beginning of an operation (M0 / M1) is easy and reliable, and generally requires no special preparation. You can also start within an operation, at a rapid move, or even within a cut by using lead-in options (linear or plunge lead-in). With proper preparatory steps, the cut can smoothly resume from where it left off, almost as if the program had never stopped.

In the remainder of this blog post, you can see how to get the most out of this feature, along with tips and precautions to use it safely with advanced G-code features like subroutines.

PathPilot Set Start Line Demo

The 1100MX Manual (pg. 113) shows a common use of this feature:

Starting the program with a different tool in the spindle than the program calls for (like if your tool broke, which you've replaced, but you'd rather not edit the entire program or the tool table entry).

Set start line (restore with linear lead-in):

  • Perform a tool change (if required).
  • Rapids in X and Y, then Z to the current position.
  • Feed in a straight line to the start line position, using the feed rate in the Feed DRO.

Note: This option assumes that the current position is the lead-in position

As well as this example:

Quickly resuming work after stopping the program to make an adjustment to the machine setup (like clearing chips, removing an object, or turning on the coolant pump). Because the machine's already set up, you can position the tool near the stopping point.

Set start line (restore with Z plunge lead-in)Perform a tool change (as required). The machine rapids in Z to G30 clearance height, rapids in X and Y to the start line position, then feeds in Z to the start line position.

Since PathPilot 2.6, “Set Start Line” is compatible with cutter compensation. You can see this in action in simulation in PathPilot HUB (or on any Tormach Mill) with the demo program linked below. You can choose a start line where cutter compensation is active, and PathPilot will add a lead-in move to resume cutting along the compensated path. Download the NC file here.


  1. Load the program and set up Tool 1 with wear diameter (e.g. 0.005")
  2. Move the tool to the middle of the pocket (MDI: G0 X1.5 Y-1.5 Z0) as if you had stopped the program and jogged away from the wall.
  3. Set start line at line 52 (or something nearby) with linear lead-in move
  4. Watch the preview change to show the green entry move
  5. Click Cycle Start, and PathPilot will create a lead-in motion, then resume cutting along the cutter-compensated path.


Here are some quick insights that you may beneficial when using the Set Start Line function:

  • The tool always moves to the beginning position for the start line, even if it's a rapid move. This can look funny if you don't expect it. To see this in action:
    • Put the tool on top of a drill location with MDI: G0 X2.75 Y-.25 Z1 
    • Set start line at 183 and run
    • It will move first to X1.5, then rapid over to X2.75, even though it's right there.
  • For best results with cutter compensation:
    • Use the linear or Z-plunge lead-in move option
    • Jog the tool to a safe place at least one "comp" radius away from the start of the cut.
    • Choose a start line one or two lines before where you want to resume cutting. In general, the lead-in move intersects the first tool move partway along. 
  • Avoid calling set-start-line directly on a tool change line (M6 T# on mills, or T#### on lathes). Doing so will take extra time, because the preparation sequence will first switch to the previous tool (as if the program had run to this point), then execute the tool change back to the current tool,  
  • Set-start-line is not currently compatible with G10 in G-code programs. This is a rare use case (CAM and conversational doesn't use G10 typically). If you do need an explicit G10 command to change work / tool offsets, consider using one of these workarounds:. Workarounds if you need it
    • Wrap the call to G10 in a conditional block (see below)
o100 IF [#<_task> EQ 1]
(Only call G10 if program is actually running)
G10 ...
o100 endif
    • Use a separate G-code program for G10 changes


With these options and tips, you have more freedom in how you run programs and operations with your mill. PathPilot can be a powerful tool, and when you utilize all the features it has to offer, you’ll never want to use another control!