Joinery AI: Build a Cutting List and Material Order From a Drawing

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Joinery AI: Build a Cutting List and Material Order From a Drawing.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Joinery AI: Build a Cutting List and Material Order From a Drawing.

Export the drawing as a PDF, ask an AI assistant to list every part with its length, width, thickness, quantity, material and grain direction in a table, then audit that table against the drawing before you trust it. Add waste last, by material, and only then turn the totals into sheet, edging and hardware orders.

The audit matters more than the extraction. In the worked example below, the first pass missed a part, applied no clearances and listed a back panel wider than any sheet, and four short checks caught all of it. Treat the assistant's table as a draft from a fast helper that has never seen how your workshop builds a carcass, and write your own construction rules down so it can.

Follow me on Instagram@sagnikteaches

Prepare the drawing so the model can read it

Export from your drawing package as a PDF rather than uploading the native file. In a PDF the dimensions are still text, which an assistant reads more reliably than figures in a photographed sketch. As I read Claude's upload help in October 2026, it accepts PDF, DOCX, CSV, TXT, HTML, ODT, RTF, EPUB, JSON and XLSX files plus JPEG, PNG, GIF and WebP images, and DXF and DWG are not on the list. It analyses both text and visuals for PDFs of up to 100 pages and reads text only from page 101 to 1,000, so send only the sheets that carry the item. ChatGPT's image input takes PNG, JPEG and non-animated GIF files of 20 MB each and resizes images before it analyses them, which is why a whole A1 sheet photographed from across the workshop loses its small figures. Crop to the item.

Connect on LinkedInSagnik Bhattacharya

If all you have is a photo of a hand sketch, type the dimensions into a clean table yourself and give the assistant the table and the sketch together. Pencilled figures are where misreads creep in, and a tidy table built on a misread number looks just as confident as a correct one.

Subscribe on YouTube@sagnikteaches

Then put the build notes on the drawing. Before: an elevation with overall sizes and nothing else, so every construction decision is left for the assistant to invent. After: the same elevation with a notes box. This is the drawing used through the rest of this tutorial, an oak-veneered alcove unit, as a summary of what it says.

UNIT AU-1  oak-veneered MDF alcove unit
Overall 1,800 W x 2,100 H x 400 D (including 6 mm back)
Carcass 18 mm veneered MDF, grain vertical on ends, dividers and doors
Back 6 mm MDF fixed to the rear edges, two panels
Plinth 100 high, between the end panels
Fixed shelf, top surface 900 above the floor
Base: one centre divider, two inset doors
Upper: one centre divider, two bays with three adjustable shelves each
Hardware: 2 hinges per door, 4 shelf pins per shelf, 1 handle per door
The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Write your construction rules down once

A drawing gives overall sizes. A cutting list needs cut sizes, and the gap between the two is your workshop's habits: how far a shelf sits back, how much clearance a door gets, whether the back sits in a rebate or on the rear edges. The assistant does not know any of it, so it either guesses or leaves the overall size in the list. Put the rules in one block and paste it with every request.

RuleValue used hereWhat it changes in the list
Carcass board18 mm veneered MDFEvery inside size is the overall size minus 2 × 18
Back panel6 mm MDF fixed to the rear edgesCarcass depth is overall depth minus 6, so 394 for a 400 unit
Adjustable shelf clearance2 mm in totalA shelf is the bay width minus 2
Shelf set-back10 mm from the front edgeShelf depth is carcass depth minus 10
Door gaps2 mm each side, doors insetDoor size is opening size minus 4 each way
Plinth100 mm high, between the end panelsAdds a part and moves every height up by 100
GrainAlong the sheet's long edge; vertical on ends, dividers and doorsDecides which dimension is the length of each part
Sheet size2,440 × 1,220 mmAny part wider than 1,220 must be split
Edge banding0.8 mm on visible front edges; all four edges on doorsDrives the edging order; ignored in cut sizes

The sheet size is the one to check with your supplier, because stock sizes differ. If you use ChatGPT or Claude every day, keep the rules as a project's instructions so they travel with each chat instead of living in a document you forget to paste. Both tools offer projects on their free plans, with file limits that differ by plan.

First pass with no rules: what comes back

Start with the lazy version, because it shows you what the assistant does on its own. Attach the PDF and ask:

List every part of Unit AU-1 from the attached drawing in a table with columns:
Part, Qty, Length, Width, Thickness. Sizes in mm.

This is the sort of table that comes back (illustrative, reconstructed from the common slips rather than copied from a particular run):

