Table of Contents

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 Workpiece branch selected, its panel showing the Raw and Target type badges over the Roles panel with Fixture Mount, Program-Zero Anchor and Geometry Anchor rows, and its stock drawn on the fixture in the equipment scene

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 Geometry
equipment/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 Geometry
equipment/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.

The Workpiece Material item of the Control Tree selected, its panel showing a Select dropdown beside a file path reading Al6061T6.WorkpieceMaterial, a read-only Name field reading Al6061T6 and an empty read-only Note field

  • Workpiece Material (.../material/workpiece-material) — a .WorkpieceMaterial file: 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 .mp file: 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