DXNestFabrication manual Open Fabrication

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.
One system for the whole fabrication shopDXNest Fabrication connects sales and CRM, quotes and costing, orders and parts, nesting and CNC, planning and production, stock and purchasing, field work, the mobile app, the client portal, the AI assistant and the API.ONE SYSTEM FOR THEWHOLE FABRICATION SHOPSales & CRM$Quotes & costingOrders & partsNesting & CNCPlanning & productionStock & purchasingField work & mobileClient portalAI assistant & API

Which edition is which

DXNest FabricationDXNest Fabrication Solo
ForA fabrication company: the office, the shop floor, the crews and the clientsOne engineer who prepares production
Sign-inThe company's domain, then a username and passwordA username and password
Opens onHome — the company workspaceThe Nesting application
Nesting, CNC, BOM, reportsThe Nesting module (Home → Nesting, or from an order)The whole application
Sales, production, supply, people, field workYes—
Phone appYes — 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:

RoleWhoWhat they see
AdminThe officeThe whole workspace: every section of Home, the Nesting module and Settings.
OperatorMachine operatorsOnly their workstation: the jobs assigned to them or to their machines, with the instructions — see Production.
WorkerEstimators, engineers, installers, drivers, service techniciansOnly their own work cards and the time clock, on the web and in the phone app.
ClientYour clientsThe client portal of their own orders.
Employees without a sign-inA person does not need a sign-in to be planned, costed, put on a crew or handed tools. Give one only to those who work in DXNest themselves.

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

Sign-in for companies
  1. Type your Company domain — the short name your company uses in DXNest — and press Continue.
  2. 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

Sign-in for Fabrication Solo

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.
Forgot your 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.

Home — the company workspace

The office's starting page: every section one click away, and what needs attention today.

The company Home page

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.

GroupTiles
SalesQuotes · Orders · Invoices · Clients (with the CRM)
ProductionPlanning · Production · Work Cards · Warehouse · Shipping · Field Work · Products · Nesting
SupplyStock · Suppliers · Inventory (tools)
People & adminEmployees · 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.

Every lead followed to a paid orderThe DXNest CRM pipeline from a new lead to a won deal, with follow-ups that remind the team and an order and invoice at the end.EVERY LEAD FOLLOWEDTO A PAID ORDERNew6 · $214kContacted4 · $96kMeasure3 · $61kQuoted5 · $148kNegotiation2 · $94kWon9 · $212kFollow-ups todayCall Laura Chen11:30Site measure · Stone Dental14:00Quote e-mailedFollow-up in 3 days, by itselfWonOrder #1016Invoice paidLeads from the website,referrals and trade shows24 leads · 60 % win rate

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

The CRM 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

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

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.

What DXNest does by itselfA quote that is e-mailed (or marked sent) gets a follow-up a few days later and moves its opportunity to Quoted. A quote accepted — by you or by the client in the portal — or turned into an order wins the deal; a declined one loses it, and its open follow-ups close. An invoice past its due date gets a payment reminder, and an order placed in the portal a follow-up to price it. The delays are set in Settings → Email.

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.

Quotes priced from real fabrication operationsA DXNest quote built from material, cutting, bending, labour, machine-hour, overhead and markup.QUOTES PRICED FROM REALFABRICATION OPERATIONSMaterialACM 4 mm$38.50 / m²Nesting yield82 %CuttingSetup12 minPer piece1.4 minBending4 bends × 0.6 minper pieceLabour & machine hourBurdened rate$42.00 / hRouter$27.80 / h$Overhead & markupPrice per panel$148.00

A quote

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.

ButtonWhat it does
DocumentThe quote as a PDF to print or send.
EmailSends it to the client — see E-mail. A draft becomes Sent.
DuplicateA copy, for an alternative option.
Make orderTurns 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:

PartHow
MaterialBefore 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.
LabourMinutes × workers × the hourly wage of the position (else its department) × (1 + payroll costs).
MachinesMinutes × the machine-hour rate of the department's machines: depreciation, power, maintenance and consumables.
OverheadThe monthly indirect costs (rent, utilities, insurance, office …) ÷ productive labour hours, per labour hour.
Direct · G&AA 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.

Cost and margin on the orderAn order shows its estimated cost from the costing and its actual cost so far — material taken from stock and the time recorded against it — with the margin of each. Per line breaks it down.

Invoices

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.

From the first quote to the CNC — in one systemQuote, order, generated parts, nesting, CNC programs and production connected in one DXNest Fabrication workflow.FROM THE FIRST QUOTETO THE CNC — IN ONE SYSTEMQuoteOrderGenerate partsNestingCNCProductionQuote Q-1004Priced from costingPanel type · CassetteW 1200 · H 80014 programsG-code per sheetOrder #1015420 panels · ACM 4 mm14 sheet layouts87 % material yieldCut → Bend → PackPlanned by department

The order list

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

A new order
  1. 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.
  2. 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.
  3. 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

An order

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:

LineWhat it is
Nesting partA 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 panelA one-off part drawn on the spot as a sketch, kept with this order only.
Import DXF · Import ExcelParts from your drawings or from a part list.
Stock itemSold straight from Stock (anchors, rivets, sealant …).
ServiceInstallation, delivery and other work, per hour or as a sum.
Manual lineAnything 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.

More parts per sheet, less scrapParts from several orders flow into the nesting engine and are laid out on the stock sheets; offcuts go back to stock as remnants.MORE PARTS PER SHEET,LESS SCRAPOrder #101248 panelsACM 4 mmOrder #1013120 bracketsAL 3 mmOrder #101436 flashingsAL 3 mmremnantSheet 1500 × 3000 · AL 3 mmParts placed46Utilization87 %Remnant back to stock0.42 m²

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

An order 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

  1. A finished run reserves the stock it uses: the sheets show as Reserved in Stock and are no longer available to other orders.
  2. Confirm — take from stock consumes the reservation when the material is used.
  3. 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.

Production load planned by itselfSetup time plus processing time times quantity gives each department its load; the planning board lays the orders onto the work calendar.PRODUCTION LOADPLANNED BY ITSELFBending · order #1015Setup15 min2.5 min × 120 pcs300 minDepartment load5 h 15 minMonTueWedThuFriCutting82 % load#1012#1015#1016Bending64 % load#1012#1015Assembly45 % load#1012#1015Packing30 % loadtodayWork calendarShifts, holidays, capacity per lineAuto-planDue dates, order of departments
The planning board

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.

The shop floor sees exactly its own workOperators start, pause and complete their own jobs at a workstation; the office sees who runs what on which machine.THE SHOP FLOOR SEESEXACTLY ITS OWN WORKMy jobsMike B.#1015 · Panel A · Cut18 / 25STARTPAUSECOMPLETE#1016 · Bracket B · Cut0 / 120STARTPAUSECOMPLETECNC routerPanel A — Cut18 / 25Press brakePanel C — Bend6 / 40On the floor now2 jobs running · 3 waiting

Production

The Production page

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

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

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

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.

A work card for every job around productionWork cards for estimators, engineers, drivers, installers and service: checklist, form, photos, signature, sign-off; they work offline on the phone.A WORK CARD FOR EVERYJOB AROUND PRODUCTIONWC-1024 · Site measureIn progressWhoJake M.DueToday, 14:00SiteKing St towerChecklist · 2 / 3Photos of every elevationOverall dimensionsOpenings and obstaclesPhotosSignatureTo doIn progressWaiting for sign-offDoneEstimatorEngineerDriverInstallerServiceWorks offline on the phoneChanges wait and sync when signal returns

The board

Work cards 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

A work 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

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

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

Purchase requirements

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

Purchase orders

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

Tool inventory

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.

Field work schedule
  • 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.
Tracking

Employees and timesheets

Everyone in the company, their sign-ins and their time.

Employees

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

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.

Your crew on the clock — and on the mapThe DXNest phone app: employees clock in at a site, take a break, move to another site and clock out; the office sees who is where and gets the timesheet.YOUR CREW ON THE CLOCK— AND ON THE MAPJake Miller6:42:10King St towerAt the siteBreakAnother siteClock outToday6 h 42 mAt work now7 of 9Jake MillerKing St towerOn siteEmily CarterKing St towerAway 2.4 kmMike BrownWorkshopOn siteClock in at the siteGeofence checkBreak · another siteTimesheet to approve

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

The time clock My cards A card on the phone My time
  • 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 Map Timesheet Overview
  • 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.

E-mail quotes, invoices and packing slips straight from the systemDXNest sends a quote, invoice, order confirmation, purchase order or packing slip as a PDF by e-mail and logs it with the record.E-MAIL QUOTES, INVOICESAND PACKING SLIPS STRAIGHTFROM THE SYSTEMClientSupplierSite officeQuote Q-1004.pdfPurchase order PO-1003.pdfPacking slip PS-1001.pdfLogged with the recordTemplate: {client} · {number} · {total}