PartQtyLengthWidthThickness
End panel22,10040018
Bottom panel11,76439418
Fixed shelf11,76439418
Top panel11,76439418
Base divider176439418
Upper divider11,18239418
Upper shelf687339418
Door287376418
Back panel11,8002,1006

It looks professional, and five things are wrong with it. The end panels are 400 deep although the 6 mm back takes six off that. The six shelves are the full bay width and the full depth, with no clearance and no set-back. The doors are the opening size, not the door size. The back is one panel of 1,800 by 2,100, and no sheet is 1,800 wide. And the plinth is missing altogether, because it appears on the drawing only as a "100" on the side section.

Four checks that catch the usual extraction errors

None of these needs the assistant. They need a calculator and the drawing, and they take about ten minutes per unit.

1. Rebuild the overall size from the parts

Add the parts back up and compare with the drawing. Width: 18 + 873 + 18 + 873 + 18 = 1,800. Height from the floor: plinth 100, bottom 18, base opening 764, fixed shelf 18, upper opening 1,182, top 18, which is 2,100. Depth: 394 + 6 = 400. In the first-pass table the end panel gives 400 + 6 = 406, six too many, and that is the depth error showing itself. You can also ask the assistant to do this as a "read-back": tell it to state the overall width, height and depth its parts add up to. Then you compare its answer with the drawing, not with its own table.

2. Fit every loose part into its opening

Shelves and doors must be smaller than the space they sit in. The bay is 873 wide and the first-pass shelf is 873, so it would not go in without force. The door opening is 873 by 764 and the first-pass door is the same, so it would bind on all four sides. Any loose part that equals its opening is a flag.

3. Fit every part on a sheet

Compare each part with the sheet, in the grain direction. A part longer than 2,440 or wider than 1,220 cannot be cut in one piece. The 1,800 by 2,100 back fails this at once, and the fix is two panels of 900 by 2,100.

4. Count against the drawing's call-outs

Count shelves, doors and dividers on the drawing and tick them off the table. Then count the hardware the notes box implies: two doors, four hinges, six shelves, twenty-four pins. The plinth shows up here, because the notes list it and the table does not.

A fifth habit is cheap insurance: pick five parts at random and measure them on the drawing with a scale rule. If one of five is wrong, audit the lot.

Second pass with your rules, and a list you can cut from

Now run it again with the notes on the drawing and your rules in the prompt. Notice that the prompt forbids guessing and asks for the read-back.

You are preparing a cutting list for a joinery workshop from the attached drawing (PDF).
Use only sizes and notes shown on the drawing. If a size is not shown, write "not shown".
Apply the workshop rules below to turn drawing sizes into cut sizes.
Table columns: Ref, Part, Qty, Length (along the grain, mm), Width (mm), Thickness (mm),
Material, Banded edges (total metres for the line).
List any curved, tapered or moulded part under "Needs drawing" with no size.
After the table add "Read-back": the overall width, height and depth my parts add up to.
Workshop rules:
- Carcass 18 mm veneered MDF. Back 6 mm MDF fixed to the rear edges, so carcass depth
  is overall depth minus 6.
- Adjustable shelf = bay width minus 2; shelf depth = carcass depth minus 10.
- Doors are inset with 2 mm gaps: door = opening minus 4 each way.
- Plinth 100 high between the end panels.
- Grain along the sheet's long edge; vertical on ends, dividers and doors.
- Sheet 2,440 x 1,220: split any part wider than 1,220.
- Band the visible front edge of each carcass part; all four edges of doors.

The corrected output, after you have checked it with the four tests, is the list you cut from. The banded-edge column is metres per line: quantity times the banded length of one part.

RefPartQtyLength (grain)WidthBanded edges, m
AEnd panel22,1003944.200
BPlinth11,7641000
CBottom panel11,7643941.764
DFixed shelf11,7643941.764
EBase divider17643940.764
FUpper divider11,1823941.182
GTop panel11,7643941.764
HUpper shelf68713845.226
IDoor27608696.516
JBack panel, 6 mm22,1009000
Totals16 parts in 18 mm, 2 in 6 mm23.180

Re-run check 1 on the corrected list. Depth: 394 + 6 = 400. Shelves: 871 in an 873 bay leaves the 2 mm clearance. Doors: 869 by 760 in an 873 by 764 opening leaves 2 mm a side. Sheet fit: nothing is wider than 1,220 or longer than 2,440. Plinth present. If your assistant's read-back disagrees with any of this, do not argue with it; fix the row and re-run the read-back.

