User manual
DXNest Fabrication:
from the first quote to CNC-ready production
DXNest Fabrication and Fabrication Solo
DXNest Fabrication runs a fabrication company on one system: sales, production, supply, people and field work, with the Nesting module for sheet nesting, CNC programs and reports. DXNest Fabrication Solo is the Nesting module on its own, for one engineer.
How to use this manual
- The search box at the top filters the whole document as you type — enter a label you see in the program. Press / to jump into it.
- The contents on the left highlights the section you are reading.
- Click any screenshot to open it full size; Esc or another click closes it.
- The ◐ button switches between light and dark; your choice is remembered.
- Working in a company? Read on from Signing in. Working with Fabrication Solo, or in a company's Nesting module? Start at The Nesting module and its Quick start.
- The document prints cleanly — the contents and header are hidden on paper.
Which edition is which
| DXNest Fabrication | DXNest Fabrication Solo | |
|---|---|---|
| For | A fabrication company: the office, the shop floor, the crews and the clients | One engineer who prepares production |
| Sign-in | The company's domain, then a username and password | A username and password |
| Opens on | Home — the company workspace | The Nesting application |
| Nesting, CNC, BOM, reports | The Nesting module (Home → Nesting, or from an order) | The whole application |
| Sales, production, supply, people, field work | Yes | — |
| Phone app | Yes — iOS and Android | — |
Who sees what in a company
Every person signs in with your company's domain. What they see depends on their role, set in Employees:
| Role | Who | What they see |
|---|---|---|
| Admin | The office | The whole workspace: every section of Home, the Nesting module and Settings. |
| Operator | Machine operators | Only their workstation: the jobs assigned to them or to their machines, with the instructions — see Production. |
| Worker | Estimators, engineers, installers, drivers, service technicians | Only their own work cards and the time clock, on the web and in the phone app. |
| Client | Your clients | The client portal of their own orders. |
Signing in
Both editions sign in at the same address, fabrication.dxnest.io. The switch at the top of the sign-in card picks the edition.
Fabrication — for companies
- Type your Company domain — the short name your company uses in DXNest — and press Continue.
- Type your username and password and sign in.
Your company's own sign-in link (in Settings → Company) fills the domain in for you — bookmark it.
Fabrication Solo — personal
Type your username and password and press Sign in.
Try the demo opens the application straight away, without an account — see Demo mode.
What happens after you sign in
- A company's office opens on Home; an operator on the workstation; a worker on their work cards; a client on the portal.
- Fabrication Solo opens the Nesting application with an empty document named
Web order— start filling it in, or open a saved project. - A session lasts a working day; after that you sign in again.
Home — the company workspace
The office's starting page: every section one click away, and what needs attention today.
The header
- Your logo and company name — a click returns to Home from anywhere. The crumbs beside it show where you are.
- Search — finds an order number, quote, invoice, client, supplier or part as you type; Enter opens the first match.
- The bell — notifications: new and late work cards, follow-ups due, orders and messages from the client portal. They also reach the phone app.
- Your name and role, and Sign out.
The tiles
Four groups, in one row. A small number on a tile is what waits there: late orders, unpaid invoices, items below minimum.
| Group | Tiles |
|---|---|
| Sales | Quotes · Orders · Invoices · Clients (with the CRM) |
| Production | Planning · Production · Work Cards · Warehouse · Shipping · Field Work · Products · Nesting |
| Supply | Stock · Suppliers · Inventory (tools) |
| People & admin | Employees · Timesheets · Reports · Settings |
Today at a glance
A row of cards — open and late orders, what is on the floor now, today's planned hours, the warehouse, stock below minimum, tools out, who is at work, crews on site, what clients owe and what you owe suppliers. Each card opens its page already filtered. Refresh reads the numbers again; + Quote and + Order start a new one.
Under it:
- Needs attention — late orders, overdue invoices and bills, tools due back, orders waiting for material, orders not on the plan, goods ready to ship;
- Production today — each department's planned load against its capacity, and who is running what on the floor right now;
- Orders by status and what is due this week;
- Warehouse — finished goods waiting to go out; Stock — its value, items below minimum, open purchase orders.
Clients and the CRM
The Clients tile holds your clients and the road from a first enquiry to a paid order: the pipeline, the deals, the follow-ups and the client portal's inbox.
Clients
A client keeps its contacts, billing and delivery addresses and its sites — the places where your crews work, each with its address and its place on the map. The client's page lists its orders, quotes, invoices, opportunities, follow-ups and work cards, and its Portal access (see The client portal). A new client can also be added on the spot wherever you choose one — + New client… in the list.
The pipeline
An opportunity (OP-#) is a deal with a client or a new lead: what they want, its value and chance, the owner, the expected close and the source. It moves through the stages
New → Contacted → Measure → Quoted → Negotiation → Won or Lost (with the reason).
Drag a deal to another column, or change its stage on its page. The figures above the columns are the open value and weighted value, the leads, quotes sent, won and lost, orders, invoiced and paid of the last 90 days. Deals lists the same opportunities as a table.
An opportunity
- Make quote turns a lead into a client and opens its quote, with the opportunity linked to it.
- Follow-ups — the calls, e-mails, meetings, visits and tasks planned for this deal.
- Work cards — the estimator's site measure, for example (see Work cards).
- Quotes, Files (the lead's drawings and photos) and the History of every change.
Follow-ups
A follow-up has a time and an owner, who is notified when it is due. Mark it Done… with its outcome — and plan the next one at once. The filters show what is due, late, open or done, and mine only your own.
Quotes, costing and invoices
A quote is priced from your own costing and becomes the order with one click; the order is invoiced, deposits included.
A quote
A quote (Q-#) has its client, contact, site, date, validity and the client's reference. Its lines are edited like an order's parts (see Orders): products from your library with their sizes, custom profiles and panels, DXF and Excel imports, stock items, services and manual lines, each with its quantity, price, discount, unit cost and margin. Notes and terms print on the document.
| Button | What it does |
|---|---|
| Document | The quote as a PDF to print or send. |
| Sends it to the client — see E-mail. A draft becomes Sent. | |
| Duplicate | A copy, for an alternative option. |
| Make order | Turns the quote into an order with all its lines; its work cards move with it. |
The status strip — Draft Sent Accepted Declined Expired — can be set by hand; the client can accept or decline in the portal.
How a cost is worked out
Each product's unit cost comes from its production costing (Products → the product → Assembly → Production costing): the departments it goes through, setup minutes per batch and minutes per piece. DXNest adds up:
| Part | How |
|---|---|
| Material | Before a run, the part's flat blank × the sheet's price per m² ÷ the nesting yield; after a run, the sheets, bars and hardware it really takes, less the remnants put back. Plus storage, handling and scrap. |
| Labour | Minutes × workers × the hourly wage of the position (else its department) × (1 + payroll costs). |
| Machines | Minutes × the machine-hour rate of the department's machines: depreciation, power, maintenance and consumables. |
| Overhead | The monthly indirect costs (rent, utilities, insurance, office …) ÷ productive labour hours, per labour hour. |
| Direct · G&A | A fixed cost per piece for a product costed that way; an optional percentage on top. |
The suggested price is the cost × (1 + markup). Taxes are added on the quote, not counted as cost. Rates, markup and taxes live in Settings → Costing & documents. The same minutes plan the work — see Planning.
Invoices
An invoice (INV-#) is made from an order (Invoice… on the order page) or on its own. It goes Draft → Issued → Part paid / Paid, or Void. Record payments on the invoice; a deposit invoice is taken off the final one with a Less deposit line. The list shows what is still to be paid and what is overdue. With QuickBooks Online or Xero connected, invoices and payments sync both ways — see Settings → Accounting.
Orders and their parts
An order carries a job from the client's request to the invoice: its lines become parts, the parts are nested and produced, shipped and billed.
The order list
Filter by status, Late or All, or type an order number, job, PO, client or part. Board shows the same orders as columns by status. Order numbers start at 1001; an order split into stages keeps its number: #1015-1, #1015-2.
A new order
- Choose what the order is for: Parts (made in the shop, shipped or picked up), Parts + installation (and put up on the client's site by your crew) or Installation only.
- Choose the client (+ adds a new one) and, for site work, the site; then the job name, customer PO, due date, priority, delivery address and notes.
- Create order — or Create & open in Nesting to build the part list there.
The order's work scope also decides which work cards are made for it by themselves.
The order page
The buttons on top: Nesting (open the order in the Nesting module), Edit, Ship… (a packing slip, full or partial), Invoice…, Email (an order confirmation), Stages… and Delete. The strip under them is the status — click to change it:
New → Material Required → In Production → Ready to Ship → Shipped → Billed, and On Hold or Cancelled. An order is late when its due date has passed and it is not yet shipped, billed or cancelled.
Below come the order's details and its sections: the parts, the plan by department, cost and margin, nesting, the order's instructions and files, work cards, the client portal thread, follow-ups, shipments, invoices and the history.
The parts
The parts grid works like the Part List of the Nesting module: type, name, material and colour (from the material library and the sheet colours in Stock), sizes, quantity, price, machine and operator. A line is one of:
| Line | What it is |
|---|---|
| Nesting part | A part type from your library (Add part). Its geometry is generated from the sizes on the line and it is nested and cut. |
| Custom profile / Custom panel | A one-off part drawn on the spot as a sketch, kept with this order only. |
| Import DXF · Import Excel | Parts from your drawings or from a part list. |
| Stock item | Sold straight from Stock (anchors, rivets, sealant …). |
| Service | Installation, delivery and other work, per hour or as a sum. |
| Manual line | Anything else, described in words. |
- Texture above the grid: the material has a grain direction, so no part of the order is turned in nesting. To keep only some parts as drawn, tick Texture on those lines.
- Assign machine & operator… puts the selected lines' operations on a machine and/or an operator (see Production).
- Duplicate, Delete, the arrows and Sort reorder the lines; Clear parts empties the grid after asking.
Is there enough material?
Before nesting, or when the order moves to In Production, DXNest checks each material and colour against Stock: a part's colour must match a sheet's colour. Lines that have no stock can be split off with Stages… into a follow-up stage that waits for the material (Material Required). How many sheets are really needed is known after a nesting run — the run lists the sheets it uses and what goes beyond stock, and shortages become purchase requirements (see Stock and purchasing).
Nesting an order and taking stock
An order is nested on the sheets in Stock — straight from its page, or in the Nesting module where you can check the layout, the BOM and the CNC programs first.
From the order page
- Nesting depth — Rectangles (fastest) nests every part by its bounding box; 90° down to 5° nests by the real shape, turning parts in that step: a finer step packs a little tighter and takes longer.
- Run nesting — nests the order's nesting parts; the run is queued and the page shows its progress.
- Open in Nesting — opens the order in the Nesting module.
- Nested for (in the order's details) — the machine the order is nested for: its CNC files are made for that machine, and the order's parts are assigned to it in production. One machine can make one order and another machine the next.
In the Nesting module
The bar above the toolbar names the order. Save to order keeps the part list, the layout and the programs with the order; Back to order returns to its page; ← DXNest Fabrication to Home. The Machine select on the toolbar picks the machine the order is nested for (Any (per material) uses each material's own machine).
Everything else is the Nesting module described from The Nesting module on — with one difference: the sheets come from Stock, and their quantities are what is available there. The priority you set here is for this order only.
Taking the material
- A finished run reserves the stock it uses: the sheets show as Reserved in Stock and are no longer available to other orders.
- Confirm — take from stock consumes the reservation when the material is used.
- After a confirmed run, offcuts big enough to use (the minimum area and width are set in Settings → Company) can go back to Stock as remnants, ready for the next order.
Planning
The planning board puts one task per order and production department on your production lines, using your working calendar.
Where the times come from
A task's time is setup minutes + minutes per piece × quantity, from each product's production costing — the same figures that price the quote. Orders whose parts have no production time can still go on the plan; set their time on the board.
Working on the board
- Days · Weeks · Months and the arrows move the view; Today returns to today.
- + Add orders puts the orders that are not yet on the plan onto it; Auto-plan lays everything out by due date and the order of departments.
- Click a bar to see and change it. Drag it along its line or onto another line of the same department; drag its right edge to change its time. What then overlaps moves later by itself; a locked bar stays put.
- A red outline: the task ends after the order's due date. A yellow outline: it starts before an earlier department has finished.
- The green strip on each department is its load against its capacity.
- Setup — the production lines, the working time they plan on and the departments.
On an order's page the Plan section shows its tasks: Update plan, Planning board, Off the plan. Home's Production today shows today's load per department.
The shop floor: production, warehouse, shipping
Operators see only their own jobs; the office sees what every machine and operator is doing.
Production
Operators shows each operator's queue: what they are running now, for how long, and what waits — including jobs no operator has picked up. Orders lists every operation by order with its machine, operator, quantities and progress; filter by machine, operator or status. An operation is assigned to a machine, an operator, or Anyone at the machine — on the order's parts with Assign machine & operator…, or here.
The operator workstation
An operator's sign-in opens My jobs: their orders, each part's operation, material, sizes, machine and the quantity still to go. START, PAUSE and COMPLETE — with the quantity made — record the work; the office sees it at once, and the time counts as the order's actual labour. Expand a job for the order's instructions and files.
Warehouse and shipping
Warehouse
Finished goods: what is made but not shipped yet, what it is worth at order prices and how long it has waited. A line counts as made when all its operations are done.
Shipping
Orders ready to ship or partly shipped, and every shipment. A packing slip (PS-#) takes the full or a partial quantity; slips and labels are editable documents you can print or e-mail.
Work cards
Work cards are the jobs of the people around production: a site measure, an estimate, engineering drawings, a delivery, an installation, a service call — whatever your company's own cycle needs.
The board
Cards (WC-#) by status: To do → In progress → Waiting for sign-off → Done (or Cancelled). By person lists them per employee; filter by person and kind or search by number, title, client or site. New card makes one from a template or from scratch.
A card
- Who, when, where — the responsible person, priority, start and due date (and time), the address and who to see there, the client, the order, quote, field job or opportunity it belongs to.
- Instructions and a checklist.
- A form to fill in on site: text, numbers, yes/no, dates, choices and photos.
- Photos and files (any document, not programs), and what it is for — the order's parts.
- Comments and history — both ways between the office and the worker, with every change.
Finish asks for what is still required — ticked items, filled fields, photos, the client's signature when the card wants it — and the worker signs. A card that needs the office's sign-off waits in Waiting for sign-off until the office approves it, or returns it with a note.
Templates
Task templates are your company's own cycle: the kind of job, its checklist and form, who usually does it, when it falls due (days from the order's due date; negative means before), which records it is offered for and which work scopes tick it. A template marked automatic makes its card by itself for every new order of those scopes.
On an order, quote or field job, Make cards… offers the templates (the ticked ones first) with their due dates and people. A card made on a quote moves to the order the quote becomes.
For the worker
A worker sees only their own cards — on the web and in the phone app, where changes made without signal wait on the phone and go to the office once it is back. Workers are notified of a new card, a moved due date, a returned card and a comment; the office of a card waiting for sign-off, a finished card and a comment; both of a late card.
Stock, purchasing and suppliers
What you have, what is held for orders, what to buy — and from whom.
Stock
Tabs: Sheets, Remnants, Profiles, Hardware, Other, Purchasing and Stock counts. A sheet item has its material, colour, size, priority, supplier and cost. For every item:
- On hand — what is in stock; Reserved — held for orders by their nesting runs; Available = On hand − Reserved; On order — on open purchase orders.
- An item is Low when Available falls below its Minimum.
- Receive, Issue and Count (a stock-take) move the stock.
Purchasing
Shortages become purchase requirements — open, ordered, received or cancelled — with the order they are for. Purchase order… turns the selected requirements into a purchase order for a supplier.
Suppliers
Suppliers holds their details; Purchase orders (PO-#) what you ordered from them — receiving a PO puts the goods into Stock, updates the item's cost and reserves them again for the orders that were waiting; Bills the suppliers' bills and your payments, with what is unpaid and overdue. A PO can be e-mailed to the supplier.
Inventory — tools
Tools and equipment: in the store, handed out (to whom, at which site, until when) or in repair. Move… sends a tool to another site or person without returning it to the store, and its history shows every move. A photo of the tool shows wherever it appears.
Field work and sites
Jobs on your clients' sites: the crew, the dates, the tools and materials that go out and come back — and where the crew is right now.
- Schedule — every employee's days: which field job (
FJ-#) at which site, planned, on site or done, and days off. - Jobs — each job with its site, client, order, dates, crew, tools out and status. A field job can have its own work cards.
- Sites — your clients' places of work, active or inactive, with their open jobs and the tools there. A site's place on the map and its radius are what the phone's time clock checks.
- Tracking — who is at work now and where, on the map: at the site, away from it, on a break.
Employees and timesheets
Everyone in the company, their sign-ins and their time.
Employees
Every member with their department, position, phone, hourly rate, sign-in and tools out. The tabs also hold the Departments (production, field or office), Positions and Projects (the sites). New employee adds a person; give them a sign-in with a role — Admin, Operator or Worker (see Who sees what). An operator can be tied to their machines.
Timesheets
The month for everyone: hours a day, overtime, days off, jobs and wages. Click a day to see or correct it; Add time enters time for one person or a whole crew; Days off records vacation, sick leave, training, business trips, unpaid leave and absence. Approve month closes it; Excel and Summary take it away. Time log lists every entry, At work now who is clocked in. Time from the phone is marked as such and is corrected here like any other.
The rules — the time zone, unpaid breaks, overtime, paid days off and the phone time clock — are in Settings → Working time.
The DXNest phone app
The phone side of DXNest Fabrication, for iOS and Android: the time clock and work cards for your people, and the company's panel for administrators.
Signing in
Choose Employee or Administrator, then type the company domain, your username and password. The phone stays signed in; signing out, a new password or a disabled account ends it.
For employees
- Clock — Clock in at a site: the stretch of work starts with where the phone was. Break stops the clock; Another site ends the stretch here and starts the next one there; Clock out closes it.
- Cards — the work cards given to you: late, today, coming, done. A card shows where to go (Route, call the client), the instructions, the checklist, the form, photos from the camera or the library, files, comments and history; Start, then Finish with your signature — and the client's when the card asks for it. Without signal the card opens as you last saw it, and every change waits on the phone until the server answers again.
- My time — your month: hours, overtime and every stretch of work.
Location and privacy
- The phone shares its location only while you are clocked in: at clock in, at a break, at clock out and every few minutes in between.
- With location access Allow all the time the trail continues with the phone in your pocket; without it, only while the app is open — the clock works either way.
- A site counts as “here” within its radius. Away from the site, your company decides whether clocking in is allowed and flagged, refused, or not checked.
For administrators
- Now — who is at work, at which site, since when, today's hours, at the site or away from it; tap a person for their day and trail.
- Map — people and sites with their radius.
- Timesheet — the month for everyone; approve or reopen it.
- Overview — Home's attention list, orders, production, field work and money; each opens its page.
- More — the web sections, grouped as on Home, with a search: the CRM and follow-ups, the portal's inbox, quotes, orders, invoices, clients, planning, the floor, work cards, the warehouse, shipping, field jobs and sites, stock, suppliers and tools, employees and reports. An order, quote, invoice or client can be e-mailed from the phone.
The bell shows notifications — also as push notifications — and the AI assistant is there when your company has it switched on. An administrator who also clocks in switches with More → My time clock and back with Profile → Open the administrator panel.
E-mail from DXNest
Quotes, invoices, order confirmations, purchase orders and packing slips go out as PDFs from their own page, with your template text and signature.
Sending a document
Email on a quote, invoice, order, purchase order or packing slip — or on a client — opens the message: the client's (or supplier's) address, Cc, the subject and text from your template, and the document attached as a PDF, plus any of the record's files you tick. Then:
- Send — DXNest sends it, in your company's name; replies come to your company's e-mail.
- Open in email program — the message opens in the computer's own e-mail program (Outlook, Apple Mail, Thunderbird, Gmail set as the e-mail app; the phone's mail app in the phone app) and is sent from your own mailbox, staying in its Sent folder.
Every e-mail is logged with its record. Sending a draft quote marks it Sent and plans its follow-up.
Settings → Email
- Email button — Send from DXNest or Open my email program; the dialog always offers both.
- Mail server — DXNest's own (in your company's name) or your company's mail server; the sender name, reply address, a copy to you (Bcc), your signature and a test message.
- Templates — the subject and text for each document, with
{client},{number},{company},{total},{due_date},{job}. - Follow-ups by themselves — how many days after a sent quote to follow it up, and the payment reminder for overdue invoices.
The client portal
Your clients follow their orders, accept quotes, see invoices and send you files and new orders — without a phone call.
Giving a client access
On the client's page, Portal access: a username, a password and an e-mail for notices. The client signs in at fabrication.dxnest.io with your company's domain, like your own people.
What the client sees
- Orders — status in plain words, the due date and the lines (without prices, unless you show them), and deliveries;
- the files you share — on the order page, the eye on a file makes it visible to the client;
- a message thread per order — the client is e-mailed when you write;
- Quotes to accept or decline, and Invoices with what is still to pay, each as a PDF.
Orders from the client
New order in the portal: the lines (without prices), a description, when it is needed, and any files — drawings, CAD files, spreadsheets, photos. The order arrives marked Portal, its files in the order's instructions marked from client; you are notified and get a follow-up to price it. Clients → Client portal lists new portal orders and unread messages.
Settings → Client portal switches the portal, client orders and prices on or off, and holds the welcome text.
The AI assistant
An assistant that answers from your own DXNest data and prepares actions you confirm — in the office, in the Nesting module, in Fabrication Solo and in the phone app.
What it can do
- Answer from orders, stock, purchasing, production, clients, the material library, part types and nesting runs — and explain any screen, open a page or point at a button.
- Read files you send it — with the paperclip, drag and drop or paste: drawings (PDF, pictures), part lists (Excel, CSV), DXF parts and instructions (PDF, Word, text). They are kept for a day.
- Prepare changes: a new order (for a new client too), lines read from a part list or DXF parts, an order's status, machine, operator, plan or nesting run; work cards; opportunities and follow-ups; an e-mail of a document; a message to the client in the portal; a new part type with its flat and 3D preview; parts and a nesting run in the Part List.
Type, or hold the microphone to speak. It can remember your preferences; the memory list can be reviewed, edited or switched off in its settings. A company switches the assistant on in Settings → Company; in Fabrication Solo, the orb on the toolbar switches it on and off.
Company settings, products and reports
Where the company is set up: its details and sign-in, costing, working time, materials, machines, e-mail, the client portal and accounting — plus the product library and the reports.
| Tab | What it holds |
|---|---|
| Company | The company name, its domain and sign-in link, the password strength for its people, the logo, the AI assistant switch, the details printed on documents, the length unit, operation names and the remnant rules (minimum area and width). |
| Costing & documents | How a cost is worked out (see Quotes and costing); currency, tax, markup, quote validity, invoice terms and payment details; labour rates per department, payroll costs and the productive share; overheads; machine-hour rates. |
| Working time | The working week and its shifts, holidays and days off; the timesheet rules — time zone, unpaid breaks, overtime, paid days off — and the phone time clock: clocking in on the phone, whether a site is required, what happens away from the site, how often the location is taken. |
| Materials | The one material and profile library everything uses: material, kind and thickness; profiles and their bar length. |
| Machines | Your machines, their type and operators, and which ones the Nesting module offers. CNC settings… opens the CNC configuration — see CNC machines, tools and materials. |
| Email · Client portal | See E-mail and The client portal. |
| Accounting | Connect QuickBooks Online or Xero (one at a time) and choose what to book with. Clients, issued invoices, payments and — with bills on — suppliers and their bills go out; payments recorded there come back. Sync now, or by itself every half hour; the log lists every record. |
Products — your part types
The Products tile is the company's library of part types — the same object editor and model builder Fabrication Solo calls Object Settings. A part type is parametric: panels with flanges, bends and holes, profiles drawn as a cross-section, or assemblies with child parts, hardware and profile bars. Each one also carries its production costing (Assembly → Production costing): the departments, setup minutes and minutes per piece that price quotes and plan the work. See Object editor and The model builder.
Reports
For 7 days, 30 days, 90 days or a year: orders created and billed, packing slips, the open order value, late orders, orders by status, production by operator and by machine, material used and low stock.
The Nesting module and Fabrication Solo
The Nesting module is where DXNest prepares production: from a parts list and an elevation layout through sheet nesting, CNC programs, the bill of materials and printable reports. In DXNest Fabrication it opens from Home → Nesting or from an order; DXNest Fabrication Solo is this application on its own.
Everything happens in a single browser window, and your projects, your object library and every generated file are kept in your own private space. The chapters from here on show the application as Fabrication Solo has it; inside a company, an order's bar sits above the toolbar and the sheets come from Stock — see Nesting an order.
The usual route through the program
The main window
Quick start — your first job in 10 steps
The shortest path from an empty document to files ready for the machine. Every step has its own detailed section — this is just the order.
- Sign in with Fabrication Solo — or, in a company, open Nesting from Home. An empty document called
Web orderopens. - Fill in the header. Right panel → Job Settings: Job Name (it becomes the name of the output folder), customer, date, PO. In Sheet Settings, keep Nesting depth at 90° (or Rectangles (fastest) for plain panels) so the first run is quick.
- Describe the material and the sheets. Right panel → Sheet Settings: rename the material, choose its Kind (Steel / Aluminum / ACM), enter the stock formats and how many you have. Add a second material with + if you need one.
- Set the margins. Same place: Parts Margin is the clearance between parts, Frame Margin the distance to the sheet edge.
- Add the parts. Part List tab → Add part. For each row pick a Type, enter W and H (the depth D fills itself in), the quantity and a name. The material is limited by the type — if the one you need is missing, widen the list in the type's definition.
- Look at a part. The eye button in the Edit column shows the geometry exactly as the engine will build it. It is the fastest way to catch a wrong dimension.
- Check the BOM. The BOM tab is computed without a run: it already shows profile lengths, cut angles and flat-pattern sizes. If a flat pattern is bigger than your sheet, fix it now rather than after a failed run.
- Run the nesting — the Run ▶ button on the toolbar. The app switches to the Nesting tab by itself when the job finishes.
- Save the project. The Save project button in the Nesting tab (or the diskette on the toolbar). A saved project keeps its layout, programs and reports in your library.
- Collect the files. Right panel → Project Tree: download them one by one, or press Download all (.zip) in the results window.
What a document needs before it can run
The Run button will not start a job until all three conditions hold:
| Condition | Message if it does not hold |
|---|---|
| At least one part exists | Add at least one part before running. |
| The active material has at least one stock sheet | Add at least one stock sheet for the active material. |
| Every non-angle dimension of every part is greater than zero | Cannot run — N parts have a dimension of 0: … listing each part and which dimensions are empty |
The parts named in the third message are immediately flagged in the Part List with a ⚠.
The window frame
Four permanent strips: the title bar, the toolbar, the tabs and the status bar. They stay the same whichever tab you work in.
The title bar
The tabs
| Tab | When it appears | What it is for |
|---|---|---|
| Grid | when the grid button on the toolbar is switched on | The elevation layout: columns × rows of cells that panels are placed into. |
| Part List | always | The parts table — the master list of what has to be made. |
| BOM | always | The bill of materials: profiles with lengths and cut angles, sheets, hardware. |
| Nesting | after a successful run (or after opening a project with a saved layout) | The interactive sheet-layout editor. |
| CNC | same | Viewing and editing the generated machine programs. |
The status bar
- On the left — how many part rows the document holds.
- On the right — the unit selector and the application state:
Ready, orRunning…during a job.
mm, inch (decimal), inch (fractions) — the last shows sizes as 23 5/8" and accepts the same form as input.How dimension fields behave
Every length field — in the Part List, in the sheet settings, in the grid, in the part editor — follows the same rules:
| Situation | What happens |
|---|---|
| While you type | The text stays exactly as you typed it — the field does not reformat mid-edit, so a fraction like 23 5/8 can be typed in peace. |
| Enter | Leaves the field and commits the value (the same as clicking elsewhere). |
| Losing focus | The text is parsed into millimetres, written into the document, and the field is redrawn in canonical form — so you see at once how the app understood you. |
| An empty field | Means 0. A part with a zero dimension will not pass the pre-run check. |
| Changing units | Every field is reformatted, but the stored millimetres are not rewritten — mm → inches → mm loses nothing. |
| The value changes from elsewhere | For example the grid recomputed a panel — the field updates, as long as your cursor is not in it. |
23 5/8, 23-5/8, 5/8, 23.62 are all valid. Fractions are rounded to 1/16″. The fields do not evaluate arithmetic (100+50).The toolbar — every button
Thirteen buttons in groups separated by dividers: project · history · content · run · settings panel.
Project
History and content
.dxf files and adds them as CUSTOM parts — see Importing your own DXF files.Run and the settings panel
The settings panel
Six accordion sections. As many can be open at once as you like; the state is remembered for the session.
Collapsed sections
Clicking a heading expands the section. The open one is marked by an accent bar on its left.
Hiding the panel
The narrow handle on the panel edge (or the gear button on the toolbar) hides the panel completely.
Project Tree — the produced files
Before the first run the section shows a structural summary of the document: the job name, the materials with how many sheet formats each has, and the number of parts.
After a run it becomes a tree of the generated files.
| Folder in the tree | What is inside |
|---|---|
nesting/<material>/ | The sheet-layout DXFs — what goes to the cutter. |
parts_dxf/<material>/ | The flat pattern of every individual part. |
CNC/<material>/ | The .nc machine programs, one per sheet. |
* Nesting Report.pdf | The printable sheet report, one per material. |
*.xlsx | BOM, Packing Slip, Labels, CutPlan — depending on which reports are switched on. |
Job Settings — the order header
| Field | What it does |
|---|---|
| Job Name | The name of the order. Shown in the title bar and used as the name of the output folder, so every generated file lands in it. |
| Date, Invoice | Date and invoice number — they reach the headers of the Packing Slip, Labels and BOM. |
| Customer | The customer. |
| Ship to | The delivery address (also available in templates as the address field). |
| PO | The customer's purchase-order number. |
| Part Code Engraving | Engrave the part code onto the part itself. Visible on the layout canvas and in the CNC tab as separate engraving operations. |
Sheet Settings — materials, sheets and margins
Margins
- Parts Margin — the minimum clearance between parts.
- Frame Margin — the distance to the sheet edge on all four sides.
- Frame margin per side — switch it on to set each side separately (Top / Right / Bottom / Left). The sides start from the previous common value.
Nesting options
- Texture — the material has a grain direction (wood, brushed or patterned metal): no part is turned on the sheet, every part is nested as drawn. To keep only some parts as drawn, tick Texture on those rows of the Part List instead.
- Trim overlapping lines — remove lines that coincide on neighbouring parts so the cutter does not travel the same path twice.
- Nesting depth — how parts are turned when they are nested by their real shape, cut-outs included: 90° is the quickest, a finer step (45° … 5°) packs a little tighter and takes longer (about twice as long at 45°). Rectangles (fastest) nests every part by its bounding box — fine for plain panels.
- Search, s — how long the nesting may look for a tighter layout, for each material. The first layout is ready in about a second; the time left tries other part orders and keeps the best.
- Parts in cut-outs — small parts may be nested inside the cut-outs of bigger ones; the CNC program cuts them out first.
Materials
Each material is its own tab. A dot “·” next to the name means no part uses that material yet (you can configure it in advance). + adds a material; the router icon on the right opens the CNC rules for that material.
| Field | Meaning |
|---|---|
| Material name | The name you see and the one printed in reports. |
| Kind | The material class for the engine: Steel · Aluminum · ACM. This is what decides which machine and which machining rules apply. |
| CNC machine | Appears when your configuration has a machine able to process this kind. Auto picks the first capable one; None means no CNC output for this material. |
| bin | Removes the material. The last remaining material cannot be removed. |
Stock sheets
| Column | Meaning |
|---|---|
| Width / Height | The size of the stock sheet. |
| QTY | How many sheets of that size are available. |
| Priority | The order they are consumed: 1 is used first, then 2, then 3; none means no preference. Use it to burn off remnants or the cheaper format first. |
Profile Settings — linear stock
- Kerf Width — the saw kerf; it is subtracted at every cut.
- The bar table — name, length, quantity in stock.
- Add bar — add a stock entry.
- Export cut plan — pack the profile pieces from the BOM into these bars (first fit) and download the optimised plan as Excel. disabled in the demo
Report Settings — which reports to produce
| Report | What it contains |
|---|---|
| BOM | The bill of materials: profiles with lengths and cut angles, sheets with flat-pattern sizes, hardware. |
| Packing Slip | The packing slip: order header, part rows, total quantity. |
| Labels | A printable label sheet — one label per part, tiled across the page. |
| Profile cut plan | The cutting plan for the bars defined in Profile Settings. |
| Bending report | A PDF for the press brake: one page per bent part with its flat pattern, every bend line numbered (dashed red — up, blue — down), chains of dimensions from the flat's edges to each bend line and between bend lines, and a table of each bend's angle, direction, inside radius and length. In the model builder (the part's “Bending report” card) a long, narrow part can have Shorten a long part on: its flat is drawn with the middle cut out (break lines), so the sizes across it stay readable while every dimension stays true — leave it off for panels. Cross-section there adds a section — horizontal, vertical or both (a lone section is A–A; with both, the horizontal is A–A and the vertical B–B) — with its leg lengths (outside sizes) and bend angles, numbered as on the flat. Only parts made in the model builder have bend lines; others are listed as skipped. It is a PDF, so the demo can download it too (watermarked). Both PDF reports — the cutting report and this one — carry the DXNest Fabrication mark with a link to dxnest.io in the bottom-right footer, clear of the page content and inside the printable area. |
Open shows the job's Packing Slip / Labels on their own tab, ready to edit and save as PDF or Excel; Edit template… opens the template there — see Packing slip and labels. The tag project template means this project carries its own template, overriding your default. Which reports are ticked is remembered for the next project.
General Settings
Shows the connection to the engine and how many panel types are loaded. If it reads Offline, reload the page. The unit selector deliberately lives in the status bar so it is always within reach.
Part List
The main table of the document. One row is one line item: panel type, dimensions, quantity, name, material.
The action bar
Part N. The type is chosen automatically (the first suitable type with W/H/D), and every dimension starts at that type's default — for a modelled type the Value in its PARAMETERS table (for a DXF-marked type: depth from Default Depth, angles from their defaults, W/H/W2 600/400/300). Then just correct the numbers you need.- Duplicate — copies the selected rows with all their dimensions and inner contours.
- Remove — deletes the selected rows.
- Clear parts — deletes every part row and empties the grid cells, keeping materials, sheets and settings: handy when you move a new order onto a configured template. Undo brings them back; in an order or a quote it asks first.
- Export DXF — saves the drawings of the selected rows (of every row when none are selected). One file comes back as a
.dxf, several as a.zip; a panel with child parts (a sandwich panel's inner sheet, say) gives a file per part. - Set group material… — changes the material for a whole material group at once (see below).
- On the right — a counter:
N partsorN selected.
The columns
| Column | Meaning |
|---|---|
| # | The row number. Clicking it selects the row; Ctrl/⌘+click adds to the selection. A ⚠ replaces the number when the part could not be placed in the last run. |
| W · H · D · W2 · ANGLEA · ANGLEB … | Dimension columns are built dynamically: only those needed by the types actually present are shown. A dash “—” means this type has no such dimension. |
| Qty | How many identical parts. |
| Name | The part designation. It goes into the reports, into the flat-pattern file name and into the engraving. |
| Type | The panel type from your library. Changing it rewrites the set of available dimensions. |
| Material | What to cut it from (constrained by the type — see below). |
| Texture | Tick it for a part that must be nested exactly as drawn, never turned (grain direction). With Texture on in Sheet Settings every row is ticked. |
| Edit | Three actions on the row. |
The buttons in the Edit column
Three kinds of dimension cell
A number
A normal length field. It accepts the units selected in the status bar; internally the value is always millimetres.
An angle from a list
If the type has a variable angle, the cell becomes a dropdown of the permitted values (min…max with the declared step) — an arbitrary number cannot be typed.
A fixed value
For CUSTOM (DXF) parts the dimensions are shown in italics and cannot be edited: they were read from the file.
Materials and material groups
A part's material is constrained by its type. The type declares a list of allowed materials and a group name:
- A single-material type — the cell shows it as plain text, with no choice (a Back Pan is always
Steel 1mm). - A multi-material type — a dropdown of the allowed materials only (a Standard:
Aluminum 3mmorACM 4 mm). - CUSTOM — any material in the project.
The Set group material… list is grouped by group name (“Exterior Panels”, “Back Pan Panels”, “Custom Group”) — one pick switches every part in the group.
What happens when you change a part's type
- All dimensions are replaced by the new type's defaults — as in a freshly added row. The old type's sizes mean something else on another panel (a tray's D is not a plank's return), so they are not carried over.
- The exception is a part placed by the grid (Grid): the grid recomputes its W, H, W2 and joint-linked angles straight away.
- If the part's current material is not allowed by the new type, it switches to the first allowed one. If that material does not exist in the project yet, it is created.
- The set of dimension columns is rebuilt around the types actually present in the list.
Small things that save time
- Materials with no parts at all are left out of the run entirely — you can keep spare materials configured in advance.
- If a part's material was deleted, the part is not lost: it runs with the first material that does have parts.
- Duplicate copies inner contours as well.
- Row order drives the numbering in reports and labels — drag rows to get the order you want.
Selection and ordering
- click the row number to select it; Ctrl/⌘+click adds or removes;
- a row can be dragged by any part of it and dropped onto another — the list order changes (and with it the numbering in reports);
- rows that failed to place in the last run are highlighted and carry an explanatory tooltip.
Importing your own DXF files (CUSTOM)
An existing drawing can go into the nesting as it is — no parametric type required.
- Press Import custom DXF parts on the toolbar and pick one or several
.dxffiles. - The server reads each file, works out its extents and stores it in your import area.
- A row of type Custom (DXF) appears in the Part List, named after the file without its extension.
Bracket A.dxf: the size 420 × 260 is shown in italics (it came from the file), the type cannot be changed, the material is yours to choose.The part editor and inner contours
The pencil in a Part List row opens the part's card with a live geometry preview.
The basic fields
- Name, Qty — the same as in the table, only easier to edit.
- Dimensions — every one the type declares; angles are dropdowns of permitted values here as well.
- Rotate 90° — force the part to be turned when nesting; with Texture it decides which way the grain runs along the part.
- Texture — the part is nested exactly as drawn, never turned. When Texture is on for the whole job in Sheet Settings it is ticked here already.
Inner contours (cut-outs)
Four cut-out shapes:
| Shape | Fields |
|---|---|
| Rectangle | Center X · Center Y · Width · Height |
| Rounded rect | Center X · Center Y · Width · Height · Corner R |
| Circle | Center X · Center Y · Radius |
| Slot | Center X · Center Y · Width · Height |
INNER CONTOUR layer and are machined by the “Inner contour” layer rule.The DXF viewer
One viewer is used everywhere: for parts in the list, for files in the output tree, for object previews.
- 2D flat / 3D — the flat pattern or the folded part; 3D is there for parts made in the model builder (an object built by marking up a drawing has none);
- Dimensions — draws every Part List parameter on the part itself:
W,H,W2across the face,D,H1,RET… along the wall or return they set, angles such asANGLEA 95°at their bend line — on the flat and in 3D alike, so you can see which number is which without guessing. The button remembers its state; - DXF, STL, OBJ — save the part as a file: the flat drawing or the three-dimensional model (STL is binary, in millimetres). The same buttons sit in the Edit part window;
- Fit — fit the drawing to the window;
- mouse wheel — zoom around the cursor;
- drag — pan;
- on the right, the number of drawn entities.
Layer colours
| Colour | What it usually is |
|---|---|
| green | outer contour / cut |
| red | holes |
| cyan | grooves, fold lines |
| yellow | inner contours |
| grey / white | other lines, text |
Grid — the elevation layout
Instead of typing dozens of rows by hand you draw the façade: columns × rows of cells with joints between them. Every filled cell creates — and keeps in sync — one part in the Part List.
The tab appears once you press Grid on the toolbar.
How the panel size is worked out
This is the key rule of the tab; without it the numbers in the cells look puzzling.
- A column width and a row height are the module, measured from joint centre-line to joint centre-line.
- The panel in a cell = the module minus half a joint on each of its four sides. That way two neighbouring panels always leave exactly one whole joint between them.
- The outer boundaries of the elevation default to a joint of
0— the panel runs out to the edge. They can still be given their own width like any other line. - The default joint is 16 mm (≈ 5/8″); a fresh grid is 4 columns × 3 rows of 1000 mm.
Example: a 1200 mm column with 20 mm joints left and right gives a panel of 1200 − 10 − 10 = 1180 mm.
A joint angle and what it changes
- An angle on a line is the turn of the wall at that joint:
90is an outside corner of the building,−90an inside one,0a flat wall. - The angle alone changes nothing in the panels. Which of a panel's dimensions follow it is up to the panel's type — the Grid block in the object editor (in JSON
panel_type_spec.grid, see The object JSON format). A type without those settings takes only its size from the grid; its angles stay as typed in the Part List.
| Type setting | What it does |
|---|---|
| Edge angle (Angles that follow the joint) | An angle dimension follows the joint at one edge of the cell — Left, Right, Top or Bottom. At an angled joint it becomes 90 − angle/2: the angle between the panel's face and its wall at which the walls of two neighbouring panels meet on the corner's bisector. An inside corner (−90°) gives 135° (the wall opens out), an outside corner (90°) 45° (the wall tucks in under the face). At a flat joint the dimension goes back to the type's default. |
| Reverse | For types that measure the angle the other way (a bend angle rather than the face-to-wall angle): 90 + angle/2. |
| Corner panel | The type can be placed as one panel over two neighbouring cells across a joint. Only such types are listed under Corner panel…. |
| Corner angle | The corner panel's dimension that takes the wall turn at the shared joint — its fold: 90 for a square corner, 45 for a 45° turn. The size of the turn is used, without its sign. |
The standard types
| Type | Settings | At a corner |
|---|---|---|
| Back Panel (BCAB) | ANGLEA — left edge, ANGLEB — right edge | Range 90…150°, 90° by default — square walls at a flat joint. The wall can only open out. Next to an inside corner (−90°) the wall on that side becomes 135°. Next to an outside corner (90°) it would need 45° — out of range, so it is pulled to 90° and the cell's angles turn red. |
| Sandwich Aluminum Panel (SPAB) | ANGLEA — left edge, ANGLEB — right edge | Next to an outside corner the wall tucks in under the face — 45°. Next to an inside one it gets 135°, and this type makes anything from 90° up square. |
| Corner Panel (C), Corner Sofit Panel (S) | Corner panel, Corner angle = ANGLE | Cover two cells; ANGLE (the fold, 90° by default) takes the wall turn at the shared joint. |
| The others | — | The grid leaves their angles (if any) alone. |
ANGLEA is in fact the right wall of your panel, swap Left/Right in the type's Grid block; if the angle goes the wrong way, tick Reverse.- The result snaps onto the values the type allows (Min…Max with the declared Step). If it falls outside the range it is pulled to the limit and the cell's angles turn red — that is the “clamped” warning.
Corner panel sizes
A corner panel runs right up to the corner line: no joint is taken off at the shared line; half a joint comes off the far edges only.
| Case | Sizes |
|---|---|
| Across a vertical line (an ordinary corner) | W = the left cell's module − half the joint on its left edge; W2 = the right cell's module − half the joint on its right edge; H = the row height minus half joints top and bottom. |
| Across a horizontal line (a soffit) | W = the upper cell's height − half the joint above; W2 = the lower cell's height − half the joint below; H = the column width minus half joints. |
Example: 1000 mm modules, 16 mm joints, outer boundaries with a zero joint. A corner panel in the second row over the two right-most cells: W = 1000 − 8 = 992, W2 = 1000 − 0 = 1000, H = 1000 − 8 − 8 = 984 — the cell reads 992 × 984 + 1000. The fold comes from the shared line; edge angles (if the type has any) from the pair's outer edges.
A panel is handed only the dimensions its type declares — anything else is dropped.
The top row of controls
| Control | What it does |
|---|---|
| Rows / Cols | The number of rows and columns. Applied on Enter or when the field loses focus. |
| Joint X / Joint Y | The default joint between columns and between rows. Individual joints can override it. |
| Place type… | Put a panel type into every selected cell. The matching parts are created at once. |
| Corner panel… | Join two neighbouring cells into a single corner panel spanning the joint between them. The list only offers types marked as corner panels (Corner panel in the type's Grid block): of the standard ones, Corner Panel and Corner Sofit Panel. |
| Split | Break a corner panel back into two cells. |
| Disable / Enable | Mark a cell as “no panel” (a window opening, say) or bring it back. |
| Empty | Remove the type from the cell — its part disappears from the Part List. |
| Clear all | Empty every cell in the grid. |
| − / + | Zoom the canvas. |
| Limits: 1 to 200 rows and columns; zoom from 0.02 to 0.6 pixels per millimetre, in ×1.25 steps. | |
Selecting cells
- Click — select one cell;
- Click and drag — a rectangular region;
- Shift+click — extend the selection to that cell;
- Ctrl/⌘+click — add or remove a single cell;
- click empty background — clear the selection;
- double-click a filled cell — jump to the Part List with that panel's row selected.
The second row of controls — contextual
It shows whatever is currently picked: either a joint, or cells.
Cells selected
The Top / Right / Bottom / Left fields set the joint for these cells specifically, overriding the default. An empty field means “as everywhere else” (the inherited value shows as the field's placeholder). Default clears the override.
A joint selected
| Control | What it does |
|---|---|
| Angle | The wall turn at this joint, in degrees. 0 is a flat wall. |
| 90 · −90 · 0 | Presets: outside corner, inside corner, reset. |
| inside corner · edges → 135° · corner fold 90° | For reference: whether it is an outside or inside corner, the angle the neighbouring panels' edges linked to this joint will get (90 − angle/2), and the fold of a corner panel spanning it. |
| Joint | The width of this particular joint; empty means the default. |
| Default | Return the joint to the default width. |
What a cell shows
An ordinary panel
The type name, the computed panel size (module minus half joints) and the reference R1C1 — row and column.
A corner panel
The panel occupies both cells and covers the joint between them (none is taken off there); the size reads W × H + W2, where W2 is the second leg, with the fold angle below.
Extra markers: a small dot in the corner means this cell has its own joint override; red angles warn that a computed angle had to be clamped into the type's range.
Hovering a cell
The cell tooltip gathers everything known about it: Cell R2C3, the panel size in your units (or Disabled), the type, where each angle came from (ANGLEB = 135° from right line V3 (wall -90°), ANGLE = 90° from corner line V3 (wall -90°) or (default; line V2 is flat)) and the name of the created part; for a corner panel both legs as well: W 992 + W2 1000 × H 984 (no joint at the corner line). A line's tooltip shows its number, the joint width and the angle with the resulting panel angle.
What happens when you resize the grid
- Growing — new columns and rows take the size of the last existing column/row.
- Shrinking — cells and line overrides that fall outside are removed along with their parts; a corner pair that lost half of itself is split automatically.
Corner panel rules
- Only two neighbouring cells can be joined (horizontally or vertically) — the control stays disabled until exactly two neighbours are selected.
- The panel “belongs” to the upper-left cell of the pair; the second becomes its continuation and has no part of its own.
- The Corner panel… list contains only types marked as corner panels (Corner panel in the type's Grid block).
- A corner panel runs right up to the corner line — no joint is taken off at the shared line (see Corner panel sizes above).
- Split breaks the pair: the primary cell keeps its type, the other becomes empty.
- Placing a type in a cell (Place type…) automatically clears its Disabled state and breaks an existing corner pair.
How the grid drives the parts
- Every filled cell creates exactly one part, named after its coordinate:
R1C1,R2C3… - New parts are appended left to right, top to bottom.
- Emptying a cell (Empty), disabling it (Disable) or Clear all removes the matching parts from the list.
- The grid only rewrites geometry: W, H, W2 and the angles the type links to joints. Quantity, name, material, depth, other angles and inner cut-outs stay exactly as you set them in the Part List.
- Change a type's Grid settings and save it, and the grid's parts are recomputed as soon as the type list refreshes.
A full example
BOM — the bill of materials
Computed by the engine from the current parts list and refreshed on its own whenever you change something. No run needed.
How the table is structured
Rows are grouped into sections with orange headings:
| Section | What is in it |
|---|---|
| Profiles | Linear profile pieces: cut length, quantity, cut angles A and B. |
| Sheet | Sheet blanks with their flat-pattern sizes (Flat Pattern W / H). |
| Blocks, Screws, Sealant, … | Hardware and consumables declared in the objects. |
The columns
| Column | What it means |
|---|---|
| # | A running item number (section headings are not numbered). |
| Panel Name | The item name: for a profile, profile name + segment label + part name; for a sheet, Sheet <part name>. |
| Profile Length | The length of one piece after Cut Distance is taken off each end. Empty for sheet items. |
| QTY | The quantity including the part's own quantity (the expression from the object definition × the number of parts). |
| Cut Angle A / B | The cut angles at the two ends of the piece. |
| Flat Pattern W / H | The extents of the flat pattern of a sheet blank — this is the number that has to fit the sheet once the frame margin is taken into account. |
The export buttons
- Export BOM — the whole table as a formatted Excel file;
- Packing Slip — the packing slip in your layout;
- Labels — the label sheet;
- on the right, the number of items, or
Computing…while the engine works.
4 * qty. Change the object definition and the whole bill of materials changes with it.Packing slip and labels
The Packing Slip and the Labels open on their own tabs as the document itself — a white sheet you edit in place, then print or save as PDF or Excel. The same sheet, with placeholders instead of values, is the template.
Where they open
- After a run — when Report Settings → Packing Slip (or Labels) is ticked, the tab opens with a fresh copy for the job; the Packing Slip comes to the front. The Excel file is also written into the output folder, as before.
- Any time — Report Settings → Open next to Packing Slip / Labels, or the Packing Slip / Labels buttons on the BOM tab. No run is needed.
- The template — Report Settings → Edit template…, or the Template switch at the top of the tab.
The Packing Slip is no longer generated on a run by default; tick it once and the choice is remembered (see What Fabrication remembers).
The job's packing slip
The tab shows Packing slip for this job: your letterhead, the title with the job's fields (date, invoice, PO, job), the customer / ship-to blocks, one line per part and a total, notes, signature lines and a footer note. The Dimensions column lists every size of a part by name, e.g. W=600; H=400; D=25 or H=25; L=3000; R1=50; R2=40.
- Click any text to change it; Enter finishes a one-line text, Esc undoes the edit. The change is for this copy only.
- × removes a field, a block, a line or a signature line; + field, + block, + line, + column, + signature line add one. A total that was the column's sum follows the lines you add or remove.
- Click a column heading to move the column (◀ ▶), align it, make it bold or remove it.
- Regenerate makes the copy again from the parts and the template (your edits on it are dropped). When the template changes, a banner offers it.
- Print prints the sheet alone (the browser's dialog can also save it as PDF), PDF downloads a PDF, Excel an .xlsx workbook. Excel is disabled in the demo
Nothing on the editing sheet that is not part of the document prints: the ×, + buttons and the column bar stay on screen.
The template
Template shows the same sheet with placeholders in braces. Everything is edited the same way, in one place: the title, the letterhead, the fields on the right, the blocks, the columns and the notes. In the table, the blue row is what every part's line holds.
- To put a value in, click into a text on the sheet and pick it on the Insert bar: job fields — Customer, Ship to, PO, Date, Invoice #, Job name, Material, Total QTY; part values — Line #, Part name, Type, QTY, All sizes and every size code your types use (W, H, D, R1…). A placeholder can sit inside any text, e.g.
Job: {job_name}or{W} × {H}. - Total row (on the column bar) adds a total under the QTY column.
| Button | What it does |
|---|---|
| Apply to this project | This project uses the template (it is saved with the project). |
| Save as my default | Every project without its own template uses it. |
| Reset to built-in | Starts again from the built-in layout (apply or save it to keep it). |
| Remove project template | This project goes back to your default (shown when the project has its own). |
| Clear my default | Forgets your default; projects use the built-in layout (shown when you have one). |
The tag next to the switch says whose template it is: this project's template, your default template or built-in template; not saved marks pending changes. For a company account the built-in letterhead is the company's name, address and contacts from DXNest ERP settings. A layout made in the earlier grid editor keeps working: its columns and fields are read into the new template.
Labels
The Labels tab works the same way: Labels for this job is a sheet of labels — one per part — each edited on its own or removed with ×; Labels across the page sets how many fit in a row. In Template you edit one label: its text lines (e.g. Customer: {customer}), the small table of fields (QTY, W, H…), the big number on the right and the name underneath; + line / + field add more. The buttons and the Insert bar are those of the packing slip.
What Fabrication remembers
A new project, and the next sign-in, start the way you left them:
- which reports and files a run writes (Report Settings) — for an individual account and for a company (shared by its admins);
- for an individual account also Sheet Settings — margins, frame margin, rotation, trimming, the materials and their sheets — and Profile Settings — the kerf and the bars. A company's sheets and bars come from DXNest ERP stock.
Opening a saved project does not change these: the project keeps its own settings.
Running a job
The Run button sends the document to the server: the engine builds the geometry of every part, lays them out on sheets and generates DXFs, CNC programs and reports.
The check before anything is sent
Before anything reaches the server the app validates the document locally. If something is wrong, the window opens straight away with the error and no job is created:
| Message | Cause | What to do |
|---|---|---|
Add at least one part before running. | The parts list is empty. | Add a part in the Part List, or fill some grid cells. |
Add at least one stock sheet for the active material. | The materials that carry parts have no sheet format at all. | Sheet Settings → Add sheet. |
Cannot run — N parts have a dimension of 0 | A required dimension is empty or zero. Angles are not checked, and neither are CUSTOM parts (their size comes from the file). | The message lists each part and which dimensions are empty; those rows get a ⚠. |
While it runs
The usual stages: preparing the parts → nesting onto sheets → generating DXF → CNC → reports.
Queued…, Nesting parts onto sheets… and so on). The bar itself is a liveliness indicator: it eases towards the end but never reaches it until the real result arrives. An almost-full bar does not mean almost done.Queued… means your job is waiting for its turn; it starts by itself.When the run succeeds the app switches to the Nesting tab by itself, provided a layout was produced.
A successful finish
The files are grouped by kind: Report (PDF), CNC programs (.nc), DXF files, Other files. Each row shows the size, an eye for DXFs and a download button.
Warnings worth reading
Back Pan, for instance). Their layouts and reports were created; a machine program was not. Whether CNC is produced is set by the CNC allowed checkbox in the panel type.When a run fails
Parts that could not be placed are afterwards flagged in the Part List with a ⚠.
After the run
Nesting — the layout editor
Whatever the engine produced can be reworked by hand: move a part, rotate it, delete it, bring one back from the queue, change the sheet format or the margins — and rewrite the files on disk.
The bar at the top
| Control | What it does |
|---|---|
| Material | Switches between materials (each is nested separately). Only shown when there is more than one. |
| Format | Change the format of the current sheet to another one configured in Sheet Settings. Parts keep their coordinates, so after shrinking a sheet some may end up outside — check the layout and move them. |
| Margins … · gap … | Opens a small panel with this sheet's margins. |
| Delete sheet | Deletes the sheet; all its parts return to the unplaced queue. |
| Save sheet DXF | Export the current sheet as DXF. demo |
| Save all DXF | Every sheet of the material: a single DXF or a .zip. demo |
| Recompute CNC | Rewrite the layout DXFs and the CNC programs on disk from the current canvas. A dot “•” on the button means there are unsaved edits. |
| Save project | Save the project together with the layout (recomputing the files first if needed). demo |
The sheet list
For each sheet: name, size, number of parts and which they are. A ×4 badge means this sheet repeats four times (the same layout, multiplied by the run quantity).
The unplaced queue
Everything that did not fit, or came back after a sheet was deleted, ends up here. The thumbnail is drawn from the part's real contour; next to it is the remaining quantity.
Loading part geometry N/M…. Until it disappears some parts may not be drawn yet — just wait.- click a free spot — drop one copy;
- drag — lay down an array of copies (as many as fit and as many as remain);
- Angle / Rotate 90° — the angle the copies are placed at;
- Esc or Cancel leaves the mode.
Working on the canvas
| Action | How |
|---|---|
| Select a part | click it |
| Move | drag |
| Rotate | drag the round ○ handle, or use the Angle field, or press R (90° steps). With Shift the angle snaps to 15° |
| Delete | Delete / Backspace, or the Delete part button |
| Deselect | Esc |
| Zoom / pan | mouse wheel / drag the background; Fit fits the sheet |
The magnet
While you drag, a part snaps to the right distance as soon as it comes close enough (about 8 screen pixels):
- onto the sheet's frame-margin lines — the part lands exactly on the edge of the working area;
- onto a neighbour's contour offset by the gap — leaving precisely the configured clearance rather than an eyeballed one.
Snapping is computed from the real contour, not a bounding box, so shaped parts nest tightly. The same magnet works when placing a new part.
When a move is rejected
- the part leaves the sheet's working area (sheet minus frame margins);
- its contour comes closer to another part's contour than the configured gap.
An invalid position is drawn red while you drag, and on release the part returns to where it was.
Rotation
- the ○ handle above the selected part — drag to rotate; with Shift the angle snaps to 15°;
- the Angle field accepts any number (normalised to 0…359°);
- R or Rotate 90° steps by 90°;
- rotation happens about the bottom-left corner of the part's footprint, as it does in the engine, so the angle on screen and in the program agree.
Arrays of copies
In placing mode hold the mouse button and drag: a grid is built out from the first copy. The step is the part size plus the gap between parts; the direction follows your drag. Only valid copies are laid down — those that would leave the sheet or clash are skipped — and the total is capped by the remaining unplaced quantity.
After hand edits
- Edits live in the browser and are marked by a “•” on the buttons.
- Recompute CNC rewrites the layout DXFs and machine programs to match the new arrangement.
- Save project does the same (when there is something to recompute) and stores the project with its layout — after that it can be reopened without running again.
.nc survive. A recompute only happens when the layout itself changed.CNC — the machine programs
Shows the generated program for each sheet: the toolpath with its travel order, and the operation list you can reorder.
The bar at the top
.nc; the file name is shown under each.- Material — switch materials; only those that produced CNC output are listed;
- a caption such as
CNC Woodwork · 3mm Aluminum— the machine and the rules the engine applied; - Edit CNC rules… — opens the CNC manager on exactly that material;
- Recompute — regenerate the program;
- Save project — write any unsaved operation edits into the
.ncand save the project; - on the right, the number of operations and the tools involved.
The toolpath preview
The operations themselves are drawn plus a travel line connecting them in execution order — so wasted rapid moves are visible at a glance. The sheet outline is drawn as a frame.
| Operation kind | How it is drawn | Colour |
|---|---|---|
Drill, Weep | a small circle at the point | red |
Engrave, Groove | a polyline | cyan |
Chart, Cut, Mill, Contour | a polyline | green |
| anything else | a polyline | light grey |
| travel between operations | one continuous polyline | blue |
| the sheet outline | a frame | light |
Single-point operations (drilling) are shown as circles of a nominal radius — a position marker, not the hole diameter.
The operation list
| Element | Meaning |
|---|---|
| ⋮⋮ | The drag handle: rows can be swapped to change the machining order. |
| № | The position in the current sequence. |
| Kind | Drill, Engrave, Groove, Cut/Contour… The colour matches the drawing. |
| Label | The operation label from the program. |
| tool | The tool for this individual operation. The field suggests the material's configured tools. |
| X… Y… | The entry point coordinate. |
Save CNC rewrites the .nc with the new order and tool assignments; it is only enabled when there are changes.
The order of saving — important
- Edits to the operation order and tools live in the browser until you press Save CNC (or Save project, which does it for you).
- Save project first writes the pending operation edits into the
.nc, then stores the project. - A layout recompute (Recompute) rewrites the
.ncfrom scratch — every hand edit to order and tools in it is lost.
Steel 1mm with Back Pan types. The message says so directly.CNC machines, tools and materials
This is the brain behind the machine programs. You describe your machines, their tools and the machining rules for every layer of every material — and the engine uses them on every run.
The tabs
- Form — the ordinary editor with fields and tables;
- JSON (this material) — the same content as a file: handy for copying between installations;
- Guide — a reference for every field with a fully worked example;
- Import all… / Export all — a backup of the entire configuration (all machines and materials). export disabled in the demo
The machine
The list of machines, a field to rename the current one, and + Machine to add a new one: give it a name and choose its post-processor — a built-in one or one of yours. It starts with the current machine's tools.
Processing order
A machine's Processing order tab sets the order in which its programs machine a sheet — holes, engraving, grooves, open cuts and closed contours. Inner cuts always come before the outer contour that releases them.
| Strategy | What it does |
|---|---|
| Nearest next operation | Always the closest operation next — the least rapid travel. New machines start with it. |
| Horizontal snake (rows) · Vertical snake (columns) | The sheet is worked in lanes, row by row or column by column, turning at each end. |
| Small parts to large · Large parts to small | Release the small parts first — or last. |
| Drawing order | In the order the layout was drawn. |
| DXNest legacy | The order earlier versions used. |
- Start corner — the machine's home-side corner the nearest and snake strategies start from;
- Snake lane — the width of one row or column of a snake, in millimetres.
The material library
Shared by every machine. Each entry has:
- Name — for example
3mm Aluminum; - Kind —
Steel/Aluminum/ACM. The kind is what links a project material to these machining rules; - Default machine — which machine to use when a job does not name one.
The tool library
| Column | Meaning |
|---|---|
| # | The tool number (the T word in G-code). |
| Label | The human name shown in the pickers. |
| Ø mm | The diameter — used by the per-diameter hole rules. |
| H | The length-offset register (the H word); defaults to the tool number. |
Per-layer machining rules
For the chosen material × machine pair there is one row per layer:
| Layer | What it machines |
|---|---|
| Contour | The outer contour of the part. |
| Inner contour | The cut-outs added in the part editor. |
| Grooves | Fold grooves (usually a V-shaped cutter). |
| Weep lines | Drainage slots. |
| Engraving (name) | Engraving the part code, when Part Code Engraving is on. |
| Parameter | Meaning |
|---|---|
| Tool | A tool from this machine's library. |
| Depths (mm, per pass) | Pass depths separated by commas: 1.15, 2.3, 3.45 means three passes. |
| Feed Z / Feed XY | Plunge feed and working feed. |
| Peck | The peck-drilling step. |
| RPM | Spindle speed (the S word). |
Holes
A table of its own: an any (default) row plus as many “from Ø to Ø” rules as you like. A hole takes the first rule whose range contains its diameter; if none matches, the default applies.
- Rules are checked top to bottom — keep narrow ranges above wide ones.
- A new rule is created as a copy of the default, so you only change the diameters and the tool.
- Per-diameter rules have no speed of their own: they take the RPM from the drilling block (the Holes default row). The table shows a dash for that.
G-code blocks
| Block | When it is emitted |
|---|---|
| Start CNC Code | At the start of the program. |
| Start Drilling | Before the drilling block. |
| Start Grooving | Before the grooves. |
| Start Milling | Before contour milling. |
| End CNC Code | At the end of the program. |
Tn M06, G43 Hn and /M03 Sn lines in these blocks stay automatically in step with the tables above: change a tool or a speed and the matching line updates; edit one of those lines and the field updates. Milling ↔ the Contour row, Grooving ↔ Grooves, Drilling ↔ the holes default. Every other line is yours to edit freely.Only lines with recognised words are synchronised. Changing a tool number (#) or offset register (H) in the tool library updates the blocks of all materials on that machine.
What imports and exports cover
| Button | Scope | When it helps |
|---|---|---|
| Export all / Import all… | The whole configuration: every machine with its tools, the material library, every rule. | A backup; moving your setup to another account. |
| Export material / Import material… | One file = one material on one machine: the layer rules, the holes and the G-code blocks. Tools are not included — they belong to the machine. | Handing over proven cutting parameters for a particular material. |
JSON and Guide
Object editor — building panel types
The most powerful part of the application: here you describe what a panel of a given type is — which dimensions it has, how its geometry stretches, where holes are drilled, what its BOM consists of and which parts are made together with it.
The three columns
Left — the library
Your objects: display name, type code and the list of dimensions. × deletes an object, + Sheet metal part starts a new one.
Right — the preview
Two modes: Reference DXF, the source drawing you mark up, and Scaled preview, the result built at test sizes.
The action bar
- Load DXF… — load the reference drawing (the part at its minimum size) that you then mark up;
- Import JSON… — load a ready definition from a file;
- Export JSON — save the object as
Name.json. A model travels with itsobject_model, so Import JSON… on another account opens it in the model builder again; the button also sits above the Sheet Metal / Assembly tabs; - Build & Preview — build the object and show the result;
- Save to library — store it; the type becomes available in the Part List straight away.
General Info
| Field | Meaning |
|---|---|
| Display Name | What the type is called in the interface. |
| Type Code | A short code (R, C, BCAB…). Also used by the API and in file names. |
| Material Group | The group name used for changing the material of a whole family at once in the Part List. |
| Default Depth | The depth given to new parts of this type. |
| Materials | The allowed materials. Empty means any. Class is the identifier used to group parts into per-material nesting jobs (steel_1mm). |
| CNC allowed | Whether machine programs are generated for this type. |
| Layer Aliases | Layer names in incoming DXF files that count as “this type”. |
| Grid | How the Grid tab drives the type: which angle parameters follow the joint at the left / right / top / bottom edge of the cell (Reverse when the angle is measured the other way), and whether the type can be a corner panel over two cells, with a Corner angle parameter that takes the wall's turn. The same block is in the model builder; in JSON it is panel_type_spec.grid. |
The mark-up sections
Seven sections follow. Each heading carries an ⓘ icon — hovering it shows an illustrated hint inside the program; they are reproduced here.
Reference Geometry
Shows what could be read from the drawing: how many contour points, holes, inner contours and grooves.
Parameters — the dimensions
| Column | Meaning |
|---|---|
| Name | The dimension code in capitals: W, H, D, and also W2, H2, A, L… |
| Min | The size the reference drawing is drawn at. |
| Formula | An expression for derived dimensions. |
| P1 · P2 | The two vertices the dimension spans — filled in by Pick Endpoints. |
| Description | A free comment. |
Scaling Lines — how the geometry stretches
| Column | Meaning |
|---|---|
| Parameter | Which dimension moves this edge. The list comes from the Parameters table. |
| Axis | X — the edge moves horizontally, Y — vertically. |
| Type | ray — an infinite ray: everything on that line moves (for a vertical ray only X1 matters). segment — a finite edge between two points. |
| Anchor | The anchor name — the marker the engine matches against the drawing (for example Scale_X). Filled in automatically when you pick a line. |
| Formula | Optional, when the edge does not move one-to-one with the parameter. |
| X1 · Y1 · X2 · Y2 | The coordinates. In ray mode X2 and Y2 are disabled — a ray is defined by one point and an axis. |
The buttons under the table: + Add Mark for a new row, − Remove for the selected one, Pick Line to enter line-picking mode on the drawing (pressing it again leaves the mode).
Variable Angles
| Column | Meaning |
|---|---|
| A · B · C | The three corner points; B is the vertex the leg swings about. |
| Default | The value used unless overridden. |
| Min · Max · Step | The range and increment — exactly what becomes the dropdown in the Part List. |
| Pivot | Which arm rotates. |
| Tag | The dimension name the angle appears under in the parts list (ANGLEA). |
| Keep | Preserve the side length when the angle changes. |
Pick Angle asks you to click the three points in turn: A → B → C.
Hole Rules
| Column | Meaning |
|---|---|
| Name | The rule's name — useful once there are several. |
| X1 · Y1 | The first point of the run. |
| X2 · Y2 | The second point of the run. |
| Max step | The largest spacing between neighbouring holes. The engine chooses the count so the step never exceeds this and the run stays even. |
| Diameter | The hole diameter. Left empty with Pick 2 Holes/Points, the diameter of the first picked hole is adopted. |
| Ends | Whether holes are placed at the end points themselves, or only between them. |
BOM — Profiles
| Column | Meaning |
|---|---|
| Profile Name | The profile's name. Rows sharing a name are grouped together in the BOM. |
| Label | The segment label (W1, H, W2…) — it reaches the BOM item name. |
| Cut Distance | How much is taken off each end. G = 100 with a Cut Distance of 10 gives a piece of 80. |
| Qty | The quantity. May be an expression: qty, 2 * qty, 3. |
| Angle A / Angle B | The cut angles at the first and second ends (90/90 by default). |
| Orient. | Which dimension the length follows: W (horizontal), H (vertical) or any model parameter. |
BOM — Details
Non-profile items: Sheet, Screws, Blocks, Sealant, Other. The fields are the category, the name (which may contain {name}), the quantity (an expression) and the unit.
Child Objects
An object can carry other objects — a galvanised inner sheet, say. The child is chosen from the library and its dimensions are expressions of the parent's.
| Card field | Meaning |
|---|---|
| Name and code | Which library object is embedded. |
| Dimensions | For each of the child's dimensions, an expression in terms of the parent's — for example W - 40 or H. An empty field means “take the parent's dimension of the same name”. |
| Edit object… | Open the child for editing right here. The action bar changes to ✓ Done (apply to parent) and Cancel, and a breadcrumb trail appears at the top. Nesting is unlimited — a child of a child works too. |
| × | Remove the child object. |
Picking mode on the drawing
The Pick Endpoints, Pick Line, Pick Angle and Pick 2 Holes/Points buttons put the preview into picking mode: a hint at the bottom says what to click next, and picked points stay marked on the drawing. Pressing the button again leaves the mode.
Building a new object from scratch
- + Sheet metal part — an empty form.
- Fill in Display Name and Type Code, choose the materials and the group.
- Load DXF… — load the drawing of the part at its minimum size.
- Add the Parameters and mark their end points on the drawing.
- Add Scaling Lines so the geometry follows those parameters.
- If needed, describe the angles, the hole runs, the BOM content and the child objects.
- Build & Preview — check the result at test sizes.
- Save to library. The type appears in the Type dropdown of the Part List.
Working with JSON
panel_type_spec (type metadata), object (dimensions, BOM, children) and draw (the geometry program). The format is documented in detail in The object JSON format (in short on the New object JSON tab of the API panel).The model builder — Sheet Metal tab
The second way to describe a panel type: instead of marking up a finished drawing you model the part the way you would in SolidWorks — draw the face, dimension it, fold the walls, add notches and holes. The flat pattern, the bend lines, the 3D model and the DXF are all worked out from the formulas. Open to every user.
A model (Sheet Metal)
A parametric part: face, walls, cut-outs. No reference DXF, no scaling lines — every coordinate is a formula in the dimensions. Comes with a 3D view and on-model editing of the cut-outs.
A mark-up (Advanced)
The older way: a DXF drawn at its smallest size is loaded and marked up with scaling lines. It stays for objects whose drawing already exists and is easier to mark up than to redraw.
Both live in the same Object Settings window: the tabs Sheet Metal, Assembly, Advanced and JSON. An object saved as a model opens in the builder; one made by mark-up opens in Advanced.
The builder window
| Column | What is in it |
|---|---|
| Left | Your library of types. + Sheet metal part starts an empty one, From template ▾ starts from a ready-made model, × deletes. |
| Middle | The face sketch (grid, snap, dimensions) and, beside it, the preview: 2D flat — the flat pattern nesting will get, 3D — the folded part. |
| Right | Properties: OBJECT first (name, code, materials), then PARAMETERS and VARIABLES, and below them whatever is selected — an edge, a vertex, a dimension, a wall. |
The line under the sketch lists the gestures: drag a vertex, click an edge or a dimension, double-click a dimension to edit it, right-click for actions, Alt-drag to pan. Fully defined above the sketch means the dimensions are enough and the contour cannot drift.
The OBJECT card — the type itself
| Field | What it does |
|---|---|
| Display name | The type's name in the Part List, the grid's lists and the reports. |
| Type code | A short unique code (capital letters, digits, _). The type cannot be saved without it. It is the same code as parts[].type in the API. Child parts get CODE_suffix. |
| Material group | The group used by Set group material… in the Part List. |
| Engrave name | Engrave the part's name on the flat (when the job has engraving on). |
| CNC allowed | Whether CNC programs are generated for this type. |
| Locked dims | Part List columns pinned to a constant, comma-separated: D=81. They show greyed out and cannot be edited. |
| Materials | The materials the type may be cut from (Name plus the internal Class). Empty — any sheet of the job. |
| Grid | How the Grid tab drives the type. Corner panel — spans two grid cells: the type can go in as one panel over two cells across a joint (only such types are in the Corner panel… list); Corner angle — the parameter that takes the wall's turn at that joint (the corner panel's fold). Angles that follow the joint: for each angle parameter, the cell edge (Left / Right / Top / Bottom edge) whose joint it follows, and Reverse when the angle is measured the other way. The formulas are in the Grid chapter. The block opens by itself when the type already has settings. |
| Extra shapes → Placement | A Python lambda that carries the inner cut-outs from the part editor onto the flat: lambda x, y, depth, params=None: (x + depth, y + depth) — shifted by the wall depth. |
The face sketch: tools and menus
| Tool | What it does |
|---|---|
| ★ Name · + | The object's parts. The star marks the main one — the Part List row's panel itself; + adds another sheet-metal part (see below). |
| Select | Pick and drag vertices, edges and dimensions. |
| Draw face | Draw the face again point by point: click — a point, Enter or a click on the first point — close, Esc — cancel. |
| Smart Dimension | Click an edge or two vertices for a new dimension. Its value can be replaced by a formula straight away. |
| Preset face… | A ready face: Rectangle, L-shape, Trapezoid — already dimensioned. |
| Grid · Snap | The sketch grid step (mm) and snapping to it. |
| Flange all | Fold every edge of the face with the same wall. |
A right-click opens the menu of whatever is under the cursor:
| Under the cursor | Actions |
|---|---|
| An edge | Add edge flange / Remove flange, Add a bend after the flange, Dimension this edge, Make horizontal / Make vertical / Remove relation, Split edge. |
| A vertex | Fillet (a radius) and Chamfer (Distance 2 for an unequal one), Sharp corner to remove it, Make origin to make it (0, 0), Delete vertex. Dimensions keep measuring the virtual sharp corner, as in SolidWorks; a chamfer's edge may carry a wall of its own. |
| A dimension | Make it horizontal / vertical / length / an angle — change the dimension's kind (an angle is to the horizontal), Delete dimension. |
When the sketch is short of dimensions or has too many, a list of problems shows over it (the first four); the newer of two conflicting dimensions is the one flagged.
Several parts in one object
The + next to the main part adds another sheet-metal part — a sandwich panel's galvanised sheet, for instance. It has its own sketch, walls, material and holes, and in the Part card:
| Field | What it does |
|---|---|
| Name | The part's name in the builder. |
| Qty / object | How many per panel — a number or a formula. |
| Name suffix | Appended to the row's name (Panel → Panel_galv) and to the type code (SPAB_GALV). |
| Part List name | What this part's type is called. |
| Material · Class | What it is cut from — it may differ from the main part. |
| Stock materials | The materials allowed for this part alone. |
Such parts go into the BOM and come out of the Part List's Export DXF as files of their own.
Eight steps: a panel type from scratch
- + Sheet metal part → the Sheet Metal tab.
- In OBJECT fill in Display name, Type code (short and unique), Material group and the materials.
- PARAMETERS: add the dimensions the Part List will drive —
W,H,D, andW2,H2,ANGLEA… if you need them. Each parameter becomes a Part List column; its Value is what a new part of this type starts at. - The face: Preset face ▾ (rectangle, L-shape, trapezoid) or Draw face point by point.
- Smart Dimension: add the dimensions and type formulas into them (
=W,=H - 2*D). Aim for Fully defined. - Sheet & bend: thickness, bend radius and how the flat pattern is worked out. Flange all folds every edge at once; for a single edge, right-click it → Add edge flange.
- Cut-outs and holes: Add on a wall → Notch / Hole / Hole row / Corner tab, then click the wall on the 2D flat or in 3D. Check the part in 3D.
- Save to library — the type appears in the Part List type list straight away.
Parameters, variables and formulas
PARAMETERS are what the Part List sees.
| Column | What it does |
|---|---|
| Name | The Part List column code in capitals (W, W2, H, D, ANGLEA, LIP…). A red field means the name is taken, reserved (function names, the sm_ and sk_ prefixes) or used twice. The field's tooltip shows the parameter's description. |
| Value | The default: a new Part List row of this type starts with it, and the preview is built at it (the Previewed at… line underneath). |
| Min · Max | The allowed range. For an angle parameter they make up the Part List's list of values (1° steps) and the limits the grid clamps a computed angle to. |
| ° | The parameter is an angle in degrees: the Part List offers a drop-down for it, and it can be linked to a grid joint (the Grid block). A parameter whose name contains angle always is one. |
| × | Delete the parameter. |
VARIABLES are intermediate values worked out from the parameters and referred to by the formulas (the equations table of Motion). Their order does not matter: A = 100, B = 90, C = A*cos(B). The Value column shows the current value at the preview sizes, err a formula error (hover to read it). A formula in any field of the builder starts with =. Units can go straight into numbers: mm, cm, m, in, deg, rad.
| You can use | Example |
|---|---|
| Arithmetic, brackets, powers | =W - 2*D, =(D - 6.06)^2 |
| Trigonometry — in degrees | =D / cos(ANGLEA - 90), =tan(A/2) |
| Minimum, maximum, absolute, root | =max(0, ANGLEA - 90), =sqrt(W^2 + H^2) |
| Comparisons and logic | =W >= 215, =D >= 86 and W > 278 |
| A condition | =iif(D >= 86, 18.75, 0) |
when fieldEvery notch, hole and tab has a when condition. While it is false the feature is simply not drawn — so one type serves both narrow and wide panels.Walls (flanges) and the bends after them
A selected wall shows its own fields on the right.
| Field | What it does |
|---|---|
| Flange length | The wall's width from the bend line, as a formula (=D, =D + 12.84). |
| Bend ° | The bend angle: 90 is square, less leans out, more leans in. 180 is a hem folded back on itself. |
| Side | Up / Down — which way off the face the wall folds. |
| Bend {n}: length / Bend ° / Fold | Further bends of the same wall — a return, a lip, a Z. Fold: in carries on the same way, out turns back the other way. |
| Return ends | How the return (bend 2 on) ends at a relieved corner. Mitre 45° cuts it back so it meets the neighbouring wall's return in a box corner; Square runs it straight to the seam like the wall itself; Auto mitres only where the neighbouring wall has a return too — the usual choice. Mitring a return that meets nothing only shortens it, and on a return wider than half its wall the two mitres cross. At a fold through the face the returns always meet where the two halves of the part do: a leg standing off the face is mitred by half the fold angle, a return that turns back parallel to the face runs square into the inside corner. |
| Bend deduction | A deduction for this bend alone, when it differs from the material's. |
| End chamfer | Cuts the wall's corners back: Along its outer edge and Down its end, through intermediate points if needed. |
How to add another bend line
Three different things go by that name, and each is done its own way:
| What you want | How to get it |
|---|---|
| A return or a lip on a wall that is already folded | Right-click the edge → Add a bend after the flange. A Bend 2 row appears with its own length, angle and direction (there can be several). |
| A bend through the face itself (a corner panel) | The Fold across the face card: From vertex / To vertex for the line, plus Bend °, Side and, if needed, Deduction. Walls the line crosses are mitred into a V automatically. |
| To fold part of an edge, not all of it | Right-click the edge → Split edge halves it (a new vertex appears) and only the half you want gets a flange. The same trick adds the vertex a fold across the face needs. |
Corners where two walls meet
| Field | What it does |
|---|---|
| Where two flanges meet | Relief cuts the walls apart along their seam (an ordinary formed part); Mitre brings them together. |
| Gap | The shop clearance between neighbouring walls, mm. |
| Relief shape | Rectangular — a sharp corner; Circular — a round relief of diameter Ø where the bend lines cross; Back cut — the corner is cut straight across, Cut back deep — the "back-cut corner" the Fusion drawings ask for. |
Returns (the second and later bends) are always mitred 45° at a box corner, whatever the relief shape is.
Notches, holes and tabs — straight on the model
- In the Add on a wall strip pick the kind: Notch (a slot in from the outer edge), Hole, Hole row (a run of holes along the wall) or Corner tab (an ear at the nearer corner).
- Click the wall — on the 2D flat or in 3D, whichever suits. The feature arrives with the numbers of the spot you clicked; clicking the face itself adds a plain hole.
- Any field then takes a formula:
=W / 2,=D - 20. - A selected wall shows a grip on each of its features. Drag a grip (hold Shift to keep to one axis); click it and its field values appear beside it — click a value to type a new one.
- Delete removes the selected feature.
Wall feature fields
| Feature | Fields |
|---|---|
| Notch | From (the wall's start / end / centre) and At — where the notch's centre is; Width, Depth — in from the outer edge; Mirror — a copy mirrored about the middle. |
| Hole | From / At — the position along the wall; Depth and Measured from (Outer edge of the wall, or Centre of bend); Ø; Mirror. |
| Hole row | From start / From end — the insets of the end holes; Depth and Measured from; Ø; Spacing: Max gap (the count is chosen so no gap exceeds Max gap) or Size table (classic) (the count comes from the classic table by the size in Count by, e.g. =W); Ends — holes at the end points too. |
| Corner tab (ear) | End (start / end / both), From corner — the inset from the corner, Width, Length, Skew ° (both sides lean the same way — a parallelogram), Taper ° (narrows toward the tip — a trapezoid). In 3D the ear folds onto the neighbouring wall. |
| All of them | when — the condition under which the feature exists (=W >= 300). |
Holes and marks on the face
| Card | What it sets |
|---|---|
| Holes | Single holes in the face: X, Y from the sketch origin (formulas allowed) and Ø. |
| Hole rules | A run of evenly spaced holes between X1 Y1 and X2 Y2, no more than Max step apart, diameter Ø; Ends — holes at the end points too. |
| Marks | Mark lines (X1 Y1 → X2 Y2) on a Layer of their own — the alignment marks of the Corner Sofit Panel, for instance. |
Material and the flat pattern
| Field | What it does |
|---|---|
| Thickness, Bend radius | Sheet thickness and the inside radius of the bend. |
| Bend allowance | How the flat is worked out: K-factor (the K value, 0.44 by default), Bend allowance (BA) or Bend deduction (BD) — a number you already know. |
| Bend line | Whether bend lines are drawn in the DXF. For ACM that is the V-groove and it must stay; steel or aluminium folded on a press brake has none — switch it off. |
Assembly — bill of materials, profiles and child parts
The Assembly tab describes everything that goes into the BOM with the panel: profiles (with their cut length and count), consumables (screws, blocks, sealant), time and direct cost, and child parts — the galvanised sheet inside a sandwich panel, for instance. A child part gets the code CODE_suffix and dimensions of its own.
The preview: 2D flat and 3D
Above the preview: the 2D flat / 3D switch, the part's name and the flat's overall size in mm, the Dims button, and on the right Export JSON and Save to library. The divider between the sketch and the preview can be dragged; the sketch column never gets narrower than the Assembly tab's tables need.
- 2D flat — the flat exactly as nesting will get it: outline, holes, bend lines (if switched on). The walls are shaded over it: all of them faintly, the selected one in orange. Clicking a wall selects it, and the feature grips, dragging and the values beside the grips work just as in 3D.
- 3D — the part folded from the very same flat; rotate with the mouse, the wheel zooms.
- Fit — fit the part to the view.
- The line under the preview: Previewed at W=…, H=… — the parameter values (their Values) the part is shown at; for an extra part also its quantity per object.
- A build error (a wall that does not fit at these sizes, say) shows in red over the preview.
The same 2D and 3D are in the Part List's preview and part-editor windows, where they can be saved as DXF, STL or OBJ (see Viewing DXF).
The 3D model
The 3D view builds the part from the very flat pattern the DXF gets. Every bend is drawn as an arc — inside radius the material's Bend radius, one sheet thick — and the legs either side stop where it starts, so a corner reads as a real formed bend, not two slabs butted together. With a radius of 0 (steel, ACM) the inside corner is sharp and the outside is rounded by the sheet's thickness. Hems keep their sharp fold, with the sheet laid back over itself.
The Dims button above the preview draws the object's parameters on the part — the face sketch's own dimensions, every wall and return length, every bend angle — each labelled with the Part List column it comes from. A wall whose length is a formula of one parameter (=D + 3.28) is labelled with that parameter.
Templates
From template ▾ lists the ready-made models with a line about each; hovering highlights the row and clicking opens that template in the builder as a new object (change the code so it does not shadow an existing type). The same menu can save every template into the library at once.
| Template | What it is |
|---|---|
| Standard Panel | The ACM tray: four walls, corner reliefs, wall holes by the size table. |
| Corner Panel / Corner Sofit Panel | A W2 + W face folded by ANGLE (90° by default); the soffit one adds alignment marks. Both are corner panels for the grid: they cover two cells, and ANGLE takes the wall's turn at the joint. |
| Back Panel | A steel pan with clip notches. Every corner is closed by an ear from both of its walls — the side walls' ears in the lower part, the top and bottom walls' in the upper part — and every wall ends in a 1/2" lip turned 45° in (the notches cut through the lip). The side walls lean by ANGLEA / ANGLEB. In the grid ANGLEA/ANGLEB follow the left/right joint (next to an inside corner the wall opens to 135°). |
| Sandwich Back Panel | The pan for a sandwich panel — with folded-in side-wall ends and a 1/2" lip turned 45° in — plus the flat aluminium sheet. |
| Sandwich Aluminum Panel | An aluminium tray: the side walls' ends fold in, and every wall ends in a 16 mm lip turned parallel to the face, which the galvanised sheet sits on. In the grid ANGLEA/ANGLEB follow the left/right joint (45° next to an outside corner). |
| Plank Panel | A 3 mm plank: returns top and bottom, an interlocking leg and lip down each side. |
| Soffit Panel / Soffit Corner Panel | A soffit with a fascia and top return along its front edge; on the corner one the fascia carries on round an end and is mitred. |
| Canopy Corner Panel | A fascia turning a corner in plan, with a soffit leg underneath. |
| Canopy Corner Fascia Panel | A U channel turning a corner in plan: the fascia folds round the corner, the top plate and the back riser come off its top edge. |
| Angle BP | The one DXF-based (marked-up) object left in the standard set: a pan with corner angles A / B. |
Recipes: the five classic panels from scratch
These are the exact settings the templates of the same name are built from. The numbers come from the working drawings, so the result matches the panels the shop has been cutting for years.
1. Standard Panel — the ACM tray
- OBJECT: name "Standard Panel", code
R, group Exterior Panels, materials Aluminum 3mm and ACM 4 mm. - PARAMETERS:
W600 (304.8…3000),H400 (304.8…3000),D25.4 (24…100). - Face: Preset face ▾ → Rectangle; dimensions
=Wacross and=Hup. - Sheet & bend: Thickness 4, Bend radius 0, method Bend deduction = 0.5, Bend line on (ACM is grooved).
- Flange all: all four walls, Flange length
=D, Bend 90°, Side Up. - Corners: Relief, Gap 0, Relief shape Rectangular.
- Holes in every wall, all 14 mm out from the bend line: a Hole 20.5 from the start (mirrored to the other end), another at 51, and a Hole row between them spaced by the size table (Count by
=Won the horizontal walls,=Hon the vertical ones). - Assembly: one sheet, 16 screws, 4 shear blocks, the W1 and H profiles twice each.
2. Corner Panel
- Parameters:
W600,W2300,H400,D25.4 and the angleANGLE90 (15…165, ticked °) — the panel's fold. - The face is a (W2 + W) × H rectangle. To get a vertex on the fold line, right-click the top and the bottom edge → Split edge, then dimension the halves
=W2and=W. - Fold across the face: from the lower middle vertex to the upper one, Bend
=ANGLE, Side Up, Deduction 1. The walls' V at the fold is worked out from that angle, so the flat is right for a corner that is not square too. - OBJECT → Grid: Corner panel on, Corner angle =
ANGLE— the grid then places the panel over two cells and folds it by the wall's turn. - All six edges get a
=Dwall at 90°; the ones the fold crosses are mitred into a V for you. - Wall holes as on the Standard Panel (14 mm out; 20.5 and 50.5 from the corner, 55.5 from the fold, a table-spaced row between).
- Corner Sofit Panel is the same object with two Marks 20 mm before the fold, near the top and the bottom.
3. Back Panel — a steel pan with leaning walls
- Parameters:
W600,H400,D101.6, and the anglesANGLEA/ANGLEB90 (90…150) — how far the left and right wall lean; 90 is a square wall, which is what the panel gets at a flat grid joint. - VARIABLES:
SA = (D - 6.06) * tan(ANGLEA - 90),SBlikewise for ANGLEB,LA = (D - 6.06) / cos(ANGLEA - 90) + 11.34andLB. - Face: a
=W - SA - SB×=Hrectangle — W is measured where the walls meet the corner chamfers. - Sheet & bend: Thickness 1, Bend radius 0, Bend deduction 0, Bend line off.
- Top and bottom walls:
=D + 3.28, deduction 0.685, End chamfer Along 10 / Down 9.34, and four Notches 5 wide and 12.77 deep at 80.8 and 131.6 from each end, with the conditions=W >= 215and=W >= 300. - Side walls: length
=LA/=LB, angle=90 - (ANGLEA - 90), deduction 1.21, chamfer Along 6.61 / Down 9.34. - Each side wall carries a Corner tab 26.4 long, tapered by
=max(0, ANGLEA - 90)and skewed by=min(0, ANGLEA - 90), plus a row of Ø4.7625 holes 20.71 in from the outer edge, at most 350 mm apart. - The lip: right-click each wall → Add a bend after the flange — 12.7 mm, 45°, in; shorten the wall's first leg by the same 12.7 (steel deducts 0) and the flat stays exactly as it was — only the bend is added. Stop the corner tab just short of the lip's bend line.
- Ears on all four walls, so both close each corner: the side wall's ear from 2 mm above the bend up to half the depth (never below 28.4 mm), the top and bottom walls' ears from there to the lip, all 26.4 mm long. They then meet neither in the flat nor inside the corner. The top/bottom ear is skewed by
atan(-sin(2·lean)/2)so it lies square on the leaning side wall. The template keeps these in the variables SPLIT, EWx, Rx, TSx, TKx, and an ear with no room is switched off by itself. - OBJECT → Grid:
ANGLEA— Left edge,ANGLEB— Right edge, so the grid opens the wall next to an inside corner by itself.
4. Sandwich Back Panel
- Parameters:
W600,H400,D127. - VARIABLES:
DEEP = iif(D >= 86 and W > 278, 1, 0)— a deep pan has longer walls and deeper notches. - Face:
=W + 12.7×=H + 12.7, 1 mm steel, bend lines off. - Walls:
=D + 5.29 + 18.75 * DEEP(top and bottom) and=D + 3.28 + 18.75 * DEEP(sides); the corner chamfers and notch depths go throughDEEPtoo (=iif(DEEP, 24.49, 6.61)and so on). - Tabs switched by depth:
=D < 86 and W > 278,=D >= 86 and D < 127,=D >= 127. - A second part (+ Part): the flat aluminium sheet
=W×=H, 2 mm, suffix_al, its own material and no CNC. - The lip: right-click each wall → Add a bend after the flange — 12.7 mm, 45°, in; shorten the wall's first leg by the same 12.7 (steel deducts 0) and the flat stays exactly as it was — only the bend is added. Stop the corner tab just short of the lip's bend line.
5. Sandwich Aluminum Panel
- Parameters:
W600,H400,D81, anglesANGLEA/ANGLEB60 (1…150). - VARIABLES:
LA = min(ANGLEA, 90),LB = min(ANGLEB, 90), andSPC_W/SPC_Hfor the galvanised sheet. - Face
=W×=H, 2 mm aluminium, deduction 3.66, face share 0.5, bend lines off. - All four walls:
=D + 12.84with a two-step End chamfer (Along 14.08 / Down 16.53 and an intermediate point 1.92 / 12.16). - The side walls when the wall leans: length
=(D - 5.52) / sin(LA) + 18.36, angle=180 - LA, and a row of Ø25 access holes 28.5 out from the bend, conditioned on=LA < 90 and D >= 50. - Face holes (Hole rules): 12.21 mm in from each edge, starting 50 mm from the corners, at most 304.8 mm apart.
- The second part: the galvanised sheet
=SPC_W×=SPC_H, 1 mm, holes 6 mm in from every edge at most 304.8 mm apart. - The lip: Add a bend after the flange on every wall — 16 mm, in, at 90° on the top and bottom walls and
=LA/=LBon the sides (so it lies parallel to the face). Shorten the first leg by 12.34 (16 less the 3.66 deduction) and the flat does not change. - OBJECT → Grid:
ANGLEA— Left edge,ANGLEB— Right edge: next to an outside corner the grid tucks the wall in under the face (45°).
Formed aluminium panels (the Fusion R1 / R6 / R7 drawings)
These five types are built from the working drawings of the Fusion system: 3 mm plate, press-brake bends (k-factor 0.44, radius 3), Back cut corners 6 mm deep, and the FUSDFPE10 frame inside.
| Type | Dimensions | What is in it |
|---|---|---|
| Plank Panel (PLK) | W, H, D, LIP, D2, LIP2 | A D return top and bottom; down the sides the interlock — a D2/D leg and a LIP2/LIP lip turned back out, running straight to the ends. The #12 countersunk screw holes are in the lips, 8 mm out from the wall (the first 79 mm from the top, then every 340), and two Ø6.35 weep holes sit in the bottom return. |
| Soffit Panel (SFT) | W, H, H2, H3, D, ANGLE | A W × H soffit; along its front edge the fascia H2 and the top return H3 at ANGLE (92°); every other edge gets a D return. Ø10 hang holes 150 mm in from the ends and Ø9.525 weeps 28 mm from the fascia, at most 610 mm apart. |
| Soffit Corner Panel (SFTC) | the same | The fascia carries on round one end and the two are mitred. The opposite hand is the same object with the fascia moved to the other end. |
| Canopy Corner Panel (CNP) | W, W2, H, H2, D | The fascia turns a corner in plan (a fold through the face), the soffit leg H2 hangs below it with a D return of its own, and the rest of the outline gets D returns. |
| Canopy Corner Fascia Panel (CNPF) | W, W2, H, H1, H3, RET, D, ANGLEA, ANGLEB | The fascia (H1 high, legs W and W2 measured outside) is the face and folds round the corner, like the canopy corner panel. The top plate H comes off its top edge at ANGLEA and the back riser H3 off the plate at ANGLEB; a RET return runs along the fascia's bottom (weep holes and Ø10 hang holes in it) and each end turns in a D return. At the corner the plates and the bottom returns meet in a 45° mitre, the risers square in the inside corner. 3/16" rivet holes along the riser, 3" from its ends at 16" centres. H must be less than both legs. |
The object (panel type) JSON format
Every panel type is one JSON file. The object editor's Export JSON writes it; Import JSON… and the API take it (POST /definitions/{name}, the objects array of /api/job, any .json with a panel_type_spec inside a /api/job-zip archive). This chapter describes every field and how to put such a file together yourself.
Two kinds of object
A model (Sheet Metal)
The file carries an object_model — the part description the model builder edits. In such a file panel_type_spec, object and draw are compiled from the model on every save. So change object_model and let the rest be rebuilt: Import JSON… → the object opens in the builder → Save to library, or over the API POST /sheetmetal-build (the body is the model itself) → POST /definitions/{name}.
A DXF mark-up (Advanced)
No object_model: the geometry is the draw program (points, scaling lines, drawing steps). The Advanced tab builds it from a marked-up drawing; by hand you usually edit only panel_type_spec and the BOM in object.
The top level
{
"panel_type_spec": { "code": "MBP", "display": "My Back Pan", "dimensions": ["W", "H", "D"], ... },
"object": { "type_code": "MBP", "dims": { "W": "W", "H": "H", "D": "D" }, "profiles": [], "details": [], ... },
"draw": { "layers": [...], "vars": [...], "point_sets": {...}, "steps": [...] },
"object_model": { "version": 2, "spec": {...}, "inputs": [...], "parts": [...], ... } // modelled objects only
}
| Key | Required | What it is |
|---|---|---|
panel_type_spec | yes | How the type looks and behaves: code, name, dimensions, materials, angles, grid. |
object | yes | Dimension expressions, the BOM (profiles, consumables, time) and child parts. |
draw | yes | The program that draws the flat's DXF. |
object_model | models only | The builder's model; the three blocks above are compiled from it. |
shipped_fingerprint | no | A marker of the standard library (untouched copies update themselves by it). Do not copy it into your own files. |
panel_type_spec
| Field | Type | Meaning |
|---|---|---|
code | string, required | The type's unique code — what parts[].type names. Capitals, digits, _. |
display | string | The name shown in the UI. |
aliases | strings | Other codes that mean this type too. |
dimensions | strings | The type's dimensions in Part List column order (["W","H","D","ANGLEA"]) — the same keys as a part row's params. |
dimension_defaults | object | What a new Part List row starts with: {"W": 600, "D": 101.6}. |
param_descriptions | object | Dimension captions (tooltips in the Part List and the editor). |
default_depth | number | The D of a new row when dimension_defaults has none. |
fixed_dims | object | Dimensions pinned to a constant (greyed out in the Part List): {"D": "81"}. |
model_options | object | Angles for the Part List: for each angle dimension four keys named after it in lower case — anglea_min, anglea_max, anglea_default, anglea_step; or the shared angle_min/_max/_default/_step. A dimension whose name contains angle always is one. /panel-types hands them back gathered into an angles field. |
grid | object | How the Grid tab drives the type — see below. |
cnc_allowed | boolean | Whether CNC programs are generated. |
requires_w2 | boolean | The type has a second leg W2 (corner panels). |
material_group | string | The group for bulk material changes. |
materials | array | [{"name": "Steel 1mm", "class": "steel_1mm"}] — what it may be cut from; empty — anything. class is the internal id parts are grouped by into their own nesting job. |
layer_aliases | strings | Incoming DXF layers that mean this type. |
extra_shapes_transform | string | A Python lambda placing the inner cut-outs on the flat. |
model_key, preview_image | string | Internal ("standard" for models; a preview picture). |
panel_type_spec is simply skipped (it used to make the type quietly vanish from the list). A misspelt field (defualt_depth) will therefore not break the file — but it will not work either; check the names.grid — the Grid tab's settings
"grid": {
"edge_angles": {
"ANGLEA": { "edge": "left" },
"ANGLEB": { "edge": "right", "reverse": false }
},
"corner": true,
"corner_angle": "ANGLE"
}
| Field | Meaning |
|---|---|
edge_angles | Angle dimensions that follow the joint at an edge of the cell: edge is left, right, top or bottom. The short form "ANGLEA": "left" works too. At an angled joint the dimension becomes 90 − angle/2, with "reverse": true 90 + angle/2; at a flat joint it takes its default (..._default). |
corner | true — the type can go in as one panel over two cells across a joint (it appears in the Corner panel… list). |
corner_angle | The dimension that takes the wall turn at the shared joint (unsigned: 90 for a square corner). Only meaningful with corner. |
DXNest cleans this block: unknown edges and names missing from dimensions are dropped, and a dimension linked to an edge cannot also be the corner_angle. A corner panel's sizes (no joint at the corner line) are worked out by the grid itself — see Grid.
object
| Field | Meaning |
|---|---|
type_code | The same code as panel_type_spec.code. |
dims | Each dimension is an expression string in the row's parameters: "W": "W", "W_unf": "W + 2*D - 1". *_unf is the flat size used by the BOM. |
profiles | Linear stock: [{"name": "{name} W1", "segments": [{"label", "cut_distance", "qty", "angles": {"A", "B"}, "orientation"}]}]. Counts and lengths are expressions ("2 * qty"). |
details | Other BOM items: {"category", "name", "qty", "unit"}, category being Sheet, Screws, Blocks, Sealant or Other. Names accept the {name} placeholder. |
time_cost | {"cut_min", "bend_min", "assemble_min", "direct_cost"} — expressions. |
sub_parts | Child parts: each a full definition (panel_type_spec, object, draw) plus suffix (appended to the row's name), qty (an expression), type_code, dims (child dimension ← an expression in the parent's) and material_name / material_class. A model does not spell them out — every extra part in object_model.parts and every assembly component becomes a sub_parts entry by itself. Child parts go into the BOM and the Export DXF. |
draw — the flat's program (mark-up objects)
| Field | Meaning |
|---|---|
layers | DXF layers: CONTOUR, HOLES, INNER CONTOUR, GROOVES, TEXT… |
vars | The program's variables: the drawing's minimum size, intermediate values ({"name", "expr"}). |
anchors, point_sets | Scaling-line anchors and named point lists. |
steps | The steps, in order: polyline, polyline_case, auto_contour, line, circle, circles, rounded_slot, hole_line, hole_row, edge_holes, corner_edge_holes, circles_with_distance, mtext, text_lines, set, if, rotate_layout, and last apply_extra_shapes (stamps the part editor's inner cut-outs). |
rules, angles, param_endpoints, angle_scaling_lines | The Advanced tab's tables (hole rules, variable angles, dimension end points, the rigid seams of the angles) — kept so the object reopens in the editor. |
Writing draw by hand is awkward and risky; it is safer to mark up a drawing in the Advanced tab or to model the part. A modelled object's draw is generated entirely.
object_model — the builder's model
| Field | Meaning |
|---|---|
version | 2. |
spec | display, code, material_group, materials, cnc_allowed, fixed_dims, extra_shapes_transform, layer_aliases, grid — panel_type_spec is made from these. |
inputs | The parameters — Part List columns: {"name", "default", "min", "max", "description", "angle"}. They give dimensions, dimension_defaults, param_descriptions, and the angle ones ("angle": true, or angle in the name) give model_options (1° steps). |
variables | [{"name", "expr"}] — the equations table; the expression has no =. |
parts | The sheet-metal parts. The first is the panel itself; the others become sub_parts coded CODE_SUFFIX. |
assembly | components (library objects: label, suffix, qty, dims, an embedded definition), profiles (profile_name, label, orientation, cut_distance, qty, angle_a, angle_b), details, time_cost. |
engrave_name | Engrave the part's name. |
A part (parts[])
| Field | Meaning |
|---|---|
id, name, suffix, qty | Identifier, name, a child part's suffix ("_galv"), count per panel (an expression). |
material | thickness, bend_radius, method (kfactor | allowance | deduction), k_factor, bend_allowance, bend_deduction, face_share (how much of the deduction falls on the face: 1 — all of it, 0.5 — half). |
material_name, material_class, materials, display, cnc_allowed | For an extra part: what it is cut from, allowed materials, its type's name, CNC. |
sketch | nodes [{"id","x","y"}] — the face's vertices; edge i runs from vertex i to i+1 (on a rectangle 0 is the bottom, 1 the right, 2 the top, 3 the left). constraints [{"type": "horizontal"|"vertical", "edge"}], dimensions [{"type": "horizontal"|"vertical"|"length"|"angle", "a", "b", "value", "offset"}], origin — the vertex at (0, 0), folds [{"a", "b", "angle", "direction", "bend_deduction"}] — a bend across the face between two vertices (one per part). points — every vertex's coordinates as formulas, locals — the intermediate sk_… values: the builder writes them from the dimensions. |
flanges[] | edge, length, angle (the bend: 90 is square), direction (up|down), enabled, stages [{"length", "angle", "direction": "in"|"out"}] — further bends, bend_deduction, end_chamfer {"along", "down", "points": [{"along","down"}]}, return_ends (mitre|square|auto), features. |
wall features | notch {from (start|end|center), at, mirror, width, depth}; hole {from, at, mirror, t, ref (outer|bend), diameter}; hole_row {start, end, t, ref, diameter, spacing (max_step|table), max_step, count_by, ends}; tab {end (start|end|both), t (from the corner), width, length, skew, taper, fold}. Any of them may carry when. |
corner | treatment (relief|mitre), gap, relief (rectangular|circular|back_cut), relief_size. |
vertex_features[] | {"vertex", "type": "fillet"|"chamfer", "size", "size2", "flange"} — a rounded or chamfered sketch corner; a chamfer may carry a wall of its own. |
face features | holes [{"x","y","diameter"}], hole_rules [{"name","p1","p2","max_step","diameter","ends"}], lines [{"p1","p2","layer"}]. |
bend_lines | Draw bend lines in the DXF (false for press-brake steel). |
pointsDXNest reads the face's shape from sketch.points — one formula per coordinate. Change only the dimensions in the JSON and points stay as they were until the file is opened in the builder (which recomputes and saves them). Writing a model by hand? Give points as formulas directly, as in the example below; without points the fixed shape of nodes is used.Values and formulas
- Any size field is a number or a string. A string starting with
=is a formula:"=D + 3.28","=iif(D >= 86, 24.49, 6.61)".variablesandobject.dimstake no=. - Formulas see every
inputsandvariablesname; trigonometry is in degrees; there aremin,max,abs,sqrt,pow,floor,ceil,round, comparisons,and/or/not,iif, and the unitsmm/cm/m/in/deg/rad. - Names starting
sm_andsk_are reserved for the compiler.
Example: a pan with leaning walls linked to the grid
A working model (checked through /sheetmetal-build, the preview and 3D): a W − SA − SB × H face with formulas in points, four walls with the side ones leaning, a hole row and conditional notches, and in spec.grid the angles ANGLEA/ANGLEB following the left and right joints.
{
"version": 2,
"spec": {
"display": "My Back Pan",
"code": "MBP",
"material_group": "Back Pan Panels",
"materials": [{ "name": "Steel 1mm", "class": "steel_1mm" }],
"cnc_allowed": false,
"grid": { "edge_angles": { "ANGLEA": "left", "ANGLEB": { "edge": "right" } } }
},
"inputs": [
{ "name": "W", "default": 600, "min": 150, "max": 3000, "description": "Width" },
{ "name": "H", "default": 400, "min": 150, "max": 3000, "description": "Height" },
{ "name": "D", "default": 100, "min": 40, "max": 200, "description": "Depth" },
{ "name": "ANGLEA", "default": 90, "min": 90, "max": 150, "description": "Left wall angle", "angle": true },
{ "name": "ANGLEB", "default": 90, "min": 90, "max": 150, "description": "Right wall angle", "angle": true }
],
"variables": [
{ "name": "SA", "expr": "D * tan(ANGLEA - 90)" },
{ "name": "SB", "expr": "D * tan(ANGLEB - 90)" }
],
"parts": [
{
"id": "p1", "name": "Pan", "suffix": "", "qty": "1",
"material": { "thickness": 1, "bend_radius": 0, "method": "deduction",
"k_factor": 0.44, "bend_allowance": 0, "bend_deduction": 0, "face_share": 1 },
"sketch": {
"nodes": [ { "id": "n1", "x": 0, "y": 0 }, { "id": "n2", "x": 600, "y": 0 },
{ "id": "n3", "x": 600, "y": 400 }, { "id": "n4", "x": 0, "y": 400 } ],
"constraints": [],
"dimensions": [],
"origin": 0,
"points": [ ["0", "0"], ["=W - SA - SB", "0"], ["=W - SA - SB", "=H"], ["0", "=H"] ]
},
"flanges": [
{ "edge": 0, "length": "=D", "angle": "90", "direction": "up", "enabled": true },
{ "edge": 1, "length": "=D / cos(ANGLEB - 90)", "angle": "=180 - ANGLEB", "direction": "up", "enabled": true,
"features": [ { "type": "hole_row", "start": "40", "end": "40", "t": "15", "ref": "outer",
"diameter": 5, "spacing": "max_step", "max_step": 350, "ends": true } ] },
{ "edge": 2, "length": "=D", "angle": "90", "direction": "up", "enabled": true,
"features": [ { "type": "notch", "from": "start", "at": "80", "mirror": true,
"width": "5", "depth": "12", "when": "=W >= 300" } ] },
{ "edge": 3, "length": "=D / cos(ANGLEA - 90)", "angle": "=180 - ANGLEA", "direction": "up", "enabled": true }
],
"corner": { "treatment": "relief", "gap": 0, "relief": "rectangular" },
"features": { "holes": [], "hole_rules": [] },
"bend_lines": false
}
],
"assembly": {
"components": [], "profiles": [],
"details": [ { "category": "Sheet", "name": "Sheet {name}", "qty": "1", "unit": "pc" } ],
"time_cost": { "cut_min": "0", "bend_min": "0", "assemble_min": "0", "direct_cost": "0" }
},
"engrave_name": true
}
- Save the model to a file, say
my_back_pan.json. - In the app: Object Settings → Import JSON… → the model opens in the builder (Sheet Metal tab) → check 2D and 3D → Save to library.
- Over the API:
POST /sheetmetal-buildwith the model as the body → takedefinitionfrom the reply →POST /definitions/my_back_panwith thatdefinition. Or put the finished definition into theobjectsarray of a/api/jobrequest. - Check the type:
GET /panel-typesshould listMBPwithanglesandgrid;POST /part-previewshows the flat.
Checks before you use it
panel_type_spec.codeis there and matchesobject.type_code.- Every dimension the Part List or the API sends is in
dimensions; angles havemodel_options(in a model, the"angle": trueflag). gridnames onlydimensions;corner_angleonly together withcorner.- A run is refused (422) for rows whose flat crosses itself at their sizes — the message names the row and the reason. Try the extreme sizes through
/part-preview.
The project library
Your private store of projects. Only your account can open them.
Opening
Saving
The name is proposed automatically: first the name of the project already open (so saving overwrites it), otherwise the Job Name. Saving under the name of another project asks before overwriting it; in the save dialog, a click on a project picks it to save over. An edited nesting layout is stored with the document, so next time the Nesting and CNC tabs open without running again.
Uploading a file
Upload JSON accepts a project file you exported earlier. Every upload gets its own working folder, so two projects with the same name never overwrite each other's files.
The API panel: keys and documentation
The key button on the toolbar. It is where access keys are created, and it holds the full HTTP API documentation — everything another program needs to run production jobs in DXNest.
Access keys
- Type a name for the key (for example
CI server) and press Generate key. - Copy the key immediately — it is shown once and can never be read back.
- Afterwards the list shows only the prefix, the date of last use and a bin to revoke it.
The built-in documentation
Ten tabs, each with working examples and a copy button:
| Tab | About |
|---|---|
| Getting started | Authentication, the request envelope, examples in Python, curl and PowerShell. |
| Full sample | A ready bundle to download: a real project (11 parts on 4 materials), a modelled object with a child part and three CUSTOM DXF parts. |
| Job settings | The fields of the job document. |
| Parts list | How the parts array is described. |
| Sheet settings | Sheets, margins, priorities. |
| Engraving & nesting | Nesting and engraving options. |
| Materials | Multi-material jobs. |
| Profile settings | Bar stock and the cut plan. |
| Report settings | Which reports to generate and how to pass your own layouts. |
| New object JSON | The object definition format: panel_type_spec (with grid), object, draw, object_model. The full description is in The object JSON format. |
.zip, or one JSON.A short endpoint reference
The key is sent as the header Authorization: Bearer <key> or X-API-Key: <key>.
| Method and path | Purpose |
|---|---|
| POST /api/job | A complete run in one call: objects + CUSTOM DXF (base64) + the document. Returns a .zip or a JSON manifest. |
| POST /api/job-zip | The same, but the input is a single .zip holding the JSON document, the objects and the DXFs. |
| GET /panel-types | The available panel types: code, name, dimensions, materials, angles (angles: min/max/default/step), defaults (dimension_defaults), pinned dimensions (fixed_dims) and the grid settings (grid). |
| GET /definitions | Your object library. |
| GET /definitions/{name}/download | An object's full definition as a JSON file (the same as Export JSON). |
| POST /definitions/{name} | Add or replace an object (the body is a definition with panel_type_spec.code). |
| DELETE /definitions/{name} | Remove an object. |
| POST /part-preview | One row's flat ({type, params}) as DXF primitives — no run. |
| POST /part-dxf | The DXF of one row or several ({parts: [...]}); several files or child parts come back as a .zip. |
| POST /part-solid | The 3D model of a modelled type's row (panels, holes, bends); a DXF-marked type answers 422. |
| POST /sheetmetal-build | Compile an object_model into a full definition (nothing is saved); GET /sheetmetal-default — a starting model, POST /sheetmetal-solid — a model's 3D. |
| POST /object-build · /object-spec | Build a definition from the Advanced tab's tables, and back. |
| POST /definition-preview | The flat of an unsaved definition at given sizes. |
| POST /custom-dxf?name=… | Upload a CUSTOM DXF (the request body is the file). |
| GET/POST/PUT/DELETE /projects | The project library. |
| GET /files?path=… | Download one generated file. |
| GET /zip?path=… | Download a whole output folder as an archive. |
| GET/POST/DELETE /api-keys | Key management. |
| POST /bom · /bom.xlsx | Compute the BOM, or return it as an Excel file. |
| POST /packing-slip.xlsx · /labels.xlsx · /profiles.xlsx | Reports without a run. |
| POST /bend-report.pdf | The bending report (PDF) for a job document, without a run. An API run writes it only with reports.auto.bending: true. |
| GET/PUT /cnc-config | The machine configuration. |
| GET/POST /cnc-ops | Read and rewrite the operations of a machine program. |
/api/job is not saved as a project — take its files, or the .zip, when it finishes.Demo mode
The Try the demo button on the sign-in screen creates a throwaway account and takes you straight into the program. Every visitor gets their own account, so parallel runs never interfere.
How to tell you are in the demo
- a Demo badge next to the logo;
- a note in the status bar: “the PDF report is the only download”;
- the sign-out button reads Exit demo.
What works and what does not
Fully working
- importing your own DXF files;
- Part List, Grid, the object editor;
- nesting, the layout editor, CNC editing;
- the BOM and viewing reports;
- the PDF sheet report — this one can be downloaded.
Disabled
- saving and uploading projects;
- Excel exports (BOM, Slip, Labels, CutPlan);
- layout DXFs,
.zip, access to generated files; - backing up the CNC configuration;
- creating API keys.
DXNest Fabrication mark.Step-by-step recipes
Ten typical tasks from beginning to end. If you are not sure where to start, find the one closest to yours.
An order from parametric panels
- Open project — reuse a similar previous project, or New project for a clean sheet.
- Job Settings: Job Name, customer, date, PO; in Sheet Settings a quick Nesting depth.
- Sheet Settings: check the materials, their Kind and the sheet formats; use Priority to consume the right format first.
- Part List → Add part for each line item; type, dimensions, quantity, name.
- Add identical items with Duplicate rather than from scratch.
- Check a few parts with the eye button.
- BOM — compare Flat Pattern W/H against your sheet formats.
- Run ▶.
- Save project to keep the layout and the files in your library.
- Project Tree → download the DXFs, the
.ncfiles and the reports.
An order from existing drawings (CUSTOM DXF)
- Make sure the files have a closed outer contour.
- Import custom DXF parts on the toolbar — several files can be selected at once.
- Set Qty and Material for each row (the dimensions are not editable — they come from the file).
- Check the geometry with the eye button.
- Then as usual: Sheet Settings → Run → Save project.
A façade through Grid with a building corner
- Switch on Grid on the toolbar.
- Set Rows and Cols, then type the column widths and row heights straight into the grid headers.
- Set Joint X and Joint Y — the default joint width.
- Select a row or a block of cells and place a type with Place type….
- Click the joint where the wall turns and set its Angle (90 — outside corner, −90 — inside corner). The caption beside it shows the angle linked panel edges will get and the fold a corner panel will get.
- Panels either side of the joint whose type links its angles to the edges (Back Panel, Sandwich Aluminum Panel) recompute on their own — check the angles in the cells (red = the type cannot make that angle).
- Or select the two cells either side of the joint (Ctrl/⌘+click) and pick a type in Corner panel… — one panel round the corner, no joint at the corner line, folded by the wall's turn.
- Where windows go, select the cells and press Disable.
- For individual joints, select the cells and fill in Top/Right/Bottom/Left.
- Switch to Part List — all the panels are already there. Set quantities, materials and names.
- Run ▶ and continue as usual.
Creating your own panel type — by marking up a drawing
- Draw the part in CAD at its minimum size, with the contour and holes on their own layers; save as DXF.
- Toolbar → Object editor → + Sheet metal part.
- General Info: Display Name, a unique Type Code, Material Group, Default Depth, the Materials list, the CNC allowed checkbox.
- Load DXF… — load the drawing. Check in Reference Geometry that the contour and holes were read.
- Parameters: add
W,H,D(andW2and so on), enter Min; for each press Pick Endpoints and click two vertices on the drawing. - Scaling Lines: + Add Mark → choose Parameter and Axis, the type
rayorsegment, then Pick Line and click the edge. - Variable Angles — if the panel has a variable angle: Pick Angle, click A → B → C, then set Default, Min, Max, Step and Tag.
- Hole Rules — for runs of holes: Pick 2 Holes/Points, click the two end holes, then set Max step.
- BOM — Profiles and BOM — Details: describe what the panel consumes.
- Build & Preview — inspect the Scaled preview at test sizes.
- Save to library. The type appears at once in the Type list of the Part List.
Creating your own panel type — by modelling it
- Toolbar → Object Settings → + Sheet metal part, the Sheet Metal tab.
- Fill in Display name, Type code, the material group and the materials.
- PARAMETERS:
W,H,Dand whatever else the Part List should drive. - Draw the face (Preset face ▾ or Draw face) and dimension it with formulas until it reads Fully defined.
- Sheet & bend — thickness, radius, how the flat is worked out; Flange all, or single walls with their own angles and returns.
- Add on a wall — notches, holes, tabs; check the part in 3D.
- Assembly — profiles, consumables, child parts.
- Save to library.
In full in The model builder, which also holds recipes for the five classic panels and for the formed-aluminium ones.
Setting up a new machine
- Toolbar → CNC machines, tools & materials.
- + Machine — the new machine inherits the current one's tools; rename it.
- Tool library: + Tool for every cutter — number #, label, Ø mm, register H.
- Material library: make sure the materials you need exist and have the right Kind.
- In the Material block use + Add material… to attach a material to this machine.
- Fill in the per-layer parameters: Contour, Inner contour, Grooves, Weep lines, Engraving — tool, pass depths, feeds, RPM.
- In the Holes block set the default rule and, if needed, per-diameter rules.
- Check the G-code blocks: the start block, the tool-change blocks and the end block.
- Save. Subsequent runs follow these rules.
- To apply them to an already generated program — CNC tab → Recompute.
Hand-tuning a layout
- Open the Nesting tab and wait for the part geometry to load.
- Choose the material and the sheet in the list on the left.
- Move parts around; the magnet puts them at the right distance for you.
- Rotate with the ○ handle or the R key.
- Unwanted parts — Delete: they go back to the unplaced queue.
- An empty sheet — Delete sheet.
- From the unplaced queue: click a part, then click a free spot (or drag to lay an array).
- When the layout is right — Recompute CNC.
- Save project.
Your own packing-slip layout
- Right panel → Report Settings → Packing Slip → Edit template… (the Packing Slip tab opens on Template).
- Click the letterhead and type your company name, address and phone; change the title if you like.
- Fields on the right: edit a label, remove one with ×, + field for another — click into its value and pick it on the Insert bar.
- Columns: click a heading to move, align or remove it; + column, then click into the blue row and pick the part value (All sizes lists every size of a part).
- Notes, signature lines and the footer note at the bottom.
- Save as my default for every project, or Apply to this project for this one only.
- Switch to Packing slip for this job → Regenerate to see it with the job's values, then PDF, Excel or Print.
Automating through the API
- Toolbar → API access & keys → type a key name → Generate key.
- Copy the key at once — it is never shown again.
- The Full sample tab — download the ready bundle or the single-file request example.
- Send
POST /api/jobwith the headerAuthorization: Bearer <key>and the full document;"return": "zip"returns an archive of every file. - Collect the result when the run finishes.
Units, keys and small print
Units of measurement
Storage is always in millimetres. The selector in the status bar only changes how values are displayed and parsed.
Decimal inches
Fractional inches
In fractional mode every usual notation is accepted: 23 5/8, 23-5/8, 5/8, 23.62. Rounding is to 1/16″. Switching units does not change stored values: only a field you actually edited is written back.
Keys and gestures
| Where | Action | Keys / gesture |
|---|---|---|
| Part List | select a row | click the row number |
| add / remove a row from the selection | Ctrl/⌘ + click the number | |
| reorder rows | drag a row onto another | |
| commit a field value | Enter or click elsewhere | |
| Grid | select a cell | click |
| rectangular selection | drag, or Shift + click the opposite corner | |
| add / remove a cell | Ctrl/⌘ + click | |
| clear the selection | click the empty background | |
| jump to that cell's part | double-click | |
| select a joint | click the narrow strip between cells | |
| Nesting | select a part | click it |
| move | drag (snapping to margins and neighbours) | |
| rotate | drag the ○ handle above the part | |
| rotate in 15° steps | Shift while rotating | |
| rotate by 90° | R | |
| delete a part | Delete or Backspace | |
| deselect / leave placing mode | Esc | |
| place one copy | click a free spot in placing mode | |
| place an array of copies | drag in placing mode | |
| CNC | reorder operations | drag a row by its ⋮⋮ handle |
| highlight an operation on the drawing | click the row (clicking again clears it) | |
| Any canvas | zoom around the cursor | mouse wheel |
| pan | drag empty space | |
| fit to the window | the Fit button | |
| Packing slip / labels sheet | edit a text | click it |
| finish a one-line text | Enter (or click elsewhere) | |
| undo the edit | Esc | |
| insert a placeholder (template) | click into a text, then a value on the Insert bar | |
| Object editor | select a table row | click it (it becomes the active row for − Remove and the Pick buttons) |
| leave picking mode on the drawing | press the Pick… button again | |
| Modal windows | close | click × or the dark background outside |
| choose a file | Load DXF…, Import JSON…, Upload JSON open the system dialog |
Message reference
Every caption, banner and confirmation the application can show, with what it means and what to do. Find yours with the search box at the top.
Empty states — when there is nothing yet
| Message | Where | What it means |
|---|---|---|
No parts yet. Click Add part to begin. | Part List | The parts list is empty. Press Add part, or fill cells in Grid. |
Add parts to see the bill of materials. | BOM | There is nothing to compute the bill from. |
No BOM items for the current parts. | BOM | There are parts, but their types declare no profiles or extra items. |
Computing… | BOM | The engine is recomputing. It starts automatically a moment after a change. |
Run a job to populate the output tree with downloadable files. | Project Tree | No run has happened, so there are no files. |
No nesting layout yet. | Nesting | There is no layout. Run a job, or open a project with a saved layout. |
No sheets — every part is unplaced. | Nesting | Every sheet was deleted; the parts wait in the unplaced queue. |
All parts placed on sheets. | Nesting | The unplaced queue is empty — everything fitted. |
No saved projects yet. | Library | You have not saved anything yet. |
No API keys yet. | API panel | No keys have been created. |
Nothing stored yet. | API panel | The disk is empty — no run has happened. |
No child objects. | Object editor | This type carries no child parts. |
No parameters yet — click “+ Add Parameter”. | Object editor | No dimensions declared yet. |
No scaling lines yet — click “+ Add Mark”. | Object editor | Nothing ties the geometry to a parameter — the part will not change size. |
No DXF loaded. Click Load DXF… to import a reference drawing to mark up. | Object editor | There is no reference drawing; the Pick… buttons have nothing to work on. |
Load a DXF or select an object to preview. | Object editor | There is nothing to show on the right. |
This machine has no materials. Add one above. | CNC configuration | No material is attached to the machine — use + Add material…. |
No CNC config loaded. | CNC configuration | The server did not return a configuration. Reload the page. |
Before a run
| Message | What it means and what to do |
|---|---|
Add at least one part before running. | There are no parts. Add a row in the Part List. |
Add at least one stock sheet for the active material. | A material that carries parts has no sheet format. Sheet Settings → Add sheet. |
Cannot run — N parts have a dimension of 0: | Required dimensions are empty or zero. The message lists every offending part; those rows are marked with a ⚠. |
Cannot run — N parts do not fit at the sizes given: | A modelled panel does not come together at these sizes: its flat crosses itself (a wall, return or cut-out no longer fits) or the face is impossible (a depth larger than a leg, say). Change the row's sizes or the type's parameter Min/Max. Each set of sizes is checked once; the message lists up to 20 rows. |
unknown part type 'B'. Known codes: … | Your library has no type with that code — it was deleted or (for the old standard types B, SP, Demo) retired from the set. Pick another type; the message lists every code available. |
During and after a run
| Message | What it means |
|---|---|
Queued… | The job is waiting for its turn. |
Running the full engine — larger jobs take longer. | Just an explanation under the progress bar. |
Job complete — N files generated. | Success. The files are in the results window and in Project Tree. |
CNC generation skipped: the part list contains types incompatible with CNC output (B, BCAB). | Not an error. The listed types produce no machine programs (CNC allowed is off in the type). Layouts and reports were still produced. |
This job is not saved as a project… | Press Save project to keep the results in your library. |
Nesting was not completed: some details could not be placed on the available sheet(s). | A part plus the frame margin is larger than every configured sheet. The text gives its exact size and the formats that were checked. |
Nesting cannot continue because some details were not prepared successfully… DXF contains no usable nesting geometry. | The engine could not build a usable contour for a specific part. For CUSTOM, check the drawing; for parametric types, check the depth-and-angle combination. |
Loading part geometry 12/40… | Nesting is fetching part contours. Wait for the bar to disappear. |
Saving and recomputing
| Message | What it means |
|---|---|
Project saved to your private library. | The project was saved; nothing was recomputed because the layout was untouched. |
Project saved · nesting files rewritten & CNC recomputed. | The project was saved and the files on disk were rewritten to match the edited layout. |
CNC recomputed from the edited layout. | The Recompute CNC button did its work. |
Nothing to recompute. | There is no layout or no output folder — nothing to redo. |
CNC program saved. | The .nc was rewritten with the new operation order and tools. |
Saved. New jobs use these settings. | The CNC configuration was saved. Programs already generated are unchanged — they need a Recompute. |
File uploaded to your private library. | A project JSON file was accepted into the library. |
This file is not a valid DXNest Fabrication project. | The file lacks the required settings and materials fields. |
Confirmations
| Message | What “OK” does |
|---|---|
Delete this sheet? Its parts return to the unplaced list. | The sheet disappears and its parts go to the unplaced queue. The files on disk only change after Recompute or Save project. |
Delete project “…”? | The project and its output folder are deleted permanently. |
Delete API key “…”? Apps using it will stop working. | The key is revoked immediately. |
Could not import <file>: … | A DXF import failed — the other selected files are still imported. |
Mode hints
| Message | Where and what it means |
|---|---|
Click a part to select · drag to move · drag the ○ handle to rotate · scroll to zoom | Nesting, normal mode. |
Click a free spot to place · drag to lay an array of copies · scroll to zoom | Nesting, placing a part from the queue. |
Placing “EP-101” (click a free spot · Esc to cancel) | Nesting, the name of the part you are placing. |
Picking P1 — click a vertex | Object editor, picking a dimension's end point. |
Picking line — click a segment | Object editor, picking a scaling line. |
Picking point A — click a corner | Object editor, picking the angle points A → B → C. |
Picking hole 1 — click a hole | Object editor, picking the end holes of a run. |
Select a cell first, then pick a document field. | Layout editor: select a cell before choosing a field. |
Operations — drag to reorder | CNC: the operation rows can be dragged. |
Contour: 96 pts · Holes: 20 · Inner: 0 · Grooves: 0 | Object editor: what was read from the reference DXF. |
Connected · 8 panel types loaded / Offline — … | General Settings: the connection to the engine. |
Demo-mode limits
| Message | Where |
|---|---|
Disabled in the demo — the watermarked PDF report is the only download | The tooltip of every blocked button. |
Demo mode — the PDF report is the only download | The status bar. |
Demo mode — the project library is read-only… | The project library window. |
API keys are disabled in the demo… | The API panel. |
Demo mode — every file was produced on the server, but only the PDF report can be downloaded, watermarked on each page. | The run results window. |
End the demo — the demo account and everything it produced are deleted | The tooltip of the Exit demo button. |
When something goes wrong
| Symptom | Cause and cure |
|---|---|
| The Run button is greyed out | The document has no parts, or another run is in progress. Add a part in the Part List or fill some grid cells. |
| “part size … does not fit any configured sheet” | The flat pattern is larger than every configured sheet. Add a bigger format in Sheet Settings, reduce the Frame Margin, switch Texture off (if the material allows), or make the part smaller. Remember it is the flat pattern with its returns that is nested. |
| “… does not fit at the sizes given” | A part made in the model builder cannot be cut at the sizes in its row — its face would cross itself (for example a Canopy Corner Fascia whose depth H is larger than a leg) or a return no longer fits its wall. The message names the row; open its preview to see the shape, and fix the sizes. |
| “DXF contains no usable nesting geometry” | The engine built no usable contour. For CUSTOM parts, check that the file has a closed outer contour on the expected layer. For parametric types, check the depth-and-angle combination (too little depth with a large angle degenerates the geometry). |
| “CNC generation skipped” | Some parts are of types with CNC allowed switched off. Not an error: layouts and reports were produced. Switch the checkbox on in the panel type if you need CNC. |
| The CNC tab is empty | None of the order's materials produced machine programs: either every type has CNC off, or the material was set to None (no CNC) in Sheet Settings. |
| The run takes forever | The main levers are Nesting depth and Search, s in Sheet Settings: a finer step than 90° takes longer, and the search time is spent on every material. Use 90° or Rectangles until the order content is final. |
| Error 507 / “quota exceeded” | Your account's space is full. Delete projects you no longer need from the library, or ask us to raise the limit. |
| The files are gone after signing back in | The run was not saved as a project. Save the project after a good run — a saved project keeps its files. |
| “engine offline” in the status bar | The server did not return the list of panel types. Reload the page; if that does not help, contact support. |
| The Nesting canvas is empty, no parts visible | Part geometry loads progressively — wait for the “Loading part geometry” bar. If the files are no longer there, run the job again. |
| CNC edits disappeared after saving | If you changed the layout after hand-editing the .nc, saving the project triggers a recompute that rewrites the programs. Settle the layout first, then edit the operations. |
| I cannot choose the material I need for a part | The material is constrained by the panel type. Widen the Materials list in the type's definition (object editor), or leave it empty to allow any. |
| A button is dimmed and its tooltip mentions the demo | You are in demo mode. The limits are enforced by the server; full access needs a normal account. |
| “Cannot run — N parts have a dimension of 0” | The listed parts have empty required dimensions. Fill in W/H (the depth usually fills itself). Angles are not checked, and neither are CUSTOM parts — their size comes from the file. |
| “Queued…” does not change for minutes | Another job is being computed — usually one with a fine Nesting depth. Wait a moment; keep the depth quick until the order content is final. |
| I cannot find the Grid tab | It only appears after pressing the Grid button on the toolbar (the button stays highlighted). |
| The “Corner panel…” control is disabled | You need exactly two neighbouring cells selected — horizontally or vertically. Cells one apart or diagonal do not qualify. |
| A grid cell turned yellow | The angle the wall turn produces falls outside the type's Min…Max range and had to be pulled to the limit. Change the wall angle, or widen the range in the type's definition. |
| The cell size is not what I entered | A column width is the module; the panel gets the module minus half a joint on each side. A 1200 column with 20 mm joints gives a 1180 panel. |
| A part on the layout canvas is red and stays red | It leaves the sheet or overlaps another part. This happens after typing an angle into the field or shrinking the sheet format. Move it — the highlight clears as soon as the position is valid. |
| A part will not go into an apparently free spot | The check uses the real contour and honours both the gap between parts and the frame margins. Reduce the gap in the sheet's Margins panel, or rotate the part. |
| My new type did not appear in the Type list | The object must be stored with Save to library (not just Build & Preview). Check that the Type Code is filled in and does not clash with an existing one. |
| JSON edits in the object editor do not show in the form | By design: JSON is not read back into the form. Those edits still reach Build & Preview and Save. Pick one editing method. |
| An Excel report is missing a column | Columns come from the template: Report Settings → Edit template… → + column, click into the blue row and pick the value on the Insert bar (All sizes gives W=…; H=…). Then Regenerate the job's copy. |
| My report layout ended up on the wrong project | Apply to project stores it in the current project only; Save as my default stores it in your profile for new projects. The project template tag in Report Settings shows when a project has its own. |
| I changed the CNC settings but the program is unchanged | Saving the configuration affects subsequent runs. To update an existing program use the CNC tab → Recompute. |
| Reopening a project shows no files in the tree | The layout is stored in the project, but the folder on disk has already been cleaned up or overwritten by another project with the same job name. Run the job again. |
| I lost my password | In a company, your company's administrator sets a new one in Employees; for Fabrication Solo, write to contact@dxnest.io. A new password signs the account out everywhere. |
Glossary
Terms that appear in the interface and in this manual.
| Term | Meaning |
|---|---|
| Nesting | Arranging parts on stock sheets so as little material as possible is wasted. |
| Nesting depth | How parts are turned when they are nested by their real shape: 90° down to 5°; Rectangles nests by bounding boxes — the fastest. |
| Part / detail | One line item of the order: panel type + dimensions + quantity. |
| Panel type | The parametric description of a part: which dimensions it has, how the geometry stretches, which holes it gets, what goes into the BOM. It lives in your object library. |
| Type code | The short designation of a type (R, C, BCAB). Used by the API and in file names. |
| CUSTOM | A part taken from an existing DXF file: its geometry and size come from the drawing rather than being built parametrically. |
| Flat pattern | The part unfolded into a plane with its returns. It is the flat pattern that is cut from the sheet — noticeably larger than the assembled panel. |
| Material class | The identifier (steel_1mm, aluminum_3mm) used to group parts into separate nesting jobs. |
| Kind | Steel / Aluminum / ACM. Decides which CNC rules and which machine apply. |
| Material group | A name that ties together panel types sharing the same list of allowed materials — it lets you change the material of the whole family at once. |
| Sheet | A stock blank of a given format. Size, quantity and priority are set in Sheet Settings. |
| Priority | 1 → 2 → 3 → none. The order in which formats are consumed. |
| Parts margin | The minimum clearance between the contours of two neighbouring parts on a sheet. |
| Frame margin | The distance to the sheet edge. It can be a single value or one per side. |
| Module | In the grid, a column width or a row height, measured from joint centre-line to joint centre-line. |
| Joint | The gap between panels in an elevation. A panel takes half a joint on each side. |
| Wall angle | The turn of the façade at a particular joint. The panel is mitred to 90 + angle/2. |
| Corner panel | One panel that spans a joint and has two legs: W and W2. |
| Soffit | A horizontal fold — a corner panel made from two cells stacked one above the other. |
| BOM | Bill of materials: the profiles, sheets, hardware and consumables an order needs. |
| Profile | A linear part (an aluminium extrusion) with a length and cut angles at its ends. |
| Cut distance | How much is taken off a profile's length at each end. |
| Kerf | The material the saw removes at every profile cut; accounted for in the cut plan. |
| Cut plan | The arrangement of profile pieces across stock bars. |
| Packing slip | A document with the order header and the list of parts. |
| Labels | A sheet of stickers — one per part. |
| Template | The grid of cells a Packing Slip or Labels sheet is built from. It can be built-in, your personal default or a project's own. |
| Token | A placeholder in braces in a layout: {customer} from the order header, {QTY} from an individual part. |
| Layer | A DXF layer (contour, holes, grooves, engraving). CNC rules are set per layer. |
| Inner contour | A cut-out inside a part: rectangle, rounded rectangle, circle or slot. |
| Groove | A fold groove, usually cut with a V-shaped tool. |
| Weep line | A drainage slot. |
| Engraving | Marking the part code onto the part itself; switched on in Job Settings. |
| Toolpath | The tool's route. The CNC tab shows it together with the travel line between operations. |
| Peck | The peck-drilling step — how far the tool retracts to clear chips. |
| Feed Z / Feed XY | The plunge rate and the working feed rate in the plane. |
| RPM | Spindle speed (the S word in G-code). |
| Workspace | Where a run's files are kept. It belongs to a specific project, not merely to the job name. |
| API key | A secret granting programmatic access with your account's rights. Shown once, at creation. |
| Ray / segment | In the object editor: an infinite ray (moves the whole edge) or a finite segment between two points. |
| Pivot | Which arm of an angle rotates when its value changes. |
| Child object | A part made together with its parent panel; its dimensions are expressions of the parent's. |
Every screenshot in this manual was taken from the running application — this is the real interface, not a mock-up.