Sending a document

Send by email

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.

Attachments in your own e-mail programThe PDF and files are downloaded, ready to drag into the message. In classic Outlook for Windows choose Outlook draft (.eml) to get a draft with everything already attached. Nothing opens? Set the computer's default e-mail app (Windows: Settings → Apps → Default apps; Mac: Mail → Settings → General → Default email reader).

Settings → Email

Email settings
  • 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.

Your clients follow their orders and send files themselvesThe client portal: clients see order status, accept quotes, see invoices, exchange messages and place orders with drawings that arrive in the office.YOUR CLIENTS FOLLOW THEIRORDERS — AND SEND FILESClient portalOrder #1004In productionQuote Q-1006Accept · DeclineInvoice INV-1009$4,120 dueIn the officeNew portal orderFollow-up addedDXFPDFPhotoXLSXDrawings and new ordersStatus · shared files · messages

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

The client portal
  • 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

An order placed in the portal

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.

Ask DXNest — it knows your shopThe DXNest AI assistant answers from orders, stock, production, clients, part types and files, and prepares actions that run only after confirmation.ASK DXNEST —IT KNOWS YOUR SHOPOrdersStockProductionClientsPart typesFilesHow many 3 mm aluminiumsheets are free?Voice or text18 sheets 1500 × 3000 areavailable; 6 more arereserved for order #1012.Prepared for youNew order · Harbourfront Living3 lines from the attached part listConfirmCancelNothing changes until you confirm.

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.
Nothing changes until you confirmA prepared change runs only when you confirm it in the chat. The assistant never deletes anything, never changes prices or stock quantities, and does not make client portal sign-ins.

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.

Settings — Company
TabWhat it holds
CompanyThe 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 & documentsHow 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 timeThe 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.
MaterialsThe one material and profile library everything uses: material, kind and thickness; profiles and their bar length.
MachinesYour 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 portalSee E-mail and The client portal.
AccountingConnect 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.
Settings — Costing & documents

Products — your part types

Parameters in, precise geometry outA parametric panel type: the user enters width, height, flange, angle and holes, and DXNest generates the flat pattern with bend lines and the folded part.PARAMETERS IN,PRECISE GEOMETRY OUTPanel type · Cassette C-1Width W1200 mmHeight H800 mmFlange25 mmBend angle90°HolesØ6 @ 3001250850Flat pattern with bend linesFolded part4 bends · 14 holesOne library, every panel typeCassetteL-profileZ-profileCorner panel
Products

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

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

Part List / Grid parts and elevation Sheet Settings materials and sheets Run ▶ nesting on the server Nesting hand-tune the layout CNC operations and .nc BOM bill of materials Reports Slip · Labels · CutPlan Project Tree download the files
Parts → materials and sheets → run → hand-tune the layout → CNC. The BOM and the reports are computed without a run, at any moment.

The main window

The DXNest Fabrication main window
Top to bottom: the title bar → the toolbar → the tabs → the working area → the status bar. On the right sits the collapsible settings panel.
About unitsEvery dimension is stored internally in millimetres. The selector at the bottom right only changes how numbers are displayed and typed (mm / inches / fractional inches), so switching back and forth never loses precision.

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.

  1. Sign in with Fabrication Solo — or, in a company, open Nesting from Home. An empty document called Web order opens.
  2. 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.
  3. 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.
  4. Set the margins. Same place: Parts Margin is the clearance between parts, Frame Margin the distance to the sheet edge.
  5. 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.
  6. 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.
  7. 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.
  8. Run the nesting — the Run ▶ button on the toolbar. The app switches to the Nesting tab by itself when the job finishes.
  9. 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.
  10. Collect the files. Right panel → Project Tree: download them one by one, or press Download all (.zip) in the results window.
Where to go nextOnce the basic cycle works, add the rest: Grid instead of typing rows by hand, your own panel types, your machines and tools, your own report layouts and the API for automation.

What a document needs before it can run

The Run button will not start a job until all three conditions hold:

ConditionMessage if it does not hold
At least one part existsAdd at least one part before running.
The active material has at least one stock sheetAdd at least one stock sheet for the active material.
Every non-angle dimension of every part is greater than zeroCannot 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

Title bar
Logo
Logo
The product name. Not a button.
User name
Your name
The account's display name, not the login. It tells you which account you are working under.
Sign out button
Sign out
Ends the session. In demo mode it reads Exit demo.
Job name
Document name
On the right is the current Job Name (a field in Job Settings). The same name becomes the output folder for the generated files.

The tabs

Tabs
TabWhen it appearsWhat it is for
Gridwhen the grid button on the toolbar is switched onThe elevation layout: columns × rows of cells that panels are placed into.
Part ListalwaysThe parts table — the master list of what has to be made.
BOMalwaysThe bill of materials: profiles with lengths and cut angles, sheets, hardware.
Nestingafter a successful run (or after opening a project with a saved layout)The interactive sheet-layout editor.
CNCsameViewing and editing the generated machine programs.

The status bar

Status bar
  • On the left — how many part rows the document holds.
  • On the right — the unit selector and the application state: Ready, or Running… during a job.
Unit selector
Three modes: mm, inch (decimal), inch (fractions) — the last shows sizes as 23 5/8" and accepts the same form as input.
“A new version of DXNest Fabrication is available”When DXNest Fabrication is updated, this notice appears at the bottom right as you come back to the tab. Save your project and press Reload; Later reminds you again later. A project opened after the update recomputes its grid parts' sizes and angles by itself.

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:

SituationWhat happens
While you typeThe 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.
EnterLeaves the field and commits the value (the same as clicking elsewhere).
Losing focusThe 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 fieldMeans 0. A part with a zero dimension will not pass the pre-run check.
Changing unitsEvery field is reformatted, but the stored millimetres are not rewritten — mm → inches → mm loses nothing.
The value changes from elsewhereFor example the grid recomputed a panel — the field updates, as long as your cursor is not in it.
What the field accepts in inch mode23 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.

The whole toolbar

Project

New project
New projectNew project
Resets the document to its starting state: no parts, one material, default fields. The undo history, the last run's results and the link to a saved project are cleared too. Save the project first if you want to keep it.
Open project
Open projectOpen project
Opens your private project library. If a layout was saved with the project, the Nesting and CNC tabs come back too.
Save project
Save projectSave project
The save dialog: a project name plus the list of what you already saved. An edited layout is stored along with the document. disabled in the demo

History and content

Undo
UndoUndo
Reverses the last change to the document (parts, materials, settings, grid). Greyed out while the history is empty.
Redo
RedoRedo
Puts back a change you undid. Becomes available right after Undo.
Import custom DXF parts
Import custom DXFImport custom DXF parts
Picks one or more .dxf files and adds them as CUSTOM parts — see Importing your own DXF files.
Object editor
Object editorObject editor (Assembly Settings)
The parametric object builder: your own panel types, their dimensions, hole rules, BOM content — see Object editor.
Grid
GridGrid — lay out an elevation and place panels in its cells
Shows and hides the Grid tab. The button stays highlighted while the mode is on.
CNC config
CNC configCNC machines, tools & materials
The manager for machines, tools and per-layer machining rules — see CNC machines, tools and materials.
API
APIAPI access & keys
Access keys and the full HTTP API documentation — see The API panel.

Run and the settings panel

Run
RunRun nesting job
The main action: sends the document to the server and performs the full run. Greyed out while the document has no parts and while another run is in progress. Drawn in the accent colour.
Settings panel
Settings panelToggle settings panel
Collapses and expands the right-hand settings panel, freeing space for the table or the canvas.
TooltipsEvery button shows a tooltip on hover — the monospaced line above each description is its exact wording. In demo mode the tooltip of a blocked button is replaced by “Disabled in the demo — the watermarked PDF report is the only download”.
The assistantWhen the AI assistant is available, Fabrication Solo shows its orb on the toolbar next to the settings-panel button — a click switches it on or off. See The AI assistant.

The settings panel

Six accordion sections. As many can be open at once as you like; the state is remembered for the session.

The whole settings panel
The panel with Sheet Settings just expanded.

Collapsed sections

Panel sections

Clicking a heading expands the section. The open one is marked by an accent bar on its left.

Hiding the panel

Collapse handle

The narrow handle on the panel edge (or the gear button on the toolbar) hides the panel completely.

Collapsed panel

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.

Project Tree before a run

After a run it becomes a tree of the generated files.

Project Tree after a run
Folder row
Folder row
Clicking it collapses or expands the branch. Folders always sort before files.
File row
File row
The icon on the left shows the kind (DXF, NC, PDF, XLSX, image). On the right: the eye previews DXF geometry right in the browser; the down arrow downloads the file.
Folder in the treeWhat 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.pdfThe printable sheet report, one per material.
*.xlsxBOM, Packing Slip, Labels, CutPlan — depending on which reports are switched on.