The 18 mm parts add up to 8.01 square metres net, and the two backs are another 3.78 square metres of 6 mm board. In the next two sections that area becomes a sheet count.

Let a spreadsheet do the totals, not the chat

Ask the assistant for the final table as CSV, paste it into a sheet, and let formulas do every sum. A language model can state a total with complete confidence and still be wrong, so a total typed by the assistant is one more number to audit. The formulas are short. With the columns in the prompt's order, quantity is in C, length in D, width in E, thickness in F, material in G and banded metres per line in H; put the area formula in column I. netArea and allowance below are two input cells you name yourself.

Area per line, m2 (column I): =C2*D2*E2/1000000
Net area, one board:          =SUMIFS(I:I, G:G, "Veneered MDF", F:F, 18)
Sheets by area:               =ROUNDUP(netArea*(1+allowance)/(2.44*1.22), 0)
Edging with 10% extra:        =ROUNDUP(SUM(H:H)*1.1, 0)

If you want help writing or fixing those formulas, the ChatGPT for Excel guide covers the prompts. Keep one row per part line and one column for material, so that a job in two boards or two finishes totals separately. Mixing 18 mm and 6 mm in one sum is the classic quiet error, which is why the SUMIFS above tests thickness as well as material.

Set the waste allowance from your own offcuts

A waste allowance is a percentage added to net part area before you convert to sheets. The right figure is the one your own jobs produce, and the way to find it is arithmetic: for each of your last ten jobs, take sheets bought times sheet area, subtract the net part area, divide by the net part area, and use the median. A joiner who has never calculated it will be guessing, and small jobs behave differently from large ones because sheets are bought whole.

This unit shows why. Net 18 mm area is 8.01 square metres and one sheet is 2.44 × 1.22 = 2.977 square metres. Here is what different allowances do.

AllowanceArea to coverSheets by areaOrder
10%8.81 m22.963
12%8.97 m23.014
15%9.21 m23.094
20%9.61 m23.234

A 10 percent allowance says three sheets. A nesting pass on the same parts, with the grain along the long edge and a 3 mm saw cut, needs four, and three cannot work. The reason is shape, not area. The doors are 869 wide, so the sheet that carries them has only a strip of about 350 left across its width, and nothing else on the list is that narrow except the plinth. Every other carcass part is 384 to 394 wide, and a 1,220 sheet holds three such rows at most. The ends (2,100 long) and the three big panels (1,764 long) each fill a row on their own, because the leftover is too short for any other part, and the two dividers and four of the shelves need three more rows, since the other two shelves fit beside the doors. That is eight rows against the six that the two non-door sheets offer. This is the realistic mistake: a 10 percent figure that works on a big job leaves you one sheet short on a small one, and you find out on the saw.

Four sheets is 11.91 square metres bought for 8.01 used, which leaves 3.90 square metres, about a third of what you paid for. Calling that waste misleads. Much of it is offcut you can use on the next job, so log the useful pieces in stock and let them reduce next time's order. For the 6 mm back, each 900 by 2,100 panel needs its own sheet because two side by side would be 1,800 wide, so order two and note that each leaves a 320 by 2,440 strip.

The decision rule: use area plus allowance for a quick figure when quoting, and nest properly before you buy. Allowances belong to materials, not to the job: veneered board with grain to match needs more than plain painted MDF, and sheets with a defect risk need a spare part.

Turn the totals into a material order

The order is the cutting list grouped by purchasable unit. Sheets come from the nesting result, edging from the banded metres plus a margin, and hardware from the notes box. Here is the order for the alcove unit.

ItemSpecificationQuantityHow the number was reached
Veneered MDF18 mm, oak face, 2,440 × 1,2204 sheetsNesting result; area method at 15% gave 3.09
MDF6 mm, 2,440 × 1,2202 sheetsOne 900 × 2,100 back per sheet
Edging0.8 mm oak to match the veneer26 m23.2 m needed plus 10% is 25.5, rounded up to 26 m; check the roll sizes your supplier sells
Concealed hingesInset door type52 per door, 4, plus 1 spare
Shelf pinsMatch the drilled hole size286 shelves × 4 = 24, plus 4 spare
HandlesAs specified on the drawing21 per door

Then ask the assistant to draft the supplier message from the table, with the instruction not to change any quantity.

Draft a short supplier order email from the table below. Do not change any quantity or
specification. Ask the supplier to confirm: stock availability of each line, that all
18 mm sheets come from the same batch, the delivery date, and any minimum order charge.
Use "[supplier contact]" and "[our name]" as placeholders. Under 120 words.
[paste the order table]

