# LinuxCNC

For LinuxCNC.

## What the file looks like

The file starts with comments naming the project, the machine and the tools, then:

```
%
G21 G90 G17 G94 G40 G49 G54
```

Millimetres are `G21`; a profile that outputs inches writes `G20` instead. The spindle starts with
`S{rpm} M3` followed by a dwell (`G4 P` seconds) for the spin-up time in your profile, unless spindle
control is set to none. Cutting moves are straight lines only — `G0` for rapids and `G1` for cuts,
never arcs — and every line is 80 characters or fewer.

The file ends with:

```
G0 Z{safe}
M5
M2
%
```

## Tool changes

- **One file per tool** works: run the files in order and change the tool between them.
- **M6 and pause** writes `T{n} M6` then `M0`.
- **M6 with G43** writes `T{n} M6 G43`, taking the length from the tool table for the tool just
  loaded.

## Before the first run

The `%` lines at the start and end are optional in LinuxCNC and harmless.

Set X and Y zero at the front-left corner of the piece and Z zero on the top of the stock, and run
the first file with the tool well above the work and a hand on the feed hold.
