Skip to main content
On this page▾

Grain matching

A drawer front over two doors only looks like one piece of timber if the three parts come off the board next to each other, in the order they sit on the cabinet. Grain matching does exactly that: you group the parts into a set, lay them out the way they are fitted, and CutOptim cuts the set as one block — the parts side by side or one above the other, exactly one saw gap apart, all with the same grain. The figure of the veneer runs on from the drawer front into the doors.

Grain matching works in 2D Panel mode. A set is built from the rows of your Parts (2D) table. It has no effect in 1D Linear, Wood or Nesting mode.

Setting the grain direction of a single part does not need this feature. Click the Grain icon at the end of the part’s row until its lines run along the side the grain must follow — on every plan, guests included. Grain matching is for parts that must continue each other’s figure. Inside a set the grain of the set decides; the part’s own Grain icon still applies to any extra copies of that part that are not in the set.


An example

A kitchen base cabinet front in inches, cut with a ⅛″ saw kerf:

Part Size Qty
Drawer front 48 ⅛ × 6 1
Door 24 × 30 2

48 ⅛ = 24 + ⅛ + 24: the drawer front is exactly as wide as the two doors and the gap between them. As a set with the drawer front in row 1 and the two doors in row 2, the block is 48 ⅛ × 36 ⅛ (30 + ⅛ + 6). It is placed on the sheet as one piece, and after cutting you have the drawer front with the two doors directly under it — the figure runs across all three. The parts get the position codes A1 (drawer front), A2 (left door) and A3 (right door).


Creating a set

  1. 1

    Enter the parts

    Add the panels to the Parts (2D) table as usual. A set refers to existing rows: name, size, edge banding and material always come from the table, so you change a size in one place and the set follows.

  2. 2

    Open grain matching

    Under the Parts (2D) table, click the **Grain matching** strip (“Keep the grain flowing across drawer fronts and doors”), or **+ New set** when you already have one. The editor opens. The strip appears once grain matching looks useful for the job: a part has a grain direction, a part is named like a door, drawer or front, or a furniture template with fronts was inserted. Signed in, **Settings → More → Grain Matching → Create a set** works at any time. If you hid the strip with its **✕**, first turn on the **Grain matching** switch above the table (next to **Edge Banding**).

  3. 3

    Name it and say how many

    Give the set a name you will recognise at the saw (“Base cabinet A”). **Quantity · how many of this set** is the number of identical copies — three identical cabinets = 3. The parts table must hold enough parts for every copy; the check below tells you if not.

  4. 4

    Lay the parts out

    Under **Layout**, choose **Rows** (each row is a line of parts side by side, rows stacked top to bottom) or **Columns** (each column is a stack of parts, columns side by side). Use **+ Add part…** at the end of a row to pick a part from your list, **+ Add row** / **+ Add column** for the next line. Drag a part chip to reorder it, or use ← and → on the keyboard; the arrows on a line move the whole line.

  5. 5

    Set the grain of the set

    **Along height** (default): the figure runs top to bottom through every part and the set is never turned on the sheet. **Along width**: the figure runs left to right. **Free**: no grain — the set may be turned 90° to fit better, the parts still stay together.

  6. 6

    Check, then Done

    The **Checks** column must be green or explained (see below). Choose what happens if the set does not fit on one sheet, then click **Done**. Changes apply as you make them; **Delete set** removes it and can be undone for a few seconds.

The editor shows the set two ways, side by side with the controls: Cabinet front (the parts as they will be fitted, with their position codes and a continuous grain texture) and On the sheet (the block on one of your stock sheets, with the sheet’s grain arrow — this is where you see why a set does not fit).

A set needs at least two parts. A part row can belong to one set, but it can appear several times inside that set (Door, Door). The A mark under the row number in the parts table shows which rows are in a set; clicking it opens the set.

Put in a set only what is seen side by side on the finished piece. A set is a large rectangle the optimizer cannot break up, so it usually costs more board than the same parts packed freely.


The checks and their one-click fixes

FeatureTypeDescription
Row widths match / Column heights matchcheck + fixEach line of the set, measured as it is FITTED: the parts plus the install gap between them. If the drawer front is 1/16 too narrow for the two doors under it, the check names the difference and offers a button that sets the part to the right size (“Set Drawer front width to 48 3/16”). Tolerance: 0.5 mm, or 1/64 in an inch plan.
Machine gap wider than the install gapwarningOn the sheet the parts sit one kerf apart, on the cabinet one install gap apart. If the kerf is the wider one (a CNC router), the figure shifts slightly at each seam; the shorter row is centred so the step is split on both sides. It never stops the run.
Fits on the sheetcheck + fixWhether the block fits one of your stock sheet sizes in an allowed orientation. If only the set's grain prevents turning it, a button lets the set turn (grain: Free).
Enough parts in your listcheck + fixThe set needs quantity × its parts. If the table holds fewer, the Qty cell of that row gets a red frame and the check offers “Raise quantity to n”.
Same materialcheckIn Material-specific mode all parts of a set must have the same material — a set is cut from one board.
A part that may not turncheck + fixA part with rotation locked is turned inside the set's layout. Fix: allow turning for that part, or change the layout.
Grain of the set winsinfoParts that have their own grain setting follow the set's grain while they are in the set.
Removed part / part in two setscheck + fixA part row the set uses was deleted, or a row is already in another set. The set does nothing until it is fixed; the button removes the missing part or the duplicate.

