Workpiece
The workpiece is the stock the machine cuts. Setting it up means giving it the shape it starts as and the shape it should end as, placing it in the machine, choosing how finely it is meshed, and saying what it is made of.
Where it is
The Equipment page, at /equipment, reached from the menu bar's Equipment switch. Select
the Workpiece branch of the Control Tree (/equipment?tree=equipment/mechanism/workpiece), the last
item under the Mechanism group. Whichever
item you select opens its panel in the editor column beside the tree, the canvas beside that draws
the workpiece in the shared equipment scene, and the Topology column to the right of the canvas
holds the workpiece's anchors and branches.
A project carries its workpiece with it, so there is nothing to load: the branch root has no load or save button. Its shapes, mesh and material are edited through its child items, which appear once a project with a workpiece is open — until then the root shows a summary and a caption asking for a project to be opened or created first, see Projects. Its anchors and the transformers between them are edited in the Topology column, and which anchor plays which role is bound on the root's own panel; attaching it to the machine is the anchor task below.
The branch with the root selected, at /equipment?tree=equipment/mechanism/workpiece. The root's panel
is a Raw and a Target type badge, a caption, and the Roles panel — Fixture Mount,
Program-Zero Anchor and Geometry Anchor, each bound to one of the workpiece's anchors — while
the canvas draws the stock sitting on its fixture, with the workpiece's anchors labelled at the corner
they are placed on.

The two shapes
Selecting Raw Geometry or Target Geometry opens the same Geometry type kind picker the fixture's geometry anchor carries in the Topology column — see Fixture — over a different list of kinds for each slot, headed on both by None (unset), which empties the slot. Picking a kind grows one child item under the slot, named after the kind — a file-backed kind adds its file in brackets — and the kind's editor is that child's panel, headed by a Transform picker. No Transform uses the shape as it is drawn; Static Translation, Static Rotation, Static Freeform, General Transform, Dynamic Translation or Dynamic Rotation moves or turns the shape into place by that transform without touching its numbers — the child item is renamed Transformed Box3d, the transform's own editor appears on an item under it, and No Transform takes it off again. The root's two badges read the same names.
| Slot | What it is | Kinds offered |
|---|---|---|
Raw Geometryequipment/mechanism/workpiece/raw-geometry |
The stock as it arrives, before the first cut. This is what the run removes material from. | Box3d, Cylindroid, StlFile, GeomCombination, MeshedGeomFile |
Target Geometryequipment/mechanism/workpiece/target-geometry |
The finished part. The cut result is compared against it when a geometry difference is run after the program. | Box3d, Cylindroid, StlFile |
MeshedGeomFile is a shape already meshed into a voxel cube-tree, stored as a .wct file. The
target must produce a surface mesh to be compared against, so that kind is not offered there; nor
can it be moved by a transform, so its item carries no Transform picker.
A new project has a workpiece but no raw geometry. Creating one leaves the Raw Geometry slot empty, so picking a kind there is the first thing this branch needs — until it is done there is nothing for a run to remove material from. The Target Geometry slot is optional: it is what a geometry comparison after the run measures against, and a run without one still cuts.
A mesh from a CAM tool may not be the shape its name suggests. A file exported from a CAM verification tool can be the stock before the operation, the in-process stock after it, or the design surface, and it is usually in the tool's own frame rather than the program's. Putting the finished surface in the Raw Geometry slot produces a run that finishes cleanly and cuts almost nothing: the program only grazes the surface it was written to leave, and no message says so. Test the mesh against the program before choosing a slot, and find program zero in its frame — that is Building the Workpiece from a Reference Mesh, which also builds a stock from a finished surface plus an allowance.
Where it sits
The two transforms that place the workpiece are the two branches leaving its Geometry Anchor, drawn in the Topology column's graph inside the Workpiece cluster; click one and the editor card below the graph shows its name, its two end anchors and, under Transformer, the kind picker with the picked kind's editor. Geometry Anchor → Fixture Mount puts the workpiece geometry on the fixture's workpiece mount — one of the named assembly anchors the scene is built on — or, on a project carrying no fixture, straight onto the machine's table mount. Geometry Anchor → Program-Zero Anchor places the program zero, the NC origin, relative to that geometry. Both start as a zero static translation, so a new project's geometry anchor sits on its fixture mount. The workpiece's anchors carry no geometry of their own — the shapes are the two child items above, so the editor card offers no geometry section on them. Setting the transforms is Anchors and Roles; which direction to align program zero in — and why that depends on planning a new job versus reproducing a recorded one — is Program Zero Alignment.
Which anchor plays which role is the Roles panel at the end of the root's panel: one row each for Fixture Mount, Program-Zero Anchor and Geometry Anchor, all required, each with a dropdown over the workpiece's own anchors and a pick button (tooltip Pick on the graph) that binds the next workpiece anchor clicked in the Topology column. Clicking the Workpiece cluster in the graph selects this root in the Control Tree. Under the rows the server's checks are listed — a required role not bound, one anchor playing two roles, an anchor no branch chain reaches from the root, a branch marked as an error term (only an axis or the spindle of the machine tool has one; a hand-edited file's mark is taken off with the Clear mark button on the branch's card) — or All checks pass. A run stops at its start, naming what to bind or connect, while no branch chain leads from the Geometry Anchor to the Program-Zero Anchor or while the workpiece does not reach the machine's worktable through its Fixture Mount. The Scene dropdown's Anchors group draws Workpiece Geometry Anchor, Program-Zero Anchor and, with Role Anchors, every bound role anchor of every part.
Mesh and material
Mesh (equipment/mechanism/workpiece/runtime) carries one field, Initial Resolution in mm, chosen
from a fixed powers-of-two ladder running from 0.0009765625 to 16. The panel's hint is that a
smaller resolution means a finer voxel grid and a slower run; what the number actually is and how to
pick it are Mesh Resolution. It seeds the run's machining
resolution when the project is opened.
A licence may cap how fine the mesh can be, relative to the workpiece: no finer than a set fraction
of the workpiece's longest side, taken to the coarser rung of the ladder. Under such a licence the
dropdown greys the rungs finer than that width rather than hiding them, with a caption naming the
width, the fraction and the longest side; a stored value finer than that stays selectable, and a
second caption says the stock is built at the licensed width instead. The cap is on building the
stock from a shape, so a MeshedGeomFile is not under it — a .wct is read at its own resolution
whatever the licence says. A value you never chose follows the licence rather than being clamped:
an edit of the setup — picking, replacing or moving the raw geometry, among others — lets an
Initial Resolution still at the 0.125 mm default, and the Machining Resolution commands directly
under the Mission root still at it, follow the coarser of that and the licensed width for the stock
as it now is — up for a larger stock, down again for a smaller one — so the number the project
saves is the number the run builds. A value you set yourself, the 0.125 mm included, is kept as
you set it while the project stays open, and clamped at the build with a warning in the run's
messages; and opening a project changes nothing by itself, so one saved finer than the licence runs
clamped, with the warning, until you set its values or the next edit of the setup lets the ones
still at the default follow. Once reopened, a 0.125 mm reads as the default again, whoever set it,
and follows at the next edit of the setup — set it again, or set another rung, to keep it.
Important
Keep the stored value on that ladder. The dropdown only offers ladder values, but a project arriving from an older generation, a script or a migration can carry something else — 0.4 mm is the one seen most often. Such a value is not a compromise between two rungs: the run rounds it to the next finer rung and uses that, so 0.4 mm builds the same 0.25 mm mesh at the same cost while the project reads as though it were coarser. Set it to the width it actually builds. The number then means what it says, here and in the Machining Resolution mission row that mirrors it.
The Initial Resolution is also the width a mission's stage-0 Record Meshed Geometry entry caches the stock at, and a cached stock does not follow a later change here — nor a change to the Raw Geometry — until that entry is reset or its file deleted; see A Mission That Resumes.
Material (equipment/mechanism/workpiece/material) is in the tree only while Show Physics Options is on in the Preference menu, because both files feed the milling physics. It holds two references to pre-prepared files. Each is a
file row whose Select dropdown offers Browse Resource…, plus Clear once a file is set —
unlike the file row on the Coolant item under Environment, these two do not offer a plain
Browse…, so the picker always opens in the shipped resource library, already in that resource's
own folder. Loading one fills the read-only Name and Note below it; Clear drops the file
reference but keeps what was loaded, and the project then saves it inline.
Workpiece Material selected on a demo project, at
/equipment?tree=equipment/mechanism/workpiece/material/workpiece-material. The file row holds the
material the project already carries, and the Name below it reads the name out of that file
while the Note is empty — both are read-only, because they belong to the file rather than to the
project.

