Turn G-code vs free LinuxCNC lathe tools: Lathe Macros and LatheEasyStep
· ~6 min read
LinuxCNC already has free tools for conversational lathe programming. Before paying for Turn G-code it is fair to ask what they do and what you would get on top. This page compares Turn G-code with the two most complete free options: Lathe Macros by Andy Pugh and LatheEasyStep. The data for the free tools comes from their own source code and documentation, checked in October 2026. If something here is out of date, please tell us on the forum and we will fix it.
Contents
- The tools in short
- Comparison table
- When the free tools are enough
- Where Turn G-code is different
- Other options
The tools in short
Lathe Macros (Andy Pugh) - a set of G-code subroutines with a
GladeVCP “Cycles” tab for Axis and Gmoccapy: turning, facing,
boring, drilling, grooving, chamfer, radius and threading. LinuxCNC has
a sample configuration with them (sim.gmoccapy.lathe_configs.lathe_macros),
and the source is on GitHub (andypugh/LatheMacros, GPL-2.0). For your
own machine you add them to the configuration (the ini file). Threading
is done with one G76 line with fixed settings.
LatheEasyStep - a QtVCP panel for step-by-step lathe programming, usually as a tab in QtDragon (it can also start on its own through qtvcp). It covers facing, a free contour of lines, chamfers and radii with roughing and finishing (including G71/G72), DIN undercuts, threading with the full G76 parameter set, grooving and parting, drilling and keyway slotting, with a live X/Z preview and chuck safety zones. GPL-3.0, version 0.8.0 (September 2026), under active development; the author notes that the generated code must be checked in simulation and by a dry run.
Turn G-code - a separate program for Linux and Windows with 12 lathe cycles. Each cycle is a form with a live 2D toolpath simulator; the result is a plain G-code file for LinuxCNC. It is installed with a normal installer and does not change the LinuxCNC configuration. Commercial: a 15-day free trial, then a one-time $99.
Comparison table
| Lathe Macros | LatheEasyStep | Turn G-code | |
|---|---|---|---|
| Price, license | Free, GPL-2.0 | Free, GPL-3.0 | $99 once, 15-day trial |
| Where it runs | Tab in Axis / Gmoccapy | Tab in QtDragon or standalone qtvcp (Linux) | Separate program, Linux and Windows |
| Setup | Edit the LinuxCNC ini | QtVCP integration in the config | Installer, no config changes |
| Turning, facing, boring | Yes | Yes | Yes |
| Free contour (lines, chamfers, radii) | No | Yes, incl. G71/G72 | No, separate cycles |
| Chamfer and radius | Yes | In the contour | Yes, OD/ID, front/back |
| Grooving | Yes | Yes | Yes |
| Parting | - | Yes | Yes |
| Drilling | Yes | Yes, incl. peck | Yes |
| How the thread is cut | One G76 line, fixed settings | G76, full parameter set | Pass by pass with G33 (or G32) |
| Multi-start threads | No | No starts setting in G76 | Yes |
| Tapered thread over the full length | No | No (G76 tapers only the entry/exit) | Yes |
| Thread run-in / run-out | No | Through G76 E/L | Yes, adjustable |
| Taper | Angle field in turning | Via the contour | Separate cycle, OD/ID |
| Sphere, incl. concave | No | Arcs in the contour | Yes |
| Archimedean spiral on a face | No | No | Yes |
| Keyways (slotting, spindle stopped) | No | Yes | No |
| Preview | LinuxCNC preview after loading | Live X/Z, chuck safety zones | Live 2D simulator in the form |
| Code for other controls | No | No | G32/G33, pitch I/K/F, G7/G8, M-codes |
| Interface languages | English | German, English, Spanish | English, Russian |
“No” for the free tools means we did not find it in their code or documentation.
When the free tools are enough
- You only need simple shafts and bushings, the machine runs Axis or Gmoccapy, and you are comfortable with the ini file - try Lathe Macros.
- You need a free contour: a profile of lines, chamfers and radii, DIN undercuts, G71/G72 roughing - and the machine runs QtDragon. LatheEasyStep does this and Turn G-code does not.
- You want open source code that you can change yourself.
Where Turn G-code is different
- Threads. Multi-start threads, tapered threads over the full length (NPT/BSPT style), set run-in and run-out. Each pass is written out with G33, so the program does not depend on a G76 cycle. How this works is covered in Threading in LinuxCNC: G33 and G76 and Tapered threads on a CNC lathe.
- Cycles the free tools lack: a sphere including concave profiles and the Archimedean spiral on a face.
- Not tied to the machine or the GUI. The program can be prepared on an office Windows PC, and the file runs in Axis, Gmoccapy or QtDragon alike. Nothing in the LinuxCNC configuration has to change.
- Output settings. G7/G8 with one switch, G33 or G32 with the pitch word I, K or F, coolant codes, tool number, comments, M30 - see Turn G-code on different CNC controls.
- Checked on a machine. Most cycles - turning, facing, taper, sphere, threading, boring, chamfer and radius, the face spiral - have been tested by cutting metal, not only by air runs.
Other options
- NGCGUI comes with LinuxCNC: forms for your own subroutines in an Axis or Gmoccapy tab. The subroutines themselves have to be written or found.
- NativeCAM - a free add-on with mill and lathe operations inside the LinuxCNC interface; installed separately.
- CAM systems for complex parts - see the overview of CAM software for CNC lathes.
The best way to compare is on your own parts: the 15-day trial is free and needs no key.