Job Settings — the order header

Job Settings
FieldWhat it does
Job NameThe 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, InvoiceDate and invoice number — they reach the headers of the Packing Slip, Labels and BOM.
CustomerThe customer.
Ship toThe delivery address (also available in templates as the address field).
POThe customer's purchase-order number.
Part Code EngravingEngrave 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

Sheet Settings

Margins

Parts Margin / Frame Margin
  • 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.
Per-side margins

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.
In practiceKeep 90° (or Rectangles for plain panels) while the order is still changing. Once its content is final and you want the last percent of yield, choose a finer step and run again.

Materials

Material tabs

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.

Material editor
FieldMeaning
Material nameThe name you see and the one printed in reports.
KindThe material class for the engine: Steel · Aluminum · ACM. This is what decides which machine and which machining rules apply.
CNC machineAppears 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.
binRemoves the material. The last remaining material cannot be removed.

Stock sheets

Sheet table
ColumnMeaning
Width / HeightThe size of the stock sheet.
QTYHow many sheets of that size are available.
PriorityThe 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.
When a part does not fitThe run fails with an explanation that the part plus the frame margin is larger than any configured sheet. Remember that what gets nested is the flat pattern (with its returns), not the assembled panel — it is considerably bigger.

Profile Settings — linear stock

Profile Settings
  • 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
Where the pieces come fromNot from this table. The pieces themselves are described in the objects (BOM — Profiles in the object editor) and reach the BOM automatically. Here you only say which bars to cut them from.

Report Settings — which reports to produce

Report Settings
Report row
The checkbox means “generate automatically during a run”. The Download button produces the report right now, without nesting.
ReportWhat it contains
BOMThe bill of materials: profiles with lengths and cut angles, sheets with flat-pattern sizes, hardware.
Packing SlipThe packing slip: order header, part rows, total quantity.
LabelsA printable label sheet — one label per part, tiled across the page.
Profile cut planThe cutting plan for the bars defined in Profile Settings.
Bending reportA 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

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 parts table

The action bar

Action bar
Add part
Add part
Adds a row named 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 parts or N selected.
Set group material

The columns

Table header
ColumnMeaning
#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.
QtyHow many identical parts.
NameThe part designation. It goes into the reports, into the flat-pattern file name and into the engraving.
TypeThe panel type from your library. Changing it rewrites the set of available dimensions.
MaterialWhat to cut it from (constrained by the type — see below).
TextureTick 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.
EditThree actions on the row.

The buttons in the Edit column

Row actions
Actions
Pencil · Eye · Bin
Pencil — the part editor (name, quantity, dimensions, rotation, inner cut-outs). A small badge shows how many inner contours are already there. Eye — a quick geometry preview. Bin — delete the row.

Three kinds of dimension cell

A number

An ordinary row

A normal length field. It accepts the units selected in the status bar; internally the value is always millimetres.

An angle from a list

A row with angles

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

A CUSTOM row

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 3mm or ACM 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

  1. 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.
  2. The exception is a part placed by the grid (Grid): the grid recomputes its W, H, W2 and joint-linked angles straight away.
  3. 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.
  4. The set of dimension columns is rebuilt around the types actually present in the list.
Materials create themselvesPicking a material by name (in the cell or through Set group material…) adds it to the project if it was not there — with an empty list of sheet formats. Do not forget to give it sheets in Sheet Settings, or there will be nothing to nest it on.

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

A selected row
  • 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.

  1. Press Import custom DXF parts on the toolbar and pick one or several .dxf files.
  2. The server reads each file, works out its extents and stores it in your import area.
  3. A row of type Custom (DXF) appears in the Part List, named after the file without its extension.
An imported CUSTOM part in the list
Row 7 is the imported 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.
Preview of the imported geometry
The eye button shows exactly the drawing that will be nested — contour in green, holes in red (colours follow the DXF layers).
Part editor for a CUSTOM part
In the editor of a CUSTOM part only Name and Qty are available: the geometry and the size belong to the file.
What the file must containA closed outer contour on the expected layers. If the engine finds no usable geometry, the run stops with “DXF contains no usable nesting geometry”.
Where imported files liveWith your account, as their own group: they are reused every time the project runs again.

The part editor and inner contours

The pencil in a Part List row opens the part's card with a live geometry preview.

Part editor

The basic fields

Part editor 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)

Add-contour buttons

Four cut-out shapes:

ShapeFields
RectangleCenter X · Center Y · Width · Height
Rounded rectCenter X · Center Y · Width · Height · Corner R
CircleCenter X · Center Y · Radius
SlotCenter X · Center Y · Width · Height
A contour card
A part with inner contours
Every contour you add appears immediately in the preview on the right.
Part preview
The preview redraws as you type.
Coordinate systemCoordinates are measured from the bottom-left corner of the part, in the selected units. Contours land on the INNER CONTOUR layer and are machined by the “Inner contour” layer rule.
SavingThere is no separate Save button — changes apply to the part immediately. Done just closes the window.

The DXF viewer

One viewer is used everywhere: for parts in the list, for files in the output tree, for object previews.

DXF viewer
Viewer toolbar
  • 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, W2 across the face, D, H1, RET… along the wall or return they set, angles such as ANGLEA 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

ColourWhat it usually is
greenouter contour / cut
redholes
cyangrooves, fold lines
yellowinner contours
grey / whiteother 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.

The Grid button switches tabs immediatelyTurning it on opens the Grid tab; turning it off returns you to Part List. The cells themselves are not lost when you turn it off — the grid is simply hidden along with its tab.
An empty grid

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: 90 is an outside corner of the building, −90 an inside one, 0 a 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 settingWhat 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.
ReverseFor types that measure the angle the other way (a bend angle rather than the face-to-wall angle): 90 + angle/2.
Corner panelThe type can be placed as one panel over two neighbouring cells across a joint. Only such types are listed under Corner panel….
Corner angleThe 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

