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
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
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
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
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
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
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
| Feature | Type | Description |
|---|---|---|
| Row widths match / Column heights match | check + fix | Each 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 gap | warning | On 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 sheet | check + fix | Whether 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 list | check + fix | The 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 material | check | In 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 turn | check + fix | A 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 wins | info | Parts that have their own grain setting follow the set's grain while they are in the set. |
| Removed part / part in two sets | check + fix | A 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 |
|---|---|
| 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
maxengine does not take sets.