Skip to content

From/to curves

Toolpath

While Ovenbird uses the custom parameter Toolpath to store and pipeline the toolpath curves, it allows the mutual conversion between Toolpath and Grasshopper native Curves through Wrap Toolpath/ Unwrap Toolpath and thus combine their advantanges:

  • By using Toolpath, we benefit from the hierarchical data structure and integrated modification/optimization methods. We are also able to pipeline the geometry for analysis, visualization, and production purposes. You can internalize data as a Toolpath parameter for saving and sharing.
  • By using native Curves, we can apply native Rhino commands/Grasshopper components that we are more familiar with. We can even manually finetune them as needed.

The Ovenbird framework highlighting the mutual conversion

The Ovenbird framework highlighting the mutual conversion (single-material only)

The output of Unwrap Toolpath (curves/polyline, heights, tangents (1)) are organized following the hierarchical Toolpath data structure. More options in the right-click menu.

  1. To get the points we can explode the polylines.
{0} Toolpath
├─ {0;0} Toolpath Layer
│  ├─ {0;0;0} Toolpath Curve
│  │  ├─ Curve/Polyline
│  │  ├─ {0;0;0}[0] Point/Height/Tangent
│  │  ├─ {0;0;0}[1] Point/Height/Tangent
│  │  └─ ...
│  ├─ {0;0;1} Toolpath Curve
│  └─ ...
├─ {0;1} Toolpath Layer
└─ ...

Curves and points on each layer share the same set of planes, which are available from Toolpath Planes:

{0} Toolpath
├─ Base Plane
├─ {0;0} Toolpath Layer
│  ├─ Slicing Plane
│  └─ Nozzle Plane
├─ {0;1} Toolpath Layer
└─ ...

While the curve output of Unwrap Toolpath is a DataTree, the input of Wrap Toolpath can be either a DataTree organized in layers, or simply a flatten list. Wrap Toolpath is capable of sorting the curves into layers and regenerate the layer information. More options in the right-click menu.

Example File

7. IO and Visualization → (1) Unwrapping and Wrapping

Continuous Toolpath

Unwrap Continuous Toolpath unwraps a Continuous Toolpath as continuous curves, accompanied with the embedded Toolpath:

{0} Continuous Toolpath
├─ {0;0} Continuous Curve
│  ├─ {0;0}[0] Point/Plane/Height/Tangent
│  ├─ {0;0}[1] Point/Plane/Height/Tangent
│  └─ ...
├─ {0;1} Continuous Curve
├─ ... 
└─ Toolpath