TypeSettingsAt a corner
Back Panel (BCAB)ANGLEA — left edge, ANGLEB — right edgeRange 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 edgeNext 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 = ANGLECover 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.
The wall bends on the wrong side?Left and right are as seen on the façade. If 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.
Red angles in a cellMean the angle the wall geometry demands is one the panel type cannot produce. Change the wall angle, put another type here, or widen the angle range in its definition (the parameter's Min/Max).

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.

CaseSizes
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

Grid toolbar
ControlWhat it does
Rows / ColsThe number of rows and columns. Applied on Enter or when the field loses focus.
Joint X / Joint YThe 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.
SplitBreak a corner panel back into two cells.
Disable / EnableMark a cell as “no panel” (a window opening, say) or bring it back.
EmptyRemove the type from the cell — its part disappears from the Part List.
Clear allEmpty 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

Controls for selected cells

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

Controls for a joint
A joint with a 90° angle
ControlWhat it does
AngleThe wall turn at this joint, in degrees. 0 is a flat wall.
90 · −90 · 0Presets: 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.
JointThe width of this particular joint; empty means the default.
DefaultReturn the joint to the default width.

What a cell shows

An ordinary panel

A grid cell

The type name, the computed panel size (module minus half joints) and the reference R1C1 — row and column.

A corner panel

A corner cell

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

A filled grid
Top row Standard, bottom row Back Pan. Cell sizes are typed straight into the row and column headers.
A grid with an angle and a corner panel
Joint V2 was given a 90° angle: it turned solid and picked up a 90° badge. The two neighbouring cells were joined into a Corner panel. (The shot predates corner panels keeping the joint at the corner line; their sizes now follow Corner panel sizes.)
Parts created by the grid
The same panels in the Part List. Their sizes and angles are recomputed by the grid automatically; quantity, name, material, depth and cut-outs stay under your control.
How to think about the gridThe grid owns the panel's geometry (width, height, angles); the Part List owns everything else. So change module sizes in the grid, and names and materials in the list.

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.

The BOM tab

How the table is structured

Rows are grouped into sections with orange headings:

SectionWhat is in it
ProfilesLinear profile pieces: cut length, quantity, cut angles A and B.
SheetSheet blanks with their flat-pattern sizes (Flat Pattern W / H).
Blocks, Screws, Sealant, …Hardware and consumables declared in the objects.
The BOM table

The columns

ColumnWhat it means
#A running item number (section headings are not numbered).
Panel NameThe item name: for a profile, profile name + segment label + part name; for a sheet, Sheet <part name>.
Profile LengthThe length of one piece after Cut Distance is taken off each end. Empty for sheet items.
QTYThe quantity including the part's own quantity (the expression from the object definition × the number of parts).
Cut Angle A / BThe cut angles at the two ends of the piece.
Flat Pattern W / HThe 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 fastest pre-run checkCompare Flat Pattern W / H with your sheet formats in Sheet Settings. If a flat pattern is larger, the run will fail — better to find out here.

The export buttons

BOM toolbar
  • 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.
Where the BOM content comes fromEvery panel type describes its own profiles (BOM — Profiles) and extra items (BOM — Details) in the object editor. Quantities may be expressions such as 4 * qty. Change the object definition and the whole bill of materials changes with it.
In the demoAll three exports are disabled: the only download is the watermarked PDF report.

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.
ButtonWhat it does
Apply to this projectThis project uses the template (it is saved with the project).
Save as my defaultEvery project without its own template uses it.
Reset to built-inStarts again from the built-in layout (apply or save it to keep it).
Remove project templateThis project goes back to your default (shown when the project has its own).
Clear my defaultForgets 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:

MessageCauseWhat 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 0A 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

Run progress
While the job runs the window shows the current stage. The calculation happens on the server, so the interface never freezes and stays usable.

The usual stages: preparing the parts → nesting onto sheets → generating DXF → CNC → reports.

How to read the progress barThe label above it is the real stage reported by the server (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.
The queueQueued… 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

Run results

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.

A result file row
A group of result files
Each group is one kind of output; here the CNC programs with sizes and download buttons.
Download all button
Download all (.zip) at the bottom takes the entire output folder as one archive.

Warnings worth reading

CNC skipped for some materialsMeans some of your parts are of types that produce no CNC output (a 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.
Save the projectA saved project keeps the layout, the programs and the reports of its last run in your library — or download what you need right away.

When a run fails

Error: the part does not fit a sheet
The most common failure: the flat pattern is larger than any configured sheet. The message carries the exact part size, the formats that were checked and a list of what you can change.
Error: no usable geometry
The second common failure: the engine could not build usable geometry (here because of an impossible combination of depth and angles). The path to the offending file is quoted in the text.

Parts that could not be placed are afterwards flagged in the Part List with a ⚠.

After the run

The app after a run
The Nesting and CNC tabs have appeared, and Project Tree now holds the whole tree of generated files.

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 Nesting tab

The bar at the top

Nesting toolbar
ControlWhat it does
MaterialSwitches between materials (each is nested separately). Only shown when there is more than one.
FormatChange 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 sheetDeletes the sheet; all its parts return to the unplaced queue.
Save sheet DXFExport the current sheet as DXF. demo
Save all DXFEvery sheet of the material: a single DXF or a .zip. demo
Recompute CNCRewrite the layout DXFs and the CNC programs on disk from the current canvas. A dot “•” on the button means there are unsaved edits.
Save projectSave the project together with the layout (recomputing the files first if needed). demo
Sheet margins
Frame margins on all four sides and the gap between parts, for this sheet. Apply to all sheets pushes them onto every sheet of the material.

The sheet list

Sheet list
A sheet card

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).

What ×N meansThe engine found that this very layout is needed N times — so there will be N physical sheets, all cut from one program. An edit on such a sheet applies to all of its copies.

The unplaced queue

The unplaced panel
Unplaced parts

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.

Geometry loads progressivelyPart contours are separate files on the server, fetched in batches. While that happens a bar reads Loading part geometry N/M…. Until it disappears some parts may not be drawn yet — just wait.
Placing mode
Clicking a part enters placing mode: a ghost of the part follows the cursor.
Placing bar
Selected part in the queue
Canvas hint in placing mode
  • 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

Layout canvas with a selected part
Canvas hint
ActionHow
Select a partclick it
Movedrag
Rotatedrag the round ○ handle, or use the Angle field, or press R (90° steps). With Shift the angle snaps to 15°
DeleteDelete / Backspace, or the Delete part button
DeselectEsc
Zoom / panmouse wheel / drag the background; Fit fits the sheet
Selected-part bar
The bar shows the part's number and name, lets you type an exact angle, rotate by 90° and delete it.

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.

A part that stays redInteractive dragging simply refuses an invalid position, but a part can become invalid another way: you typed an angle into the Angle field, or you shrank the sheet format. Such parts are drawn red permanently — an invitation to move them by hand until the highlight goes away.

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

  1. Edits live in the browser and are marked by a “•” on the buttons.
  2. Recompute CNC rewrites the layout DXFs and machine programs to match the new arrangement.
  3. 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.
Why the order mattersIf you edited operations in the CNC tab but did not touch the layout, Save project performs no recompute — your edits in the .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 CNC tab

The bar at the top

CNC toolbar
Sheets with programs
On the left, only the sheets that actually produced a .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 .nc and save the project;
  • on the right, the number of operations and the tools involved.

The toolpath preview

Toolpath

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 kindHow it is drawnColour
Drill, Weepa small circle at the pointred
Engrave, Groovea polylinecyan
Chart, Cut, Mill, Contoura polylinegreen
anything elsea polylinelight grey
travel between operationsone continuous polylineblue
the sheet outlinea framelight

Single-point operations (drilling) are shown as circles of a nominal radius — a position marker, not the hole diameter.

A highlighted operation
Selecting an operation in the list highlights its points in orange on the drawing.

The operation list

Operation list heading
An operation row
A selected operation
The operation list
ElementMeaning
⋮⋮The drag handle: rows can be swapped to change the machining order.
№The position in the current sequence.
KindDrill, Engrave, Groove, Cut/Contour… The colour matches the drawing.
LabelThe operation label from the program.
toolThe 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.

Where the tool suggestions come fromTwo sets combined: the tools declared in the material's CNC settings (the tool fields and the diameter table), and any already named in the program's “Required tools” header. The field is not restricted to the list — you may type your own name.

The order of saving — important

  1. Edits to the operation order and tools live in the browser until you press Save CNC (or Save project, which does it for you).
  2. Save project first writes the pending operation edits into the .nc, then stores the project.
  3. A layout recompute (Recompute) rewrites the .nc from scratch — every hand edit to order and tools in it is lost.
The ruleGet the layout right first (Nesting tab), recompute the CNC, and only then edit the operations. The other order throws your program edits away.
If the tab is emptyThat is normal when none of the order's materials produce CNC — for instance only 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.

CNC manager

The tabs

CNC manager 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

Machine selector

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.

StrategyWhat it does
Nearest next operationAlways 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 smallRelease the small parts first — or last.
Drawing orderIn the order the layout was drawn.
DXNest legacyThe 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

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

Tool library
ColumnMeaning
#The tool number (the T word in G-code).
LabelThe human name shown in the pickers.
Ø mmThe diameter — used by the per-diameter hole rules.
HThe length-offset register (the H word); defaults to the tool number.

Per-layer machining rules

Material selector for a machine
The material within a machine: + Add material… attaches an entry from the library, Export / Import material… moves the rules as a file.
Layer rules

For the chosen material × machine pair there is one row per layer:

LayerWhat it machines
ContourThe outer contour of the part.
Inner contourThe cut-outs added in the part editor.
GroovesFold grooves (usually a V-shaped cutter).
Weep linesDrainage slots.
Engraving (name)Engraving the part code, when Part Code Engraving is on.
ParameterMeaning
ToolA 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 XYPlunge feed and working feed.
PeckThe peck-drilling step.
RPMSpindle speed (the S word).
The “Engraving (name)” row is differentIt has a single depth instead of a list of passes and no Peck — engraving is one pass. The other fields are the same.
An empty RPMMeans “do not set a speed in this row” — the machine keeps whatever the G-code block established.

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

G-code blocks
BlockWhen it is emitted
Start CNC CodeAt the start of the program.
Start DrillingBefore the drilling block.
Start GroovingBefore the grooves.
Start MillingBefore contour milling.
End CNC CodeAt the end of the program.
Two-way synchronisationThe 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

ButtonScopeWhen 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.
Save applies to everythingThe Save button at the bottom stores the whole configuration, not just the material you have open. The next runs use the new settings immediately; programs already generated do not change until you press Recompute.

JSON and Guide

Material JSON
One file per material × machine. Apply to form / Reset from form move changes between the text and the form; Export material / Import material… move them between installations.
Configuration guide
The Guide tab is a fully annotated example of a material file with every field explained.
Saving the configuration
Save makes these settings effective for every subsequent run.

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.

There is a second wayThis chapter is about marking up a finished drawing. A panel can instead be modelled — contour, bends, cut-outs — on the Sheet Metal tab: see The model builder, which also holds step-by-step recipes for the classic panels.
Object editor
Editor with an object selected
A selected object fills every table of the form, and the built geometry appears on the right at once.

The three columns

Left — the library

Object 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

Object preview

Two modes: Reference DXF, the source drawing you mark up, and Scaled preview, the result built at test sizes.

The action bar

Object editor action bar
Form/JSON tabs
Form / JSON
The form with its tables, or the complete definition JSON. Note: edits in JSON are used directly for Build & Preview and Save, but the form tables are not updated from JSON.
  • 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 its object_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

Object general info
FieldMeaning
Display NameWhat the type is called in the interface.
Type CodeA short code (R, C, BCAB…). Also used by the API and in file names.
Material GroupThe group name used for changing the material of a whole family at once in the Part List.
Default DepthThe depth given to new parts of this type.
MaterialsThe allowed materials. Empty means any. Class is the identifier used to group parts into per-material nesting jobs (steel_1mm).
CNC allowedWhether machine programs are generated for this type.
Layer AliasesLayer names in incoming DXF files that count as “this type”.
GridHow 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.
Type materials
Materials help

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

Reference geometry
Reference Geometry help

Shows what could be read from the drawing: how many contour points, holes, inner contours and grooves.

Parameters — the dimensions

Parameters
Parameters help
ColumnMeaning
NameThe dimension code in capitals: W, H, D, and also W2, H2, A, L…
MinThe size the reference drawing is drawn at.
FormulaAn expression for derived dimensions.
P1 · P2The two vertices the dimension spans — filled in by Pick Endpoints.
DescriptionA free comment.

Scaling Lines — how the geometry stretches

Scaling lines
Scaling Lines help
ColumnMeaning
ParameterWhich dimension moves this edge. The list comes from the Parameters table.
AxisX — the edge moves horizontally, Y — vertically.
Typeray — an infinite ray: everything on that line moves (for a vertical ray only X1 matters). segment — a finite edge between two points.
AnchorThe anchor name — the marker the engine matches against the drawing (for example Scale_X). Filled in automatically when you pick a line.
FormulaOptional, when the edge does not move one-to-one with the parameter.
X1 · Y1 · X2 · Y2The 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

Variable angles
Variable Angles help
ColumnMeaning
A · B · CThe three corner points; B is the vertex the leg swings about.
DefaultThe value used unless overridden.
Min · Max · StepThe range and increment — exactly what becomes the dropdown in the Part List.
PivotWhich arm rotates.
TagThe dimension name the angle appears under in the parts list (ANGLEA).
KeepPreserve the side length when the angle changes.

Pick Angle asks you to click the three points in turn: A → B → C.

Hole Rules

Hole rules
Hole Rules help
ColumnMeaning
NameThe rule's name — useful once there are several.
X1 · Y1The first point of the run.
X2 · Y2The second point of the run.
Max stepThe largest spacing between neighbouring holes. The engine chooses the count so the step never exceeds this and the run stays even.
DiameterThe hole diameter. Left empty with Pick 2 Holes/Points, the diameter of the first picked hole is adopted.
EndsWhether holes are placed at the end points themselves, or only between them.

BOM — Profiles

BOM profiles
BOM Profiles help
ColumnMeaning
Profile NameThe profile's name. Rows sharing a name are grouped together in the BOM.
LabelThe segment label (W1, H, W2…) — it reaches the BOM item name.
Cut DistanceHow much is taken off each end. G = 100 with a Cut Distance of 10 gives a piece of 80.
QtyThe quantity. May be an expression: qty, 2 * qty, 3.
Angle A / Angle BThe 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

BOM details
BOM Details help

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

Child objects
Child Objects help
Child object card

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 fieldMeaning
Name and codeWhich library object is embedded.
DimensionsFor 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.
A 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

A new object
  1. + Sheet metal part — an empty form.
  2. Fill in Display Name and Type Code, choose the materials and the group.
  3. Load DXF… — load the drawing of the part at its minimum size.
  4. Add the Parameters and mark their end points on the drawing.
  5. Add Scaling Lines so the geometry follows those parameters.
  6. If needed, describe the angles, the hole runs, the BOM content and the child objects.
  7. Build & Preview — check the result at test sizes.
  8. Save to library. The type appears in the Type dropdown of the Part List.
Editor status line
The status line at the bottom reports briefly what was loaded and how much of it was read.
The JSON tab is one-wayEdits in JSON are used directly by Build & Preview and Save to library, but the form tables are not updated from JSON. So do not edit the same definition in both places — pick one. Switching to the JSON tab always regenerates the text from the current state.
Deleting an objectThe cross in the library list removes it. Parts in existing projects that reference the type remain, but the type is no longer offered in the Part List and can no longer be built.

Working with JSON

Object JSON
The complete definition: 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

ColumnWhat is in it
LeftYour library of types. + Sheet metal part starts an empty one, From template ▾ starts from a ready-made model, × deletes.
MiddleThe face sketch (grid, snap, dimensions) and, beside it, the preview: 2D flat — the flat pattern nesting will get, 3D — the folded part.
RightProperties: 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

FieldWhat it does
Display nameThe type's name in the Part List, the grid's lists and the reports.
Type codeA 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 groupThe group used by Set group material… in the Part List.
Engrave nameEngrave the part's name on the flat (when the job has engraving on).
CNC allowedWhether CNC programs are generated for this type.
Locked dimsPart List columns pinned to a constant, comma-separated: D=81. They show greyed out and cannot be edited.
MaterialsThe materials the type may be cut from (Name plus the internal Class). Empty — any sheet of the job.
GridHow 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 → PlacementA 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

ToolWhat 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).
SelectPick and drag vertices, edges and dimensions.
Draw faceDraw the face again point by point: click — a point, Enter or a click on the first point — close, Esc — cancel.
Smart DimensionClick 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 · SnapThe sketch grid step (mm) and snapping to it.
Flange allFold every edge of the face with the same wall.

A right-click opens the menu of whatever is under the cursor:

Under the cursorActions
An edgeAdd edge flange / Remove flange, Add a bend after the flange, Dimension this edge, Make horizontal / Make vertical / Remove relation, Split edge.
A vertexFillet (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 dimensionMake 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:

FieldWhat it does
NameThe part's name in the builder.
Qty / objectHow many per panel — a number or a formula.
Name suffixAppended to the row's name (Panel → Panel_galv) and to the type code (SPAB_GALV).
Part List nameWhat this part's type is called.
Material · ClassWhat it is cut from — it may differ from the main part.
Stock materialsThe 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

  1. + Sheet metal part → the Sheet Metal tab.
  2. In OBJECT fill in Display name, Type code (short and unique), Material group and the materials.
  3. PARAMETERS: add the dimensions the Part List will drive — W, H, D, and W2, 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.
  4. The face: Preset face ▾ (rectangle, L-shape, trapezoid) or Draw face point by point.
  5. Smart Dimension: add the dimensions and type formulas into them (=W, =H - 2*D). Aim for Fully defined.
  6. 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.
  7. 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.
  8. 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.

ColumnWhat it does
NameThe 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.
ValueThe 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 · MaxThe 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 useExample
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)
The 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.

FieldWhat it does
Flange lengthThe 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.
SideUp / Down — which way off the face the wall folds.
Bend {n}: length / Bend ° / FoldFurther 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 endsHow 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 deductionA deduction for this bend alone, when it differs from the material's.
End chamferCuts 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 wantHow to get it
A return or a lip on a wall that is already foldedRight-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 itRight-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

FieldWhat it does
Where two flanges meetRelief cuts the walls apart along their seam (an ordinary formed part); Mitre brings them together.
GapThe shop clearance between neighbouring walls, mm.
Relief shapeRectangular — 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

  1. 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).
  2. 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.
  3. Any field then takes a formula: =W / 2, =D - 20.
  4. 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.
  5. Delete removes the selected feature.
