Two Places a Machine Lives
A machine definition is the post-processor: the G-code dialect, number formatting, header and footer, canned cycles, and everything else that decides what the exported file actually says. In PureCut CNC that definition exists in two places, and knowing which one you are looking at explains almost everything about how machines behave.
| Application library | Project snapshot | |
|---|---|---|
| Holds | Every built-in machine shipped with your installed version, plus your own saved machines (My Machines). | Exactly one definition — the machine that project is set up for. |
| Stored in | The application, not any project file. It follows you from project to project. | The .camj file itself. It travels with the project. |
| Used for | Choosing, editing, importing, and exporting machine definitions. | Generating G-code. The embedded snapshot is what the exporter reads. |
| Editing it | Never dirties the open project and never enters its undo history. | Always an explicit action — it dirties the project and is undoable. |
My Machines
My Machines is your personal, application-wide list of machine definitions. Add a machine once and it is available in every project you open afterwards — it is no longer trapped in whichever project you happened to create it in.
To get there, select the Project node in the feature tree and click Manage machines… below the Machine dropdown. The Manage Machines dialog groups definitions three ways:
- Built-in machines — the definitions shipped with the version of PureCut CNC you are running (Grbl, GrblHAL, LinuxCNC, Mach3, UCCNC, Generic). They are read-only; Duplicate one to get an editable copy.
- My Machines — your saved custom definitions. Edit, duplicate, import, export, or remove them here.
- In this project — the snapshot embedded in the open project.
Because bundled definitions are read from the current build rather than copied into each project, a machine added to a new release reaches your existing projects as soon as you update the app.
Status Badges
With the Project node selected, the properties panel shows the selected machine's status directly under the dropdown:
| Badge | Meaning |
|---|---|
| Built-in / Custom | Where the definition originally came from, followed by the output file extension. |
| Update available | The project's snapshot and the library entry with the same ID differ. Nothing has changed on its own — see Update Notices. |
| Not in My Machines | The project carries a machine your library has never seen — typically a project someone shared with you. It still exports normally. Use Save to My Machines in the Manage Machines dialog if you want to keep it. |
Update Notices
When you open a project, PureCut CNC compares its embedded snapshot with the library entry that shares its ID. If they differ — because the built-in definition changed in a newer release, or because you have since edited your own copy — a non-blocking notice appears: Machine definition update available. It offers three choices, and none of them happens by itself:
| Choice | What it does |
|---|---|
| Review update | Opens the Manage Machines dialog focused on that machine, listing exactly which fields differ — axis mapping, number formatting, program header/footer, canned cycles, and so on — so you can decide with the differences in front of you. |
| Keep project copy | Dismisses the notice. The project keeps the definition it was saved with and its G-code output is unchanged. |
| Update project copy | Replaces the project's snapshot with the library version. This edits the project — it marks it dirty and can be undone. |
Sharing a Project
Because the definition travels inside the .camj file, a project you send to
someone else stays exportable on a machine their installation has never heard of. They see
a Not in My Machines badge, and the G-code they export is identical
to the G-code you would export from the same project.
If they want that machine for their own future projects, Save to My Machines lifts the embedded definition into their library. Nothing forces them to — a project-only machine is a perfectly normal state, not an error to resolve.
Older Projects
Projects saved before this change stored a copy of the entire machine library inside the file. When you open one, it is compacted automatically: the project keeps only the definition it actually uses, and any custom machines it carried are merged into My Machines so they are not lost. Files get noticeably smaller as a side effect.