Machine profiles file
Your machine profiles (machines.json in the settings folder) and the files machine export writes. Lengths in mm, feeds in mm/min.
Schema version 4. Older files load through Chipload’s migrations; this schema describes only the current version.
The file
| Field | Type | Required | Meaning |
|---|---|---|---|
default_machine | string or null | no | The name of the profile new projects start with. Null: the built-in values. |
machines | list of MachineProfile | yes | The profiles. |
schema_version | 4 | yes | The version of the file format. Chipload upgrades older files when it reads them, and refuses newer ones. |
written_by | string or null | no | The Chipload version that wrote the file. |
MachineProfile
One machine profile: a project’s machine values plus the spoilboard allowance.
| Field | Type | Required | Meaning |
|---|---|---|---|
gcode_units | Units | yes | The units its G-code is written in: mm (G21) or inch (G20). |
max_feed | number or null | no | The machine’s fastest feed, mm/min: higher feeds are refused, and the cycle time uses it for rapids. Null: unknown. |
max_overcut | number | yes | How far a new project’s cuts may go below the stock bottom, mm (stock.max_overcut). |
name | string | yes | The profile’s name, unique in the file. |
post | string | yes | The post-processor: grbl, linuxcnc, mach3, or the name of your own. |
safe_z | number | yes | The height for rapid moves sideways, mm above Z0. Above the stock top. |
spindle | Spindle | yes | The spindle’s direction: cw (M3) or ccw (M4). |
tool_change | ToolChange | yes | With several tools: files (one file per tool) or program (one file with tool changes). |
travel | Travel or null | no | The machine’s travel, mm. When set, a program that moves farther is refused. Null: not checked. |
uid | string | yes | What projects link the profile by: 16 lowercase hex digits, unique in the file, never changed (docs/specs/library-in-browser.md §2). |
work_zero | WorkZero | yes | The point of the drawing that becomes X0 Y0 in the G-code. Missing: the drawing’s origin. |
Spindle
-
"cw": M3 -
"ccw": M4
StockCorner
One of: "center", "bottom_left", "bottom_right", "top_left", "top_right".
ToolChange
How a job with several tools is written.
-
"files": One G-code file per tool group; the user changes the tool and sets Z zero between. -
"program": One file withT<n> M6at each change, for a sender that handles it.
Travel
| Field | Type | Required | Meaning |
|---|---|---|---|
x | number | yes | Travel along X, mm. |
y | number | yes | Travel along Y, mm. |
z | number | yes | Travel along Z, mm. |
Units
One of: "mm", "inch".
WorkZero
Where the G-code’s X0 Y0 is. The geometry never moves; only the output is translated.
-
object: The drawing’s own origin (the only choice before work_zero existed). An empty struct variant, not a unit one, so serde refuses stray fields here too.
-
object: A corner or the centre of the stock, as placed by
stock.origin. -
object: Any point, in drawing coordinates (mm).