Dragging replaces a formulaIf a field held a formula and you drag its grip, the field is left with a number — the status line names the field that lost it.

Wall feature fields

FeatureFields
NotchFrom (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.
HoleFrom / At — the position along the wall; Depth and Measured from (Outer edge of the wall, or Centre of bend); Ø; Mirror.
Hole rowFrom 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 themwhen — the condition under which the feature exists (=W >= 300).

Holes and marks on the face

CardWhat it sets
HolesSingle holes in the face: X, Y from the sketch origin (formulas allowed) and Ø.
Hole rulesA 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.
MarksMark 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

FieldWhat it does
Thickness, Bend radiusSheet thickness and the inside radius of the bend.
Bend allowanceHow 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 lineWhether 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.
HemsFrom 165° on, the bend formulas run away (the tangent goes to infinity), so from that angle the deduction is the shop rule of two sheet thicknesses. If your brake says otherwise, type the number into that wall's Bend deduction.

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.

TemplateWhat it is
Standard PanelThe ACM tray: four walls, corner reliefs, wall holes by the size table.
Corner Panel / Corner Sofit PanelA 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 PanelA 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 PanelThe 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 PanelAn 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 PanelA 3 mm plank: returns top and bottom, an interlocking leg and lip down each side.
Soffit Panel / Soffit Corner PanelA 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 PanelA fascia turning a corner in plan, with a soffit leg underneath.
Canopy Corner Fascia PanelA 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 BPThe 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

  1. OBJECT: name "Standard Panel", code R, group Exterior Panels, materials Aluminum 3mm and ACM 4 mm.
  2. PARAMETERS: W 600 (304.8…3000), H 400 (304.8…3000), D 25.4 (24…100).
  3. Face: Preset face ▾ → Rectangle; dimensions =W across and =H up.
  4. Sheet & bend: Thickness 4, Bend radius 0, method Bend deduction = 0.5, Bend line on (ACM is grooved).
  5. Flange all: all four walls, Flange length =D, Bend 90°, Side Up.
  6. Corners: Relief, Gap 0, Relief shape Rectangular.
  7. 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 =W on the horizontal walls, =H on the vertical ones).
  8. Assembly: one sheet, 16 screws, 4 shear blocks, the W1 and H profiles twice each.

