<cutout />
Overview
The <cutout /> element removes material from a <board />
outline. Use cutouts to add interior slots, mounting reliefs, wire passages, or
other custom shapes without editing the overall board outline.
Cutouts are fabricated along with the board outline, so you can preview them in the PCB view and expect them to be milled or routed during manufacturing.
Supported Shapes
The shape prop determines how the cutout is interpreted:
rect(default) — remove a rectangular slot usingwidthandheight.circle— remove a circular opening usingradiusordiameter.polygon— remove a custom polygon defined bypoints.
All shapes support pcbX and pcbY to position the cutout relative to the
board's origin. Dimensions accept either numbers (treated as millimeters) or
strings like "3mm".
Examples
Multiple Cutout Shapes on One Board
This board uses three different cutout shapes: a rectangular USB notch, a cable pass-through circle, and a decorative polygon.
export default () => (
<board width="30mm" height="20mm">
<cutout shape="rect" width="5mm" height="3mm" pcbX="-10mm" pcbY="0mm" />
<cutout shape="circle" radius="2mm" pcbX="0mm" pcbY="0mm" />
<cutout
shape="polygon"
points={[
{ x: 5, y: -2 },
{ x: 8, y: 0 },
{ x: 5, y: 2 },
{ x: 6, y: 0 },
]}
pcbX="5mm"
pcbY="0mm"
/>
</board>
)
Rectangular Slot for Connectors
Rectangular cutouts are ideal for panel-mount connectors or finger slots. Width and height define the opening size.
export default () => (
<board width="25mm" height="18mm">
<chip name="U1" footprint="soic8" pcbX={0} pcbY={0} />
<cutout shape="rect" width="6mm" height="4mm" pcbX={-8} pcbY={0} />
</board>
)
Circular Cable Relief
Circular cutouts create pass-throughs for wires or alignment posts. Set either a
radius or diameter to size the opening.
export default () => (
<board width="24mm" height="16mm">
<cutout shape="circle" radius="1.5mm" pcbX={6} pcbY={-3} />
<cutout shape="circle" radius="1.5mm" pcbX={6} pcbY={3} />
</board>
)
Custom Polygon Cutout
Pass an array of { x, y } points to points for complex shapes. Points are
specified in millimeters relative to the cutout's local origin, which is then
positioned with pcbX and pcbY.
export default () => (
<board width="28mm" height="22mm">
<cutout
shape="polygon"
points={[
{ x: -4, y: -2 },
{ x: 4, y: -2 },
{ x: 6, y: 0 },
{ x: 4, y: 2 },
{ x: -4, y: 2 },
]}
pcbX={0}
pcbY={0}
/>
</board>
)