Table of Contents

Namespace Hi.NcMech.Workpieces

Classes

MeshedGeomBodyReport

One body of the stock as GetOrBuildMeshedGeom(CancellationToken, IProgress<IMessage>) built it: which leaf geometry it was, how big, whether it was the body the tree was built from or one united into it, and how many construction defect nodes its own build found.

MeshedGeomBuildReport

What the standing meshed geometry was made of, published by WorkpieceService beside the tree (BuiltMeshedGeomReport) and retired with it: the width it was built at, the reference size it records, whether it was read from a file, and – for a stock built from a shape – one row per body with the defect nodes of each, the base first in build order. A stock built from one body is one row; a stock built from several is the largest body built as the tree and every other body united into it by the cube-tree union, each body voxelized on its own, so bodies that overlap are a union and not a defect.

Workpiece

Workpiece configuration data model: a mechanism that owns its key assembly and root anchor and names which of its own anchors play the workpiece's three roles — FixtureMount, where the fixture (or the machine's worktable end) attaches; ProgramZeroAnchor, the frame the NC program is written in; and GeomAnchor, the frame the stock geometry is given in. The topology between them is free; the solid dictionary stays empty, as the meshed geometry belongs to WorkpieceService.

CreateDefault() makes the shape every workpiece had before the topology became free: the root anchor is the fixture mount, and one zero StaticTranslation branch leads from the geometry anchor to it and one to the program-zero anchor. A file without an embedded topology (no <Asmb>) seeds that shape and applies its legacy transformer elements — WorkpieceGeomToProgramZeroTransformer (or the inverse-read ProgramZeroToWorkpieceGeomTransformer) and WorkpieceGeomToFixtureBuckleTransformer (or the composed FixtureBuckleToProgramZeroTransformer / FixtureToGeomTransformer / WorkpieceBuckleToGeomZeroTranslation) — onto its branches; writing always embeds the topology (MechanismXml) and names the three roles by anchor Guid.

A role is a reference the workpiece checks for one thing only — the anchor is inside its assembly — so a workpiece can be built in any order and live in any incomplete form (a role unbound) without an exception; whether it is complete is judged where it matters: the equipment attaches only the bound roles, the run start names a missing one (RequireWorkpieceOnTheMachine), the web editor lists what is missing.

WorkpieceEditorDisplayee

Displayee for visualizing workpiece raw/ideal/meshed geometry and anchors.

WorkpieceEditorDisplayeeConfig

Configuration settings for workpiece editor display.

WorkpieceService

Runtime service for Workpiece.