2. Corner Panel

  1. Parameters: W 600, W2 300, H 400, D 25.4 and the angle ANGLE 90 (15…165, ticked °) — the panel's fold.
  2. 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 =W2 and =W.
  3. 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.
  4. 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.
  5. All six edges get a =D wall at 90°; the ones the fold crosses are mitred into a V for you.
  6. 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).
  7. 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

  1. Parameters: W 600, H 400, D 101.6, and the angles ANGLEA / ANGLEB 90 (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.
  2. VARIABLES: SA = (D - 6.06) * tan(ANGLEA - 90), SB likewise for ANGLEB, LA = (D - 6.06) / cos(ANGLEA - 90) + 11.34 and LB.
  3. Face: a =W - SA - SB × =H rectangle — W is measured where the walls meet the corner chamfers.
  4. Sheet & bend: Thickness 1, Bend radius 0, Bend deduction 0, Bend line off.
  5. 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 >= 215 and =W >= 300.
  6. Side walls: length =LA / =LB, angle =90 - (ANGLEA - 90), deduction 1.21, chamfer Along 6.61 / Down 9.34.
  7. 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.
  8. 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.
  9. 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.
  10. 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

  1. Parameters: W 600, H 400, D 127.
  2. VARIABLES: DEEP = iif(D >= 86 and W > 278, 1, 0) — a deep pan has longer walls and deeper notches.
  3. Face: =W + 12.7 × =H + 12.7, 1 mm steel, bend lines off.
  4. 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 through DEEP too (=iif(DEEP, 24.49, 6.61) and so on).
  5. Tabs switched by depth: =D < 86 and W > 278, =D >= 86 and D < 127, =D >= 127.
  6. A second part (+ Part): the flat aluminium sheet =W × =H, 2 mm, suffix _al, its own material and no CNC.
  7. 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

  1. Parameters: W 600, H 400, D 81, angles ANGLEA / ANGLEB 60 (1…150).
  2. VARIABLES: LA = min(ANGLEA, 90), LB = min(ANGLEB, 90), and SPC_W / SPC_H for the galvanised sheet.
  3. Face =W × =H, 2 mm aluminium, deduction 3.66, face share 0.5, bend lines off.
  4. All four walls: =D + 12.84 with a two-step End chamfer (Along 14.08 / Down 16.53 and an intermediate point 1.92 / 12.16).
  5. 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.
  6. Face holes (Hole rules): 12.21 mm in from each edge, starting 50 mm from the corners, at most 304.8 mm apart.
  7. 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.
  8. The lip: Add a bend after the flange on every wall — 16 mm, in, at 90° on the top and bottom walls and =LA / =LB on 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.
  9. 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.

TypeDimensionsWhat is in it
Plank Panel (PLK)W, H, D, LIP, D2, LIP2A 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, ANGLEA 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 sameThe 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, DThe 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, ANGLEBThe 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.
Mirrored pairsThese drawings usually come in pairs, a left-hand and a right-hand panel. The model describes one hand; the other comes out of the same model once the fascia (or the tab) is moved to the opposite end — two actions in the builder.

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
}
KeyRequiredWhat it is
panel_type_specyesHow the type looks and behaves: code, name, dimensions, materials, angles, grid.
objectyesDimension expressions, the BOM (profiles, consumables, time) and child parts.
drawyesThe program that draws the flat's DXF.
object_modelmodels onlyThe builder's model; the three blocks above are compiled from it.
shipped_fingerprintnoA marker of the standard library (untouched copies update themselves by it). Do not copy it into your own files.

panel_type_spec

FieldTypeMeaning
codestring, requiredThe type's unique code — what parts[].type names. Capitals, digits, _.
displaystringThe name shown in the UI.
aliasesstringsOther codes that mean this type too.
dimensionsstringsThe type's dimensions in Part List column order (["W","H","D","ANGLEA"]) — the same keys as a part row's params.
dimension_defaultsobjectWhat a new Part List row starts with: {"W": 600, "D": 101.6}.
param_descriptionsobjectDimension captions (tooltips in the Part List and the editor).
default_depthnumberThe D of a new row when dimension_defaults has none.
fixed_dimsobjectDimensions pinned to a constant (greyed out in the Part List): {"D": "81"}.
model_optionsobjectAngles 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.
gridobjectHow the Grid tab drives the type — see below.
cnc_allowedbooleanWhether CNC programs are generated.
requires_w2booleanThe type has a second leg W2 (corner panels).
material_groupstringThe group for bulk material changes.
materialsarray[{"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_aliasesstringsIncoming DXF layers that mean this type.
extra_shapes_transformstringA Python lambda placing the inner cut-outs on the flat.
model_key, preview_imagestringInternal ("standard" for models; a preview picture).
Extra keys are ignoredAn unknown key in 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"
}
FieldMeaning
edge_anglesAngle 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).
cornertrue — the type can go in as one panel over two cells across a joint (it appears in the Corner panel… list).
corner_angleThe 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

FieldMeaning
type_codeThe same code as panel_type_spec.code.
dimsEach 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.
profilesLinear stock: [{"name": "{name} W1", "segments": [{"label", "cut_distance", "qty", "angles": {"A", "B"}, "orientation"}]}]. Counts and lengths are expressions ("2 * qty").
detailsOther 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_partsChild 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)

FieldMeaning
layersDXF layers: CONTOUR, HOLES, INNER CONTOUR, GROOVES, TEXT…
varsThe program's variables: the drawing's minimum size, intermediate values ({"name", "expr"}).
anchors, point_setsScaling-line anchors and named point lists.
stepsThe 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_linesThe 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