- Workpiece Material (
.../material/workpiece-material) — a.WorkpieceMaterialfile: the physical properties the cutting-force and thermal physics read. A file whose thermal conductivity, density or specific heat is not a finite positive number, or lies outside the range of a solid — a density typed in kg/m³, say — is loaded as written, with a warning that names the constant. An element the file lacks is not given and takes no default: the material is loaded all the same and named (Material-ThermalConstants--NotGiven), and the thermal model is skipped for every tool — the temperatures stay at ambient and the wear at zero. - Cutting Parameter (
.../material/cutting-parameter) — an.mpfile: the milling-force coefficients for that material. One file serves the whole run, whichever cutters it uses.
The shipped files carry a .default marker in their names, and it is part of the name:
S45C.default.WorkpieceMaterial in the library's WorkpieceMaterial folder and S45C.default.mp
in its CuttingParameter folder, not S45C.WorkpieceMaterial or S45C.mp. The picker shows the
names as they are; a script or an HTTP call that names a shipped file has to spell the marker, so
list the folder rather than guessing — the Resource root of the
File Explorer, or, over HTTP,
GET /api/file-explorer/list?rootName=ResourceDir&relativePath=WorkpieceMaterial.
A pick from the library is copied into the project, not referenced where it lies. Loading a shipped file writes the project's own copy into the project folder, under the same folder and file name, and the project refers to that copy — so the project keeps its material when it is moved to another machine, and a later change to the library does not reach it.
See Also
- Anchors and Roles — the two branches above, and the order to place the machine, fixture and workpiece in
- Program Zero Alignment — which way to align the program origin once the workpiece is placed
- Fixture — what holds this workpiece on the table, and the mount its Fixture Mount attaches to
- Mesh Resolution — how to choose the Initial Resolution, and the thin wall a coarse mesh loses entirely
- Milling Force Parameter Training — where a cutting-parameter file comes from when no shipped one fits
- Building the Workpiece from a Reference Mesh — deciding whether a CAM mesh is the stock or the finished part, and building both slots from it
- Setup — the rest of the pre-simulation configuration