Toolbox

Spatial Operation Mapper

Mapping

Maps colliding hardware operations onto sheets via Solid-Solid intersection.

Docs for v1.0.24, the latest version.

ID

toolbox-mapping-spatial-operation-mapper

Group

Mapping

Plugin

Toolbox

Keywords

spatial
mapping
collision
intersect
sheet
operation
machining

Spatial Operation Mapper

Mapping

2 inputs, 1 output

Ports

Inputs

2

What the node takes in, from wires or typed values.

Sheets

Solid

Tree of sheet solids produced by SheetFactory.

Items

Any

Tree of placed hardware items (output of PlaceHardware).

Outputs

1

What the node gives out, to wire into other nodes.

Sheets

Solid

Input sheets with meta.machiningOps populated by colliding operations.

Creation method#

Two Options for Creating a Spatial Operation Mapper Node#

  1. Using Search List:
  • Double left-click in the workspace to open the search list.
  • Write the name or associated words for the node: spatial, mapper, mapping, collision, intersect.
  1. Select from Menu:
  • Navigate to Toolbox > Mapping > Spatial Operation Mapper.

Description#

Maps machining operations from placed hardware items onto the sheets they physically intersect. For every operation produced by upstream Place Hardware nodes the mapper clips the operation's cutting tool against the sheet's bounding box analytically — no boolean geometry is built. When the clip is non-empty a copy of the operation is recorded in that sheet's meta.machiningOps with its depth reduced to the length actually traversed inside the sheet — i.e. an op that originally cuts 10 mm deep through the air becomes an op of just 5 mm if only 5 mm of the tool actually sits inside the sheet. position is moved to the point where the tool enters the sheet, a box is trimmed to the part of its footprint that lies over the sheet (position, width and height updated), and a cone has diameter / tipDiameter re-read off its taper; direction is preserved as-is. A single operation that crosses several sheets is recorded on every sheet it touches with depth re-derived per sheet; an operation that does not collide with any sheet is dropped.

Inputs#

| Port | Type | Description | | --- | --- | --- | | Sheets | Solid tree | Tree of sheet solids produced by SheetFactory. The tree is flattened internally before mapping. | | Items | Any tree | Tree of placed hardware items (output of Place Hardware). Each item must carry machiningOps in world coordinates. |

Outputs#

| Port | Type | Description | | --- | --- | --- | | Sheets | Solid | The input sheets (geometry untouched, but promoted to placement-aware parts). Colliding operations are appended to each output sheet's meta.machiningOps, each with depth adjusted to match the portion of the tool that lies inside the sheet, and re-expressed in that sheet's local frame. |

Steps#

  1. Create a Spatial Operation Mapper Node.
  2. Connect the Sheets input to the output of one or more SheetFactory nodes.
  3. Connect the Items input to the placedItem output(s) of one or more Place Hardware nodes.
  4. Use the Sheets output as input for downstream nodes that consume meta.machiningOps (for example to drive CAM, BOM or visualisation).

Notes#

  • Collision detection is analytic: the tool is treated as the segment from position along -direction for depth, swept by its cross-section, and clipped against the sheet's bounding box. No cutting solid is built and no boolean is run, so cost is one bounding-box read per sheet plus arithmetic.
  • Each sheet is taken to be the solid box of its bounding box. That is exact for the axis-aligned panels Sheet Factory produces, 90° rotations included, and an over-estimate for a panel standing at an arbitrary angle.
  • The sheet is treated as solid stock. Material already removed from it — a cutout the tool passes through — is not modelled, and the operation is reported as cutting the full traversed length.
  • A cone tool is clipped along its taper, not just shortened. A Ø10 cone 20 mm long cut in half yields a Ø10→Ø5 frustum and a Ø5→Ø0 one, carried by diameter and tipDiameter. Straight primitives keep their diameter.
  • The clip keeps the tool's radius out of the depth: an 8 mm drill sunk 10 mm into a panel yields 10 mm. The result is exact whenever the tool axis is parallel to a world axis, which covers face and edge drilling on aligned panels; for an oblique axis depth is an upper bound.
  • Operations whose primitive is anything other than cylinder, box or cone, or whose direction has zero length, are silently skipped.
  • An operation that only grazes a sheet is dropped rather than recorded. A tool anchored exactly on a face, or touching a neighbouring panel edge-on, clips to a zero-length slice, and a cone can additionally clip down to nothing but its tip — neither builds as a solid, so both are treated as no collision.
  • meta.machiningOps is merged, not replaced: colliding operations are appended to whatever the sheet already carried. Chain multiple mappers carefully if you do not intend to accumulate.

See Also#

  • Sheet Factory
  • Place Hardware
  • Machining Visualizer

History

First documented in v1.0.24

Oct 20, 2026

Versions before it were published before changes were recorded.