FieldMeaning
version2.
specdisplay, code, material_group, materials, cnc_allowed, fixed_dims, extra_shapes_transform, layer_aliases, grid — panel_type_spec is made from these.
inputsThe 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 =.
partsThe sheet-metal parts. The first is the panel itself; the others become sub_parts coded CODE_SUFFIX.
assemblycomponents (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_nameEngrave the part's name.

A part (parts[])

FieldMeaning
id, name, suffix, qtyIdentifier, name, a child part's suffix ("_galv"), count per panel (an expression).
materialthickness, 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_allowedFor an extra part: what it is cut from, allowed materials, its type's name, CNC.
sketchnodes [{"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 featuresnotch {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.
cornertreatment (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 featuresholes [{"x","y","diameter"}], hole_rules [{"name","p1","p2","max_step","diameter","ends"}], lines [{"p1","p2","layer"}].
bend_linesDraw bend lines in the DXF (false for press-brake steel).
The face is built from 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)". variables and object.dims take no =.
  • Formulas see every inputs and variables name; trigonometry is in degrees; there are min, max, abs, sqrt, pow, floor, ceil, round, comparisons, and/or/not, iif, and the units mm/cm/m/in/deg/rad.
  • Names starting sm_ and sk_ 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
}
  1. Save the model to a file, say my_back_pan.json.
  2. In the app: Object Settings → Import JSON… → the model opens in the builder (Sheet Metal tab) → check 2D and 3D → Save to library.
  3. Over the API: POST /sheetmetal-build with the model as the body → take definition from the reply → POST /definitions/my_back_pan with that definition. Or put the finished definition into the objects array of a /api/job request.
  4. Check the type: GET /panel-types should list MBP with angles and grid; POST /part-preview shows the flat.

Checks before you use it

  • panel_type_spec.code is there and matches object.type_code.
  • Every dimension the Part List or the API sends is in dimensions; angles have model_options (in a model, the "angle": true flag).
  • grid names only dimensions; corner_angle only together with corner.
  • 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

Project library
A project row
Each row shows the name and when it was last changed. The buttons on the right download the project as a JSON file and delete it.
DeletingDeleting a project also deletes its generated files. It cannot be undone.

Saving

Saving a project
Project name field

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 button

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.

In the demoThe library is read-only: projects cannot be saved, uploaded or downloaded.

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.

Run production jobs from your own systemsWith an API key, an ERP or a script sends part definitions, DXF files and the project JSON to DXNest and gets nested DXF layouts, CNC programs, reports and the BOM back.RUN PRODUCTION JOBSFROM YOUR OWN SYSTEMSYour ERP or scriptAPI keyObject definitions.jsonCustom DXF parts.dxfProject document.jsonPOST /api/jobDXDXNest engineNested DXF layoutsCNC programsPDF reportsBill of materials.zip or JSON
API panel

Access keys

API keys
  1. Type a name for the key (for example CI server) and press Generate key.
  2. Copy the key immediately — it is shown once and can never be read back.
  3. Afterwards the list shows only the prefix, the date of last use and a bin to revoke it.
A key is a passwordIt grants the same access as your account, from any program. Keep it secret; revoke a compromised key with the bin at once. In demo mode keys cannot be created at all.

The built-in documentation

Documentation tabs

Ten tabs, each with working examples and a copy button:

TabAbout
Getting startedAuthentication, the request envelope, examples in Python, curl and PowerShell.
Full sampleA 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 settingsThe fields of the job document.
Parts listHow the parts array is described.
Sheet settingsSheets, margins, priorities.
Engraving & nestingNesting and engraving options.
MaterialsMulti-material jobs.
Profile settingsBar stock and the cut plan.
Report settingsWhich reports to generate and how to pass your own layouts.
New object JSONThe object definition format: panel_type_spec (with grid), object, draw, object_model. The full description is in The object JSON format.
Docs: getting started
Getting started — authentication, the request envelope and ready-made examples in Python, curl and PowerShell.
Docs: full sample
Full sample — the downloadable bundle and the two ways to call it: one .zip, or one JSON.
Docs: job settings
Job settings — the order-header fields in the job document.
Docs: parts list
Parts list — the parts array: types, dimensions, quantities, CUSTOM.
Docs: sheet settings
Sheet settings — sheet formats, quantities, priorities and margins.
Docs: engraving and nesting
Engraving & nesting — rotation, search depth, engraving, trimming shared lines.
Docs: materials
Materials — multi-material jobs with their own sheets and parts.
Docs: profile settings
Profile settings — bar stock and cut-plan parameters.
Docs: report settings
Report settings — which reports to produce and how to pass custom layouts.
Docs: object format
New object JSON — the full object definition format with an annotated example.

A short endpoint reference

This part is only for automationIf you work in the browser you do not need it. It matters when you — or your developer — want to launch jobs from another program or a script.

The key is sent as the header Authorization: Bearer <key> or X-API-Key: <key>.

Method and pathPurpose
POST /api/jobA complete run in one call: objects + CUSTOM DXF (base64) + the document. Returns a .zip or a JSON manifest.
POST /api/job-zipThe same, but the input is a single .zip holding the JSON document, the objects and the DXFs.
GET /panel-typesThe 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 /definitionsYour object library.
GET /definitions/{name}/downloadAn 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-previewOne row's flat ({type, params}) as DXF primitives — no run.
POST /part-dxfThe DXF of one row or several ({parts: [...]}); several files or child parts come back as a .zip.
POST /part-solidThe 3D model of a modelled type's row (panels, holes, bends); a DXF-marked type answers 422.
POST /sheetmetal-buildCompile 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-specBuild a definition from the Advanced tab's tables, and back.
POST /definition-previewThe 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 /projectsThe project library.
GET /files?path=…Download one generated file.
GET /zip?path=…Download a whole output folder as an archive.
GET/POST/DELETE /api-keysKey management.
POST /bom · /bom.xlsxCompute the BOM, or return it as an Excel file.
POST /packing-slip.xlsx · /labels.xlsx · /profiles.xlsxReports without a run.
POST /bend-report.pdfThe bending report (PDF) for a job document, without a run. An API run writes it only with reports.auto.bending: true.
GET/PUT /cnc-configThe machine configuration.
GET/POST /cnc-opsRead and rewrite the operations of a machine program.
Collect the resultsA run through /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.

Demo button
The app in demo mode

How to tell you are in the demo

Title bar in the demo
Demo badge
Status bar in the demo
Toolbar in the demo
The save-project button is dimmed — the server would refuse the write anyway.
  • 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.
Reports in the demo
The report download buttons are dimmed; the reports themselves are still made.
The library in the demo
The API panel in the demo
The watermarkEvery page of a PDF report produced by a demo account carries a DXNest Fabrication mark.
Nothing is keptWhen you exit the demo, everything made in it is cleared.

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

  1. Open project — reuse a similar previous project, or New project for a clean sheet.
  2. Job Settings: Job Name, customer, date, PO; in Sheet Settings a quick Nesting depth.
  3. Sheet Settings: check the materials, their Kind and the sheet formats; use Priority to consume the right format first.
  4. Part List → Add part for each line item; type, dimensions, quantity, name.
  5. Add identical items with Duplicate rather than from scratch.
  6. Check a few parts with the eye button.
  7. BOM — compare Flat Pattern W/H against your sheet formats.
  8. Run ▶.
  9. Save project to keep the layout and the files in your library.
  10. Project Tree → download the DXFs, the .nc files and the reports.

An order from existing drawings (CUSTOM DXF)

  1. Make sure the files have a closed outer contour.
  2. Import custom DXF parts on the toolbar — several files can be selected at once.
  3. Set Qty and Material for each row (the dimensions are not editable — they come from the file).
  4. Check the geometry with the eye button.
  5. Then as usual: Sheet Settings → Run → Save project.
Imported drawings stay in your space and are reused on every subsequent run of the project — there is no need to upload them again.

A façade through Grid with a building corner

  1. Switch on Grid on the toolbar.
  2. Set Rows and Cols, then type the column widths and row heights straight into the grid headers.
  3. Set Joint X and Joint Y — the default joint width.
  4. Select a row or a block of cells and place a type with Place type….
  5. 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.
  6. 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).
  7. 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.
  8. Where windows go, select the cells and press Disable.
  9. For individual joints, select the cells and fill in Top/Right/Bottom/Left.
  10. Switch to Part List — all the panels are already there. Set quantities, materials and names.
  11. Run ▶ and continue as usual.

Creating your own panel type — by marking up a drawing

  1. Draw the part in CAD at its minimum size, with the contour and holes on their own layers; save as DXF.
  2. Toolbar → Object editor → + Sheet metal part.
  3. General Info: Display Name, a unique Type Code, Material Group, Default Depth, the Materials list, the CNC allowed checkbox.
  4. Load DXF… — load the drawing. Check in Reference Geometry that the contour and holes were read.
  5. Parameters: add W, H, D (and W2 and so on), enter Min; for each press Pick Endpoints and click two vertices on the drawing.
  6. Scaling Lines: + Add Mark → choose Parameter and Axis, the type ray or segment, then Pick Line and click the edge.
  7. Variable Angles — if the panel has a variable angle: Pick Angle, click A → B → C, then set Default, Min, Max, Step and Tag.
  8. Hole Rules — for runs of holes: Pick 2 Holes/Points, click the two end holes, then set Max step.
  9. BOM — Profiles and BOM — Details: describe what the panel consumes.
  10. Build & Preview — inspect the Scaled preview at test sizes.
  11. Save to library. The type appears at once in the Type list of the Part List.

Creating your own panel type — by modelling it

  1. Toolbar → Object Settings → + Sheet metal part, the Sheet Metal tab.
  2. Fill in Display name, Type code, the material group and the materials.
  3. PARAMETERS: W, H, D and whatever else the Part List should drive.
  4. Draw the face (Preset face ▾ or Draw face) and dimension it with formulas until it reads Fully defined.
  5. Sheet & bend — thickness, radius, how the flat is worked out; Flange all, or single walls with their own angles and returns.
  6. Add on a wall — notches, holes, tabs; check the part in 3D.
  7. Assembly — profiles, consumables, child parts.
  8. 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

  1. Toolbar → CNC machines, tools & materials.
  2. + Machine — the new machine inherits the current one's tools; rename it.
  3. Tool library: + Tool for every cutter — number #, label, Ø mm, register H.
  4. Material library: make sure the materials you need exist and have the right Kind.
  5. In the Material block use + Add material… to attach a material to this machine.
  6. Fill in the per-layer parameters: Contour, Inner contour, Grooves, Weep lines, Engraving — tool, pass depths, feeds, RPM.
  7. In the Holes block set the default rule and, if needed, per-diameter rules.
  8. Check the G-code blocks: the start block, the tool-change blocks and the end block.
  9. Save. Subsequent runs follow these rules.
  10. To apply them to an already generated program — CNC tab → Recompute.

Hand-tuning a layout

  1. Open the Nesting tab and wait for the part geometry to load.
  2. Choose the material and the sheet in the list on the left.
  3. Move parts around; the magnet puts them at the right distance for you.
  4. Rotate with the ○ handle or the R key.
  5. Unwanted parts — Delete: they go back to the unplaced queue.
  6. An empty sheet — Delete sheet.
  7. From the unplaced queue: click a part, then click a free spot (or drag to lay an array).
  8. When the layout is right — Recompute CNC.
  9. Save project.

Your own packing-slip layout

  1. Right panel → Report Settings → Packing Slip → Edit template… (the Packing Slip tab opens on Template).
  2. Click the letterhead and type your company name, address and phone; change the title if you like.
  3. Fields on the right: edit a label, remove one with ×, + field for another — click into its value and pick it on the Insert bar.
  4. 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).
  5. Notes, signature lines and the footer note at the bottom.
  6. Save as my default for every project, or Apply to this project for this one only.
  7. 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

  1. Toolbar → API access & keys → type a key name → Generate key.
  2. Copy the key at once — it is never shown again.
  3. The Full sample tab — download the ready bundle or the single-file request example.
  4. Send POST /api/job with the header Authorization: Bearer <key> and the full document; "return": "zip" returns an archive of every file.
  5. 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