A set that is not valid (fewer than two parts, a deleted part, mixed materials) is not applied — the run carries on without it and the plan check says why.


Install gap and the CNC offset

There are two gaps, and the set handles both:

  • Install gap — the gap between the fronts on the cabinet (⅛″ on most kitchens). The size check uses it. Leave the field empty and it follows the kerf, which is right on a panel saw, where both gaps are the same.
  • Machine gap — the gap between the parts on the sheet: always exactly the kerf of the plan. On a panel saw that is the blade (⅛″). On a CNC router it is the tool plus your allowance, for example 3/8″ + 1/16″ = 7/16″ — enter it with the CNC / router: tool + allowance row under the kerf (see Settings).

On a CNC router with a ⅛″ install gap, enter ⅛ in Install gap · between fronts on the cabinet. Your 48 ⅛″ drawer front then passes the size check (the check never suggests a 48 7/16″ front because of the router bit), the block on the sheet is laid out with 7/16″ gaps, and the warning tells you that the figure shifts by the difference, split on both sides.


What a run does with a set

When you click Run optimizer, each valid set becomes one block of the size shown in the editor, and the block is placed like any other part. After packing it is broken back into its parts, so everything downstream is exact: the cut tree contains the cuts inside the block, the yield and the counts are measured on the parts, and the cut sequence lists the inner cuts.

  • Offcuts: a set goes straight onto new stock — never onto a stored offcut or an off-cut row (an offcut does not record its grain). Parts outside a set still use offcuts first.
  • Limited stock: with Sheet supply → Limited a set is treated as a must-cut item so that a few small parts do not push it out — unless you flagged other parts as must-cut (⚑). Your ⚑ wins; the plan check then suggests flagging one part of the set too.
  • Oversize per side: the oversize goes only on the outer edges of the block; the joints inside the set are cut to size, so the figure stays as continuous as possible.
  • Material-specific mode: the set is cut from its material’s stock with that material’s kerf.
  • Too large for every sheet: depending on the set’s setting, its parts are cut separately (with a warning that the figure will not run on) or the set is left uncut and listed. With limited stock, some copies may be placed and others not — the plan check says how many.

On the result, each set is drawn with a dashed gold frame and a SET A badge; clicking it opens the set. The How we optimized box gets a Grain matching line naming the sets and their grain, and the Compare without grain matching button runs the same job without the sets and shows the difference — for example one more sheet — so you can judge what the match costs.


Pausing and hiding

  • The switch: Grain matching sits above the Parts (2D) table, next to Edge Banding, always — so you can see the feature exists; it shows On whenever the strip under the table is shown; its ⓘ explains it in one sentence and links to this page.
  • Pause (a project with sets): switch it Off and grain matching is off for this project. The sets are kept, the next run ignores them, and the How we optimized box says so (“paused — 1 set ignored”). While paused nothing is shown under the table; the switch’s tooltip says how many sets are kept. Switch it back On and the strip with the sets returns. A paused set never uses your grain-matching allowance.
  • Show or hide (no set yet): the row that creates a set shows under the table, with an ⓘ and a ✕, once grain matching looks useful for the job (a grain direction, a part named like a door, drawer or front, or a furniture template with fronts); until then nothing is shown. The ✕ hides it on this device and turns the Grain matching switch (always next to Edge Banding) Off; switch it On to bring the row back (now without the ✕), Off to hide it again. None of this changes the project, the run or what is saved.
  • Settings → More → Grain Matching (signed in) holds the project’s On / Off switch and a link to the sets (or Create a set).

The sets and the On/Off state are saved with the project, the draft and the share link.


Position codes on every output

Every part of a set gets a position code in reading order — top to bottom, left to right: A1, A2, A3 for set A, B1 … for set B. Where it is unambiguous a hint is added: left / middle / right in a row, top / bottom in a single column. The code is how you find the part’s place on the cabinet after cutting.

Output What the set adds
PDF the dashed frame + SET A badge on every sheet drawing, the position code next to the part number, “SET A” on the cut-sequence steps that cut inside the set, a Set column in the cut lists, and a Grain matching page with the cabinet-front drawing and a member table
Panel labels one more line: “SET A · A2 of 3 (left) · Base cabinet A”
Excel a Grain matching tab, a Set column in the cut list, sawing plan and work sheets, frames on the sheet pictures
CSV Set and Position columns at the end of each row
SVG / DXF the frame and “Door · A2” labels (SVG); the position after the part name on the LABELS layer (DXF)
Share link the frame and badge on the shared plan