A typical reply (illustrative): "Hello [supplier contact], please can you quote and confirm stock for the following: 4 sheets 18 mm oak-faced MDF (2,440 × 1,220), 2 sheets 6 mm MDF, 26 m of 0.8 mm oak edging, 5 concealed hinges and 28 shelf pins. Please confirm the 18 mm sheets are from one batch, the earliest delivery date and any minimum order charge. [our name]". What I would fix: check the hinge line still says which door type, because assistants often drop the spec to shorten the message, and add your account reference. If the draft says "urgent" or "ASAP" and you did not, delete it.

Before you send, confirm the sheet size with the supplier, because 2,440 × 1,220 is common but not universal. Ask about lead time and about cut-to-size service if they offer it. If you place many orders like this, the wider routine of supplier emails and tracking is in how to automate purchase orders and supplier emails with AI, and the arrival check is in the further reads below.

Where the method breaks: curves, solid timber and mouldings

Everything above works because the unit is rectangular parts in sheet material. Three kinds of joinery work push back.

  • Curved and tapered parts. The assistant cannot be trusted to read a radius from a drawing, and it may list a straight chord length instead of the curved length. Make it declare these under "Needs drawing" and cut from templates.
  • Solid timber. Lengths are bought in stock sizes and machined down, so the cut size is not the purchase size. A table of finished sizes needs a second step where you add machining allowance per piece and buy by the metre. Tell the assistant which sections you stock.
  • Mouldings and glazing bars. Mitred lengths depend on the profile, and lengths of different profile must not be summed together. Give each profile its own line, and let the assistant list the mitre count but do the length sum yourself.

Prove it on a finished job before you rely on it

The safest test costs one afternoon. Take a unit you have already built, with a drawing and a real cutting list, and run the method blind. Then compare the two lists line by line. Record four numbers: parts in your list against parts in the assistant's; net area each way; sheets ordered in reality against sheets from the nest; and how many of the four audit checks it failed. Say your real list had 31 parts and the assistant's final list has 31, with net areas within 1 percent: the method is sound for that kind of unit. If it has 27 parts, find the four it dropped and add a rule or a call-out to your drawing notes that would have caught them. Do this on three past jobs of different shapes before you use it on a live order.

If you do this weekly rather than monthly, test a dedicated app against the same three jobs, using the same four numbers. The joinery AI app checklist lists what to ask before paying, and the cutting list software against AI comparison sets the two approaches side by side. For the box sizes, reveals and hardware details that feed this list, see cabinet shop drawings with AI.

Cutting lists from drawings: questions workshops ask

Is it safe to upload a customer's drawings to an AI assistant?

It depends on the plan and the contract. On consumer plans, ChatGPT has an Improve the model for everyone switch under Data controls and Claude has a model improvement setting, so check both are set the way you want. ChatGPT Business and Claude Team do not train on your content by default. Crop out names and addresses before uploading, and check whether your client agreement says anything about sharing drawings with outside services.

Is a free cutting-list optimiser enough for one job?

Usually, yes. OptiCutter's free plan allows 5 stock sizes, 20 part sizes and 500 parts, which covers a single carcass job comfortably. Before you use any optimiser, check that it lets you lock grain direction and set the saw cut thickness: cutlistoptimizer.com lists orientation and cut thickness among its options. Paste your parts in, set both, and compare the sheet count with your area estimate.

What should I do about curved or moulded parts?

Keep them out of the automatic list. Tell the assistant to put any curved, tapered or moulded part under a heading called Needs drawing, with no size guessed. Those parts need a template or a full-size drawing anyway, and a wrong guess hidden inside a tidy table is worse than a visible gap that you fill in yourself.

How long will the first job take with this method?

Longer than doing it by hand, because you are writing your construction rules down for the first time and learning where the assistant slips. By the third job the rules block and the spreadsheet are reusable, and your time goes on the four audit checks. Time the first two jobs honestly against your usual method before you decide it saves anything.

Further reads

Sources: Claude's help article on uploading files, OpenAI's ChatGPT image inputs FAQ, and the OptiCutter and cutlistoptimizer.com home pages, checked in late October and on 1 November 2026.

Want your cutting-list workflow tested on a real drawing?

On a 1:1 call we'll take one of your recent drawings, run it through the extraction and audit steps, and decide where AI saves your workshop time and where it does not.

Book a 1:1 call with me