Decimal inches

Fractional 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.

The panel in inches
Units apply everywhere: the parts list, the sheet settings, the grid, the part editor.

Keys and gestures

WhereActionKeys / gesture
Part Listselect a rowclick the row number
add / remove a row from the selectionCtrl/⌘ + click the number
reorder rowsdrag a row onto another
commit a field valueEnter or click elsewhere
Gridselect a cellclick
rectangular selectiondrag, or Shift + click the opposite corner
add / remove a cellCtrl/⌘ + click
clear the selectionclick the empty background
jump to that cell's partdouble-click
select a jointclick the narrow strip between cells
Nestingselect a partclick it
movedrag (snapping to margins and neighbours)
rotatedrag the ○ handle above the part
rotate in 15° stepsShift while rotating
rotate by 90°R
delete a partDelete or Backspace
deselect / leave placing modeEsc
place one copyclick a free spot in placing mode
place an array of copiesdrag in placing mode
CNCreorder operationsdrag a row by its ⋮⋮ handle
highlight an operation on the drawingclick the row (clicking again clears it)
Any canvaszoom around the cursormouse wheel
pandrag empty space
fit to the windowthe Fit button
Packing slip / labels sheetedit a textclick it
finish a one-line textEnter (or click elsewhere)
undo the editEsc
insert a placeholder (template)click into a text, then a value on the Insert bar
Object editorselect a table rowclick it (it becomes the active row for − Remove and the Pick buttons)
leave picking mode on the drawingpress the Pick… button again
Modal windowscloseclick × or the dark background outside
choose a fileLoad DXF…, Import JSON…, Upload JSON open the system dialog
Toolbar actionsUndo, redo, saving and running live on the toolbar; the browser's own Ctrl+Z and Ctrl+S do not act on the document.

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

MessageWhereWhat it means
No parts yet. Click Add part to begin.Part ListThe parts list is empty. Press Add part, or fill cells in Grid.
Add parts to see the bill of materials.BOMThere is nothing to compute the bill from.
No BOM items for the current parts.BOMThere are parts, but their types declare no profiles or extra items.
Computing…BOMThe engine is recomputing. It starts automatically a moment after a change.
Run a job to populate the output tree with downloadable files.Project TreeNo run has happened, so there are no files.
No nesting layout yet.NestingThere is no layout. Run a job, or open a project with a saved layout.
No sheets — every part is unplaced.NestingEvery sheet was deleted; the parts wait in the unplaced queue.
All parts placed on sheets.NestingThe unplaced queue is empty — everything fitted.
No saved projects yet.LibraryYou have not saved anything yet.
No API keys yet.API panelNo keys have been created.
Nothing stored yet.API panelThe disk is empty — no run has happened.
No child objects.Object editorThis type carries no child parts.
No parameters yet — click “+ Add Parameter”.Object editorNo dimensions declared yet.
No scaling lines yet — click “+ Add Mark”.Object editorNothing 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 editorThere is no reference drawing; the Pick… buttons have nothing to work on.
Load a DXF or select an object to preview.Object editorThere is nothing to show on the right.
This machine has no materials. Add one above.CNC configurationNo material is attached to the machine — use + Add material….
No CNC config loaded.CNC configurationThe server did not return a configuration. Reload the page.

Before a run

MessageWhat 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:
• “EP-101” (Standard): W, H must be greater than 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:
• “R1C3” (BCAB): the flat pattern crosses itself -- a flange, return or cut-out no longer fits at these sizes
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

MessageWhat 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

MessageWhat 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

MessageWhat “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.
UndoClear parts, Clear all in the grid and deleting a part row happen at once, and Undo brings them back. New project starts afresh — save first.

Mode hints

MessageWhere and what it means
Click a part to select · drag to move · drag the ○ handle to rotate · scroll to zoomNesting, normal mode.
Click a free spot to place · drag to lay an array of copies · scroll to zoomNesting, 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 vertexObject editor, picking a dimension's end point.
Picking line — click a segmentObject editor, picking a scaling line.
Picking point A — click a cornerObject editor, picking the angle points A → B → C.
Picking hole 1 — click a holeObject 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 reorderCNC: the operation rows can be dragged.
Contour: 96 pts · Holes: 20 · Inner: 0 · Grooves: 0Object editor: what was read from the reference DXF.
Connected · 8 panel types loaded / Offline — …General Settings: the connection to the engine.

Demo-mode limits

MessageWhere
Disabled in the demo — the watermarked PDF report is the only downloadThe tooltip of every blocked button.
Demo mode — the PDF report is the only downloadThe 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 deletedThe tooltip of the Exit demo button.

When something goes wrong

SymptomCause and cure
The Run button is greyed outThe 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 emptyNone 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 foreverThe 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 inThe 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 barThe 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 visiblePart 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 savingIf 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 partThe 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 demoYou 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 minutesAnother 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 tabIt only appears after pressing the Grid button on the toolbar (the button stays highlighted).
The “Corner panel…” control is disabledYou need exactly two neighbouring cells selected — horizontally or vertically. Cells one apart or diagonal do not qualify.
A grid cell turned yellowThe 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 enteredA 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 redIt 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 spotThe 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 listThe 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 formBy 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 columnColumns 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 projectApply 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 unchangedSaving the configuration affects subsequent runs. To update an existing program use the CNC tab → Recompute.
Reopening a project shows no files in the treeThe 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 passwordIn 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.

TermMeaning
NestingArranging parts on stock sheets so as little material as possible is wasted.
Nesting depthHow parts are turned when they are nested by their real shape: 90° down to 5°; Rectangles nests by bounding boxes — the fastest.
Part / detailOne line item of the order: panel type + dimensions + quantity.
Panel typeThe 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 codeThe short designation of a type (R, C, BCAB). Used by the API and in file names.
CUSTOMA part taken from an existing DXF file: its geometry and size come from the drawing rather than being built parametrically.
Flat patternThe 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 classThe identifier (steel_1mm, aluminum_3mm) used to group parts into separate nesting jobs.
KindSteel / Aluminum / ACM. Decides which CNC rules and which machine apply.
Material groupA 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.
SheetA stock blank of a given format. Size, quantity and priority are set in Sheet Settings.
Priority1 → 2 → 3 → none. The order in which formats are consumed.
Parts marginThe minimum clearance between the contours of two neighbouring parts on a sheet.
Frame marginThe distance to the sheet edge. It can be a single value or one per side.
ModuleIn the grid, a column width or a row height, measured from joint centre-line to joint centre-line.
JointThe gap between panels in an elevation. A panel takes half a joint on each side.
Wall angleThe turn of the façade at a particular joint. The panel is mitred to 90 + angle/2.
Corner panelOne panel that spans a joint and has two legs: W and W2.
SoffitA horizontal fold — a corner panel made from two cells stacked one above the other.
BOMBill of materials: the profiles, sheets, hardware and consumables an order needs.
ProfileA linear part (an aluminium extrusion) with a length and cut angles at its ends.
Cut distanceHow much is taken off a profile's length at each end.
KerfThe material the saw removes at every profile cut; accounted for in the cut plan.
Cut planThe arrangement of profile pieces across stock bars.
Packing slipA document with the order header and the list of parts.
LabelsA sheet of stickers — one per part.
TemplateThe 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.
TokenA placeholder in braces in a layout: {customer} from the order header, {QTY} from an individual part.
LayerA DXF layer (contour, holes, grooves, engraving). CNC rules are set per layer.
Inner contourA cut-out inside a part: rectangle, rounded rectangle, circle or slot.
GrooveA fold groove, usually cut with a V-shaped tool.
Weep lineA drainage slot.
EngravingMarking the part code onto the part itself; switched on in Job Settings.
ToolpathThe tool's route. The CNC tab shows it together with the travel line between operations.
PeckThe peck-drilling step — how far the tool retracts to clear chips.
Feed Z / Feed XYThe plunge rate and the working feed rate in the plane.
RPMSpindle speed (the S word in G-code).
WorkspaceWhere a run's files are kept. It belongs to a specific project, not merely to the job name.
API keyA secret granting programmatic access with your account's rights. Shown once, at creation.
Ray / segmentIn the object editor: an infinite ray (moves the whole edge) or a finite segment between two points.
PivotWhich arm of an angle rotates when its value changes.
Child objectA 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.