Cabinetmaker’s triangle: the PDF and Excel drawings put a triangle across each set, its apex towards the top of the cabinet. Draw it on the board in pencil before cutting — afterwards each piece carries its part of the triangle and shows where it goes and which way is up.

The PDF and Excel extras can be switched off under Settings → More → Export & drawing (and in the PDF preview): Grain matching page, Set outlines on drawings, Cabinetmaker’s triangle. See Exports.


Sets from a furniture template

The kitchen base cabinet, the wardrobe and the TV stand templates have a Grain matching setting when they produce two or more fronts: Fronts as one set creates the set together with the parts (doors side by side, drawer fronts stacked, or a drawer front over the doors with Front layout → 1 drawer over doors). On the base cabinet the set’s install gap is the template’s own front gap; on the inset templates the install gap is left at the kerf. You can edit the set afterwards. See Furniture templates.


Which plans

Plan Grain matching
Without an account build a set, see the checks and the preview — it is not saved and no run applies it
Free every run with sets is one of your 3 monthly runs
Pro 10 runs with sets a month (the strip and the switch’s tooltip show how many you have used; switching grain matching On with none left and no credits shows a warning); then each run with sets uses a pay-as-you-go credit, or you can run without the sets
Workshop unlimited

Only a run in which a set actually takes effect counts as a run with sets. A paused or invalid set, and Compare without grain matching, are ordinary runs. If a Pro run with sets cannot be checked with our server (offline, signed out), the plan is not run and Run without grain matching is offered.


In the Engine API

The same model is available to developers: POST /v1/optimize/2d accepts matchedSets with parts[].id, and the response carries the position of every member. See Engine API.


Limits

  • One sheet per set. A run of fronts that does not fit on one sheet cannot continue onto the next one; the set is cut part by part or left uncut, as you chose.
  • Two levels in the editor: rows (or columns) of parts. A column of rows inside a row is not available.
  • 2D Panel mode only — not 1D Linear, Wood or Nesting.
  • Inset fronts (wardrobe, TV stand): on the finished piece the figure jumps by a divider and the gaps; the set still cuts the fronts from one stretch of board.
  • The Engine API’s own PDF and label PDF draw the parts of a set as plain parts, without set marks, and its max engine does not take sets.

FAQ

What does a grain-matched set actually do?
It cuts the parts of the set as one block. On the sheet they sit exactly as you laid them out — side by side or one above the other — with exactly one saw gap between neighbours and one grain direction for the whole set, so the figure of the board runs on from one part into the next. After the run the block is broken back into its parts: the cut list, the cut sequence, labels and exports show each part with its position code (A1, A2, A3 …).
My drawer front is 48 1/8 and my two doors are 24 each. Why does the set say the rows do not match?
The size check adds the install gap between the fronts on the cabinet: 24 + gap + 24. If your gap on the cabinet is 1/8 the drawer front of 48 1/8 is right and the check is green. If you entered a different install gap, the check shows by how much the rows differ and offers a button that sets the part size for you. The check never uses the machine gap (the kerf) for this, so a wide CNC bit does not push your drawer front to a wrong size.
I cut on a CNC router with a 3/8 bit. Will the figure still line up?
Nearly. On the sheet the parts are one tool gap apart (for example 3/8 + 1/16 = 7/16), on the cabinet only the install gap (for example 1/8). That difference shifts the figure a little; CutOptim centres the shorter row so the step is split on both sides and tells you the size of the shift. It is a warning, it never stops the run. Cutting with the install gap on the sheet instead would waste board on every seam.
What happens if the set does not fit on one sheet?
You choose per set: either its parts are cut separately and the plan warns that the figure will not run on, or the set is left uncut and listed. The editor tells you before the run whether the block fits any of your sheet sizes, and offers to let the set turn if its grain is the only reason. A set is always cut from one sheet — a run of fronts that continues across several sheets is not supported.
Does a set cost extra material?
It can, because a block is a large rectangle the optimizer cannot break up. After a run, Compare without grain matching in the How we optimized box runs the same job without the sets and shows the difference, so you can decide whether the match is worth it.
Which plan includes grain matching?
Every signed-in plan. On Free a run with sets is one of your 3 monthly runs. Pro includes 10 runs with sets a month; after that a run with sets uses a pay-as-you-go credit if you have one. Workshop has unlimited grain matching. Without an account you can build a set and see the checks and the preview, but it is not saved and no run applies it.
Can the parts of a set be cut from a saved offcut?
No. A set always goes onto new stock, never onto a stored offcut or an off-cut row, because an offcut does not record its grain. Parts that are not in a set still use offcuts first as usual.
Do I need grain matching just to control the grain direction of one part?
No. Click the Grain icon at the end of the part's row in the Parts (2D) table until its lines run along the side the grain must follow. That is available on every plan, guests included. Grain matching is for several parts that must continue each other's figure.

Last updated: October 13, 2026