3D Model Cutlist Generator
The 3D model cutlist generator turns a 3D model into a cutting list. It measures every panel in the model, works out what each one is, merges the duplicates, and hands you a list you can send to the optimiser, export as a CSV, or print as a bill of materials.
It has a page of its own at /app/import-3d. Two ways to get there:
- The main menu (top right) → 3D model cutlist generator.
- The Import panel → Import 3D model.
There are two tabs, and they end in the same place:
- Import Model - drop a file exported from your CAD software.
- Import SketchUp - send a model live from SketchUp, with no file to export.
Once you have a model on screen, a Project name field appears at the top. It defaults to the dropped file’s name and titles the bill of materials and the print job, so it is worth changing cabinet_v3_final.dae to something you would hand to a supplier.
Import Model
Section titled “Import Model”Supported Formats
Section titled “Supported Formats”- OBJ
- STL
- PLY
- glTF / GLB
- 3MF
- Collada (DAE)
- STEP (
.step/.stp)
Exporting from Your CAD Software
Section titled “Exporting from Your CAD Software”Hide or delete anything you don’t want cut before you export - fixings, appliances, worktops - then export the model.
- SketchUp - export as Collada (DAE), or skip the file entirely and use the Import SketchUp tab.
- Fusion 360 - export as OBJ or STEP.
- Shapr3D - export as STEP or STL.
- Onshape - export as STEP.
Dropping Files
Section titled “Dropping Files”Drop one file, or several at once. A job is rarely one export - doors from one file, carcasses from another - so a multi-file drop is read as a single model: one part list, one set of merged quantities, one preview.
When you drop more than one file, any part the file didn’t name takes its file’s name instead, so you can tell which export each row came from.
Model Units
Section titled “Model Units”Model units is what the numbers in the file mean, and Convert imported dimensions to is the unit you want them in.
3MF, Collada and STEP state their own units, so Model units is shown as locked rather than offered - the file has already answered the question. OBJ, STL, PLY and glTF carry no unit at all, so those are the formats that get a dropdown, and you have to check it yourself.
Getting this wrong is silent - every part stays correct relative to every other, so a whole cabinet can arrive in tenths of a millimetre looking perfectly consistent. Two things guard against it:
- The summary shows Whole model measures, the size of the entire model in the units you’re reading it as. A cabinet reading 1 × 0.9 × 0.5 is obviously not millimetres.
- If the model is barely wider than your saw’s blade, it can’t be the right unit. The panel says so and offers a button to re-read the file in the unit that makes sense of it.
Changing either dropdown rescales the parts immediately - the model isn’t re-read, so you can try a unit and change your mind.
Settings
Section titled “Settings”Everything below is under Settings, above the drop zone. Add to existing parts lives there too: tick it and the import adds to the parts already in your cutlist instead of replacing them, with matching rows having their quantity increased rather than being repeated.
Merging Duplicates
Section titled “Merging Duplicates”Merge identical parts collapses matching parts into one row with a quantity. The summary tells you how many duplicates were merged.
Treat mirrored parts as identical also merges a part with its mirror image. It is off by default, and should stay off when the sheet has a face, a grain direction or machining on one side - a mirrored panel is then a different part, not another copy of the same one.
Round Holes
Section titled “Round Holes”Convert round holes to drilling turns round holes into drilling operations on the part rather than treating them as geometry.
Rectangular cutting would otherwise lose them entirely. Nesting cuts them out as polygons unless they’re converted, so with this on they’re drilled instead of cut. Holes that aren’t round are left as they are.
Orientation and Grain
Section titled “Orientation and Grain”Set orientation from model locks each part the way round it was drawn, so a part whose length runs along the model’s length keeps that direction against the stock grain.
Reverse part orientation flips that reading, for a model drawn the other way round - one tick rather than a re-export.
Default stock grain sets the grain on any stock the import creates. It only appears when Set orientation from model is on, because the parts’ locks are resolved against the stock’s grain.
Creating Stock
Section titled “Creating Stock”Create matching stock adds one stock item for each material and thickness combination in the import, at the Default stock length and Default stock width you give. Check the sizes afterwards in the Inputs panel.
You don’t have to use it - see Materials for the same job done while the parts are still on screen, and note that the import creates a board for any material that still hasn’t got one on its way out.
The Parts Table
Section titled “The Parts Table”Every analysed part is one editable row. The dimensions, name and material are yours to change - what the analysis measured is the starting point, not the last word.
| Column | What it is |
|---|---|
| Include | Whether this part is imported. Follows the role unless you override it. |
| Colour | The colour this part is drawn in, in the 3D preview. Click to change it. |
| Shape | The part’s outline, drawn to scale. |
| Length / Width / Thick. | Editable. A zero or blank one is flagged. |
| Qty | How many, after duplicates are merged. |
| Name / Material | Editable. |
| Type | What the part will be cut as - see below. |
| Role | What you want done with it - see Roles. |
Above the table, All, Rectangles and Shapes filter the list, each with its own count.
The Type Badge
Section titled “The Type Badge”The Type badge says what will happen to the part, not what the mesh is:
- Rectangle - a plain rectangular panel.
- Shape - not a rectangle, and it will be cut as drawn.
- Squared off / Squared +25% - a shape that is about to be cut as its enclosing rectangle, with what that costs in wasted material.
- Not a panel - the analysis could not read it as a flat cuttable panel.
- Problem - something is wrong with the row and it can’t be imported. The check under the row says what.
A shape only reads Squared when the commit will actually square it off. Squaring is resolved per material (see Next Steps), so a shape sitting in a material that nests is cut as drawn however its own row is marked.
The Role column is the one decision the importer asks you to make, and it is per row.
| Role | Means |
|---|---|
| Rect | Cut as a plain rectangle. Any outline is dropped. |
| Nest | Cut as its true shape on a CNC. The outline and holes are kept. |
| No cut | A real part that is not cut here - glass, or something bought in. Stays in the list and in the CSV, and appears under Supplied parts on the bill of materials, but never goes to the optimiser. |
| Skip | Not a cuttable panel - hardware, a fixture, a fitting. Left out of the cutlist, and listed under Hardware on the bill of materials. |
Roles are pre-selected from what the analysis found. Change any of them and the 3D preview re-tints immediately - the legend under the preview explains the colours.
Shapes and Squaring Off
Section titled “Shapes and Squaring Off”Picking Rect on a shape is squaring it off: the part is cut at its tightest enclosing rectangle, and the cost appears in that row’s Type badge.
To do it to everything at once, use Square off all shapes in the Next steps panel. It tells you what it would cost as a percentage of those parts’ area before you press it, and Put the shapes back undoes it - nothing is written but roles, so it is safe to try.
There is also a per-material offer. Where squaring one material’s shapes off is cheap enough to be worth mentioning, its row in Next steps carries a Square them off instead button.
Checks
Section titled “Checks”Anything worth checking - open meshes, parts that aren’t flat panels, a thickness that isn’t the smallest dimension, parts that overlap each other, parts larger than your stock - is shown under the row it is about, so the problem and the part are in one glance.
Warnings are yours to judge. Errors can’t be imported, and those rows can’t be ticked.
A Checks panel appears below the table only for checks about the file rather than about any one part, which have no row to sit under. When there are none, there is no panel.
The 3D Preview
Section titled “The 3D Preview”The preview shows the model with each part coloured by its role, and a legend below it.
- Assembly / Tiled - the model as it was drawn, or every part laid flat in a grid like a cut list.
- Explode - drag the slider, or use the 0% / 50% / 100% buttons, to pull the parts apart. Assembly view only.
- Fit - frame the whole model again.
- Expand - open the preview full size. Your view is kept when you expand or collapse.
- Click a part to select it and its row scrolls into view. Click a row to highlight the part. Right-click a part for its actions, including Square off to a rectangle.
Mouse and keyboard:
- drag - orbit
- arrow keys - orbit
- shift + arrow keys - pan
- + / - - zoom
- F - fit
- E - explode
- Esc - deselect
Materials
Section titled “Materials”The Materials section groups the parts by material and thickness and says where each name came from: from the file, matched to your stock, set by you, or not set at all. Type a name into any group and every part in it updates.
The edit button on a material row opens the full material editor - cost, material type, optimisation and the saw overrides - and those settings are stamped onto the real materials after the import.
Create stock for N materials adds a board for every material that hasn’t got one, without touching a board you have already sized and costed. The button says what is left to do, so a disabled Every material has stock is the answer to “is there anything to do here” without pressing it. You don’t have to use it: the import creates the missing boards on its way out anyway.
Next Steps
Section titled “Next Steps”The Next steps panel is the end of the flow. It opens with a count - how many parts are ready, how many rectangles, how many shapes - and then one row per material group.
Each material row shows its thickness, its part count, how many shapes it holds, and the optimisation it will run under:
- Rectangular - an ordinary saw. Shapes in this material are squared off.
- Nesting - a CNC. Shapes are cut as drawn, and rectangles nest alongside them.
The choice is per material, not for the whole job: a shaped worktop can nest while the carcass it sits on runs on the panel saw. It is pre-selected from the parts’ roles and marked detected until you choose one yourself, and the note under each row spells out what that material will do and what it costs.
A material whose parts are long pieces sharing a cross-section is also marked Linear · detected. Sheet is the default and isn’t stated. Linear is a real claim, and you can disagree with it in that material’s own settings.
Four ways out:
- Import to optimiser - commits the parts, adds a board for any material that hasn’t got one, and takes you to the optimiser.
- Export parts CSV - Name, Length, Width, Thickness, Quantity, Material, Role. This is the round-trip format: it can be imported again.
- Bill of materials - a printable document, sectioned into Cut parts, Supplied parts, Hardware and Materials, with costs where every material has one. This is the document you hand to a supplier, and it carries the rows the optimiser never sees.
- BOM as CSV - the same content flat, with a Category column, for a spreadsheet.
After importing, check the result in the Inputs panel, where you can edit or bulk edit the parts.
Import SketchUp
Section titled “Import SketchUp”Send panels straight from SketchUp into your cutlist, with no file to export. The Cutlist Evolution extension walks the model, measures every component and pushes the parts across for you to review.
This needs no account and no sign-in. The short pairing code is the whole connection, and nothing reaches your cutlist until you confirm it.
Install the Extension
Section titled “Install the Extension”You only do this once.
- Download the Cutlist Evolution extension (a
.rbzfile). Hosting for the download is coming soon. - In SketchUp, choose Window → Extension Manager → Install Extension, and pick the
.rbz. - Accept the unsigned extension prompt if SketchUp shows one.
- The extension appears at Extensions → Cutlist Evolution → Send to Cutlist Evolution.
SketchUp 2021 or newer is required, on Windows or macOS.
Sending a Model
Section titled “Sending a Model”- Open the Import SketchUp tab. It shows a connection code.
- In SketchUp, choose Extensions → Cutlist Evolution → Send to Cutlist Evolution.
- Paste the code into Connection code.
- Pick the unit you work in from the SketchUp dialog’s own list. The extension converts before it sends, so the numbers arrive ready to cut and nothing is converted again at this end.
- Set Send to Whole model or Selection only.
- Press Send.
- The parts appear in a table and a 3D preview, with the same columns, roles and controls as the Import Model tab. Edit any value, remove any row you don’t want, then press Import - or Discard to throw the whole delivery away.
Grouping by Assembly
Section titled “Grouping by Assembly”The extension tells Cutlist Evolution which component or group each part came from, so parts you drew together can be cut together. Tick Group parts by assembly and each assembly becomes a group - a block of parts cut in the arrangement you drew them in, keeping grain and pattern running continuously across the joins. Groups appear in the Groups panel, where you can adjust or remove them.
The option appears when the delivery describes assemblies at all, and is off by default. An assembly is only grouped when its parts:
- share a material and a thickness - the block is cut from one board
- lie in one flat face, rather than at angles to each other or stacked in layers - so a run of doors or a veneered front groups, while a cabinet’s sides, shelves and back don’t
- are all the same way round - group positions can’t turn a part
- don’t overlap where they were drawn.
Anything else imports loose, with a notice naming the assembly and the reason - Cabinet B not grouped: mixed materials.
- Codes expire after about 15 minutes, and the same code keeps working until then - so you can send, adjust the model, and send again without re-pairing. Use New code if yours has expired or you want to cut off a previous pairing.
- Your model’s parts should be groups or components. A component holding other components is walked into, contributing its sides, top and shelves rather than itself as one large board.
- Dimensions are read from each component’s own axes, so a rotated part measures the same as an unrotated one.
- Hidden components are left out.
- Fractions are shown when the number format is set to fractions. That is a display setting and does not change any measurement.
- The sender decides whether a delivery replaces the parts already in your cutlist, and the panel tells you which it will do before you import.