What this program is
DXNest Fabrication is a browser application for nesting and production preparation of façade panels: from a parts list and an elevation layout through sheet nesting, CNC programs, the bill of materials and printable reports.
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.
- New here? Start with the Quick start. Puzzled by a message on screen? See the Message reference. Unfamiliar term? The Glossary. Something went wrong? When something goes wrong.
- The document prints cleanly — the contents and header are hidden on paper.
Everything happens in a single browser window. Your data lives on the server in a private space that belongs to your account: projects, your object library and every generated file. There is no public sign-up — accounts are created by an administrator.
The usual route through the program
The main window
Quick start — your first job in 10 steps
The shortest path from an empty document to files ready for the machine. Every step has its own detailed section — this is just the order.
- Sign in with the username and password your administrator gave you. An empty document called
Web orderopens. - Fill in the header. Right panel → Job Settings: Job Name (it becomes the name of the output folder), customer, date, PO. Set Nesting depth = 0 so the first run is quick.
- Describe the material and the sheets. Right panel → Sheet Settings: rename the material, choose its Kind (Steel / Aluminum / ACM), enter the stock formats and how many you have. Add a second material with + if you need one.
- Set the margins. Same place: Parts Margin is the clearance between parts, Frame Margin the distance to the sheet edge.
- Add the parts. Part List tab → Add part. For each row pick a Type, enter W and H (the depth D fills itself in), the quantity and a name. The material is limited by the type — if the one you need is missing, widen the list in the type's definition.
- Look at a part. The eye button in the Edit column shows the geometry exactly as the engine will build it. It is the fastest way to catch a wrong dimension.
- Check the BOM. The BOM tab is computed without a run: it already shows profile lengths, cut angles and flat-pattern sizes. If a flat pattern is bigger than your sheet, fix it now rather than after a failed run.
- Run the nesting — the Run ▶ button on the toolbar. The app switches to the Nesting tab by itself when the job finishes.
- Save the project. The Save project button in the Nesting tab (or the diskette on the toolbar). This is not optional: the server only keeps generated files for a saved project.
- Collect the files. Right panel → Project Tree: download them one by one, or press Download all (.zip) in the results window.
What a document needs before it can run
The Run button will not start a job until all three conditions hold:
| Condition | Message if it does not hold |
|---|---|
| At least one part exists | Add at least one part before running. |
| The active material has at least one stock sheet | Add at least one stock sheet for the active material. |
| Every non-angle dimension of every part is greater than zero | Cannot run — N parts have a dimension of 0: … listing each part and which dimensions are empty |
The parts named in the third message are immediately flagged in the Part List with a ⚠.
Signing in
The application and every piece of data behind it are protected by a server session. There is no self-registration: the username and password come from an administrator.
The sign-in form
Username is the account name, not the display name. The password is stored encrypted on the server; only an administrator can change it.
The demo
Try the demo creates a throwaway account and signs you straight in. Everything works except taking files away — see Demo mode.
What happens after you sign in
- a session opens that lasts at most 12 hours — after that you sign in again;
- your library of panel types loads, so the Part List immediately knows what you can build;
- your personal CNC settings and machine configuration are pulled in;
- an empty document named
Web orderopens — start filling it in, or open a saved project.
Steel 1mm, one 1500×3000 sheet format, zero parts.The window frame
Four permanent strips: the title bar, the toolbar, the tabs and the status bar. They stay the same whichever tab you work in.
The title bar
The tabs
| Tab | When it appears | What it is for |
|---|---|---|
| Grid | when the grid button on the toolbar is switched on | The elevation layout: columns × rows of cells that panels are placed into. |
| Part List | always | The parts table — the master list of what has to be made. |
| BOM | always | The bill of materials: profiles with lengths and cut angles, sheets, hardware. |
| Nesting | after a successful run (or after opening a project with a saved layout) | The interactive sheet-layout editor. |
| CNC | same | Viewing and editing the generated machine programs. |
The status bar
- On the left — how many part rows the document holds; a warning engine offline appears here if the server did not return the list of panel types.
- On the right — the unit selector and the application state:
Ready, orRunning…during a job.
mm, inch (decimal), inch (fractions) — the last shows sizes as 23 5/8" and accepts the same form as input.How dimension fields behave
Every length field — in the Part List, in the sheet settings, in the grid, in the part editor — follows the same rules:
| Situation | What happens |
|---|---|
| While you type | The text stays exactly as you typed it — the field does not reformat mid-edit, so a fraction like 23 5/8 can be typed in peace. |
| Enter | Leaves the field and commits the value (the same as clicking elsewhere). |
| Losing focus | The text is parsed into millimetres, written into the document, and the field is redrawn in canonical form — so you see at once how the app understood you. |
| An empty field | Means 0. A part with a zero dimension will not pass the pre-run check. |
| Changing units | Every field is reformatted, but the stored millimetres are not rewritten — mm → inches → mm loses nothing. |
| The value changes from elsewhere | For example the grid recomputed a panel — the field updates, as long as your cursor is not in it. |
23 5/8, 23-5/8, 5/8, 23.62 are all valid. Fractions are rounded to 1/16″. The fields do not evaluate arithmetic (100+50).The toolbar — every button
Thirteen buttons in groups separated by dividers: project · history · content · run · settings panel.
Project
History and content
.dxf files and adds them as CUSTOM parts — see Importing your own DXF files.Run and the settings panel
The settings panel
Six accordion sections. As many can be open at once as you like; the state is remembered for the session.
Collapsed sections
Clicking a heading expands the section. The open one is marked by an accent bar on its left.
Hiding the panel
The narrow handle on the panel edge (or the gear button on the toolbar) hides the panel completely.
Project Tree — the produced files
Before the first run the section shows a structural summary of the document: the job name, the materials with how many sheet formats each has, and the number of parts.
After a run it becomes a real tree of the generated files — exactly as they sit on the server.
| Folder in the tree | What is inside |
|---|---|
nesting/<material>/ | The sheet-layout DXFs — what goes to the cutter. |
parts_dxf/<material>/ | The flat pattern of every individual part. |
CNC/<material>/ | The .nc machine programs, one per sheet. |
*_report.pdf | The printable sheet report, one per material. |
*.xlsx | BOM, Packing Slip, Labels, CutPlan — depending on which reports are switched on. |
layout.json | The machine-readable description of the layout — this is what the Nesting tab reads. |
Job Settings — the order header
| Field | What it does |
|---|---|
| Job Name | The name of the order. Shown in the title bar and used as the name of the output folder, so every generated file lands in it. |
| Date, Invoice | Date and invoice number — they reach the headers of the Packing Slip, Labels and BOM. |
| Customer | The customer. |
| Ship to | The delivery address (also available in templates as the address field). |
| PO | The customer's purchase-order number. |
| Nesting depth (0–6) | How hard the engine searches for a tighter layout. 0 is a fast greedy pass; higher values pack better but run time grows sharply. |
| Part Code Engraving | Engrave the part code onto the part itself. Visible on the layout canvas and in the CNC tab as separate engraving operations. |
Nesting depth = 0. Once the order content is final and you want to squeeze out the last percent of yield, raise it to 2–3 and run again.Sheet Settings — materials, sheets and margins
Margins
- Parts Margin — the minimum clearance between parts.
- Frame Margin — the distance to the sheet edge on all four sides.
- Frame margin per side — switch it on to set each side separately (Top / Right / Bottom / Left). The sides start from the previous common value.
Nesting options
- Allow part rotation — let the engine turn parts. Switch it off for directional material (brushed, patterned, anodised).
- Trim overlapping lines — remove lines that coincide on neighbouring parts so the cutter does not travel the same path twice.
Materials
Each material is its own tab. A dot “·” next to the name means no part uses that material yet (you can configure it in advance). + adds a material; the router icon on the right opens the CNC rules for that material.
| Field | Meaning |
|---|---|
| Material name | The name you see and the one printed in reports. |
| Kind | The material class for the engine: Steel · Aluminum · ACM. This is what decides which machine and which machining rules apply. |
| CNC machine | Appears when your configuration has a machine able to process this kind. Auto picks the first capable one; None means no CNC output for this material. |
| bin | Removes the material. The last remaining material cannot be removed. |
Stock sheets
| Column | Meaning |
|---|---|
| Width / Height | The size of the stock sheet. |
| QTY | How many sheets of that size are available. |
| Priority | The order they are consumed: 1 is used first, then 2, then 3; none means no preference. Use it to burn off remnants or the cheaper format first. |
Profile Settings — linear stock
- Kerf Width — the saw kerf; it is subtracted at every cut.
- The bar table — name, length, quantity in stock.
- Add bar — add a stock entry.
- Export cut plan — pack the profile pieces from the BOM into these bars (first fit) and download the optimised plan as Excel. disabled in the demo
Report Settings — which reports to produce
| Report | What it contains |
|---|---|
| BOM | The bill of materials: profiles with lengths and cut angles, sheets with flat-pattern sizes, hardware. |
| Packing Slip | The packing slip: order header, part rows, total quantity. |
| Labels | A printable label sheet — one label per part, tiled across the page. |
| Profile cut plan | The cutting plan for the bars defined in Profile Settings. |
The Edit template… buttons open the layout editors for the Packing Slip and the Labels — see Reports and the layout editor. The tag project template means this project carries its own layout, overriding your personal default.
General Settings
Shows the connection to the engine and how many panel types are loaded. If it reads Offline, the server is unreachable and the Part List cannot offer any types. The unit selector deliberately lives in the status bar so it is always within reach.
Part List
The main table of the document. One row is one line item: panel type, dimensions, quantity, name, material.
The action bar
Part N. The type is chosen automatically (the first suitable type with W/H/D), the depth comes from its Default Depth and angles from their defaults; width and height are yours to enter.- Duplicate — copies the selected rows with all their dimensions and inner contours.
- Remove — deletes the selected rows.
- Set group material… — changes the material for a whole material group at once (see below).
- On the right — a counter:
N partsorN selected.
The columns
| Column | Meaning |
|---|---|
| # | The row number. Clicking it selects the row; Ctrl/⌘+click adds to the selection. A ⚠ replaces the number when the part could not be placed in the last run. |
| W · H · D · W2 · ANGLEA · ANGLEB … | Dimension columns are built dynamically: only those needed by the types actually present are shown. A dash “—” means this type has no such dimension. |
| Qty | How many identical parts. |
| Name | The part designation. It goes into the reports, into the flat-pattern file name and into the engraving. |
| Type | The panel type from your library. Changing it rewrites the set of available dimensions. |
| Material | What to cut it from (constrained by the type — see below). |
| Edit | Three actions on the row. |
The buttons in the Edit column
Three kinds of dimension cell
A number
A normal length field. It accepts the units selected in the status bar; internally the value is always millimetres.
An angle from a list
If the type has a variable angle, the cell becomes a dropdown of the permitted values (min…max with the declared step) — an arbitrary number cannot be typed.
A fixed value
For CUSTOM (DXF) parts the dimensions are shown in italics and cannot be edited: they were read from the file.
Materials and material groups
A part's material is constrained by its type. The type declares a list of allowed materials and a group name:
- A single-material type — the cell shows it as plain text, with no choice (a Back Pan is always
Steel 1mm). - A multi-material type — a dropdown of the allowed materials only (a Standard:
Aluminum 3mmorACM 4 mm). - CUSTOM — any material in the project.
The Set group material… list is grouped by group name (“Exterior Panels”, “Back Pan Panels”, “Custom Group”) — one pick switches every part in the group.
What happens when you change a part's type
- Dimensions you already entered are kept — the app does not wipe W and H just because you switched type.
- Dimensions the new type is missing are filled from its settings: depth from Default Depth, fixed dimensions, angles from their defaults.
- If the part's current material is not allowed by the new type, it switches to the first allowed one. If that material does not exist in the project yet, it is created.
- The set of dimension columns is rebuilt around the types actually present in the list.
Small things that save time
- Materials with no parts at all are left out of the run entirely — you can keep spare materials configured in advance.
- If a part's material was deleted, the part is not lost: it runs with the first material that does have parts.
- Duplicate copies inner contours as well.
- Row order drives the numbering in reports and labels — drag rows to get the order you want.
Selection and ordering
- click the row number to select it; Ctrl/⌘+click adds or removes;
- a row can be dragged by any part of it and dropped onto another — the list order changes (and with it the numbering in reports);
- rows that failed to place in the last run are highlighted and carry an explanatory tooltip.
Importing your own DXF files (CUSTOM)
An existing drawing can go into the nesting as it is — no parametric type required.
- Press Import custom DXF parts on the toolbar and pick one or several
.dxffiles. - The server reads each file, works out its extents and stores it in your import area.
- A row of type Custom (DXF) appears in the Part List, named after the file without its extension.
Bracket A.dxf: the size 420 × 260 is shown in italics (it came from the file), the type cannot be changed, the material is yours to choose.The part editor and inner contours
The pencil in a Part List row opens the part's card with a live geometry preview.
The basic fields
- Name, Qty — the same as in the table, only easier to edit.
- Dimensions — every one the type declares; angles are dropdowns of permitted values here as well.
- Rotate 90° — force the part to be turned when nesting (material direction, texture).
Inner contours (cut-outs)
Four cut-out shapes:
| Shape | Fields |
|---|---|
| Rectangle | Center X · Center Y · Width · Height |
| Rounded rect | Center X · Center Y · Width · Height · Corner R |
| Circle | Center X · Center Y · Radius |
| Slot | Center X · Center Y · Width · Height |
INNER CONTOUR layer and are machined by the “Inner contour” layer rule.The DXF viewer
One viewer is used everywhere: for parts in the list, for files in the output tree, for object previews.
- Fit — fit the drawing to the window;
- mouse wheel — zoom around the cursor;
- drag — pan;
- on the right, the number of drawn entities.
Layer colours
| Colour | What it usually is |
|---|---|
| green | outer contour / cut |
| red | holes |
| cyan | grooves, fold lines |
| yellow | inner contours |
| grey / white | other lines, text |
Grid — the elevation layout
Instead of typing dozens of rows by hand you draw the façade: columns × rows of cells with joints between them. Every filled cell creates — and keeps in sync — one part in the Part List.
The tab appears once you press Grid on the toolbar.
How the panel size is worked out
This is the key rule of the tab; without it the numbers in the cells look puzzling.
- A column width and a row height are the module, measured from joint centre-line to joint centre-line.
- The panel in a cell = the module minus half a joint on each of its four sides. That way two neighbouring panels always leave exactly one whole joint between them.
- The outer boundaries of the elevation default to a joint of
0— the panel runs out to the edge. They can still be given their own width like any other line. - The default joint is 16 mm (≈ 5/8″); a fresh grid is 4 columns × 3 rows of 1000 mm.
Example: a 1200 mm column with 20 mm joints left and right gives a panel of 1200 − 10 − 10 = 1180 mm.
How a joint sets the panel angle
- An angle on a line is the turn of the wall at that joint.
- The two panels either side share the turn, so the panel angle is
90 + wall angle / 2. A flat line (0) leaves a square 90° edge; a 90° wall corner bends the panel to 135°. - 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 is highlighted yellow — that is the “clamped” warning.
Where a panel takes its angles from
| Case | Angle sources, in the order of the type's dimensions |
|---|---|
| An ordinary cell | Its vertical edges first (left, then right). If only the horizontal lines carry an angle, those are used instead (top, then bottom). |
| A horizontal corner panel | The first angle comes from the shared line (the corner itself), then the far left line, then the far right one. W = the left cell, W2 = the right cell, H = the row height. |
| A vertical corner panel (soffit) | The first angle comes from the shared horizontal line, then the top one, then the bottom one. W = the height of the upper cell, W2 = the height of the lower one, H = the column width. |
A panel is handed only the dimensions its type declares — anything else is dropped.
The top row of controls
| Control | What it does |
|---|---|
| Rows / Cols | The number of rows and columns. Applied on Enter or when the field loses focus. |
| Joint X / Joint Y | The default joint between columns and between rows. Individual joints can override it. |
| Place type… | Put a panel type into every selected cell. The matching parts are created at once. |
| Corner panel… | Join two neighbouring cells into a single corner panel spanning the joint between them. The list only offers types that can form a corner (they declare W2 or have a variable angle). |
| Split | Break a corner panel back into two cells. |
| Disable / Enable | Mark a cell as “no panel” (a window opening, say) or bring it back. |
| Empty | Remove the type from the cell — its part disappears from the Part List. |
| Clear all | Empty every cell in the grid. |
| − / + | Zoom the canvas. |
| Limits: 1 to 200 rows and columns; zoom from 0.02 to 0.6 pixels per millimetre, in ×1.25 steps. | |
Selecting cells
- Click — select one cell;
- Click and drag — a rectangular region;
- Shift+click — extend the selection to that cell;
- Ctrl/⌘+click — add or remove a single cell;
- click empty background — clear the selection;
- double-click a filled cell — jump to the Part List with that panel's row selected.
The second row of controls — contextual
It shows whatever is currently picked: either a joint, or cells.
Cells selected
The Top / Right / Bottom / Left fields set the joint for these cells specifically, overriding the default. An empty field means “as everywhere else” (the inherited value shows as the field's placeholder). Default clears the override.
A joint selected
| Control | What it does |
|---|---|
| Angle | The wall turn at this joint, in degrees. 0 is a flat wall. |
| 90 · −90 · 0 | Presets: outside corner, inside corner, reset. |
| → 135° | For reference: the angle the panels themselves will get. A panel is mitred to 90 + angle/2, because two panels share the joint equally. |
| Joint | The width of this particular joint; empty means the default. |
| Default | Return the joint to the default width. |
What a cell shows
An ordinary panel
The type name, the computed panel size (module minus half joints) and the reference R1C1 — row and column.
A corner panel
The panel occupies both cells; the size reads W × H + W2, where W2 is the second leg.
Extra markers: a small dot in the corner means this cell has its own joint override; a yellow frame warns that a computed angle had to be clamped.
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 (ANGLEA = 135° from corner line V2 (wall 90°)) and the name of the created part. 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 capable of a corner: those declaring
W2or having a variable angle. - 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 angles. Quantity, name, material, depth and inner cut-outs stay exactly as you set them in the Part List.
A full example
BOM — the bill of materials
Computed by the engine from the current parts list and refreshed on its own whenever you change something. No run needed.
How the table is structured
Rows are grouped into sections with orange headings:
| Section | What is in it |
|---|---|
| Profiles | Linear profile pieces: cut length, quantity, cut angles A and B. |
| Sheet | Sheet blanks with their flat-pattern sizes (Flat Pattern W / H). |
| Blocks, Screws, Sealant, … | Hardware and consumables declared in the objects. |
The columns
| Column | What it means |
|---|---|
| # | A running item number (section headings are not numbered). |
| Panel Name | The item name: for a profile, profile name + segment label + part name; for a sheet, Sheet <part name>. |
| Profile Length | The length of one piece after Cut Distance is taken off each end. Empty for sheet items. |
| QTY | The quantity including the part's own quantity (the expression from the object definition × the number of parts). |
| Cut Angle A / B | The cut angles at the two ends of the piece. |
| Flat Pattern W / H | The extents of the flat pattern of a sheet blank — this is the number that has to fit the sheet once the frame margin is taken into account. |
The export buttons
- Export BOM — the whole table as a formatted Excel file;
- Packing Slip — the packing slip in your layout;
- Labels — the label sheet;
- on the right, the number of items, or
Computing…while the engine works.
4 * qty. Change the object definition and the whole bill of materials changes with it.Reports and the layout editor
The Packing Slip and the Labels have a full layout editor — a table with merged cells, fonts, borders and placeholders for both document fields and per-part columns.
Packing Slip
The sections of a layout
- Header — the top of the page: company name, order fields, column headings;
- Part rows — the row that repeats for every part;
- Footer — totals, signatures.
The formatting bar
| Group | Buttons | What they do |
|---|---|---|
| Font | B · I · U · size | Bold, italic, underline and point size for the selected cells. |
| Alignment | left · centre · right | Horizontal text alignment. |
| Cells | Merge · Split | Merge the selected rectangle into one cell, or split it back. |
| Structure | +Row · −Row · +Col · −Col | Insert a row below / delete a row / insert a column to the right / delete a column. |
| Borders | Border · None | Add or remove borders across the selection. |
| Placeholders | Field… | Insert a document field into the cell: Customer, Address, Ship To, PO, Date, Invoice, Job Name, Material. |
| Placeholders | Part column… | Insert a per-part column: №, QTY, Name, Type and every dimension your parts actually use (Width, Height, Depth, Return W, Angle A/B…). Only active in the part-row section. |
| Fill | Fill… | Accent · Light · None. |
| Size | W · H | Column width and row height for the selected cell. |
Editing the content
- Click selects a cell, drag selects a range;
- double-click edits the text; Enter confirms, Esc cancels;
- green text in braces is a placeholder (
{customer},{QTY}), not literal text.
Saving a layout
| Button | What it does |
|---|---|
| Apply to project | Store the layout in this project (it overrides your personal default). |
| Save as my default | Make it your personal default — it will apply to every new project. |
| Clear my default | Remove your personal default; the built-in one comes back. |
| Remove project override | Remove this project's own layout (the button only appears when one is stored). |
| Reset to default | Reset what is currently in the editor back to the default. |
| Export now | Produce this report as Excel right away. disabled in the demo |
The window title tells you where the current layout came from: built-in default, your default or this project, plus an unsaved tag when there are pending changes.
Labels
There are no three sections here but one label block, tiled across the page. The tiling is controlled at the top right:
- Columns — how many labels across;
- Col gap / Row gap — the spacing between them, in table cells.
{QTY}, {Width}, {Height}, {Name}, {№} for the values of the individual part and {customer}, {job_name} for order fields. Everything else is printed literally.Running a job
The Run button sends the document to the server: the engine builds the geometry of every part, lays them out on sheets and generates DXFs, CNC programs and reports.
The check before anything is sent
Before anything reaches the server the app validates the document locally. If something is wrong, the window opens straight away with the error and no job is created:
| Message | Cause | What to do |
|---|---|---|
Add at least one part before running. | The parts list is empty. | Add a part in the Part List, or fill some grid cells. |
Add at least one stock sheet for the active material. | The materials that carry parts have no sheet format at all. | Sheet Settings → Add sheet. |
Cannot run — N parts have a dimension of 0 | A required dimension is empty or zero. Angles are not checked, and neither are CUSTOM parts (their size comes from the file). | The message lists each part and which dimensions are empty; those rows get a ⚠. |
While it runs
The usual stages: preparing the parts → nesting onto sheets → generating DXF → CNC → reports.
Queued…, Nesting parts onto sheets… and so on). The bar itself is a liveliness indicator: it eases towards the end but never reaches it until the real result arrives. An almost-full bar does not mean almost done.Queued… means the server is busy computing somebody else's job. Yours starts automatically when its turn comes. If the state does not change for a very long time, the previous job probably ran with a high Nesting depth.When the run succeeds the app switches to the Nesting tab by itself, provided a layout was produced.
A successful finish
The files are grouped by kind: Report (PDF), CNC programs (.nc), DXF files, Other files. Each row shows the size, an eye for DXFs and a download button.
Warnings worth reading
Back Pan, for instance). Their layouts and reports were created; a machine program was not. Whether CNC is produced is set by the CNC allowed checkbox in the panel type.When a run fails
Parts that could not be placed are afterwards flagged in the Part List with a ⚠.
After the run
Nesting — the layout editor
Whatever the engine produced can be reworked by hand: move a part, rotate it, delete it, bring one back from the queue, change the sheet format or the margins — and rewrite the files on disk.
The bar at the top
| Control | What it does |
|---|---|
| Material | Switches between materials (each is nested separately). Only shown when there is more than one. |
| Format | Change the format of the current sheet to another one configured in Sheet Settings. Parts keep their coordinates, so after shrinking a sheet some may end up outside — check the layout and move them. |
| Margins … · gap … | Opens a small panel with this sheet's margins. |
| Delete sheet | Deletes the sheet; all its parts return to the unplaced queue. |
| Save sheet DXF | Export the current sheet as DXF. demo |
| Save all DXF | Every sheet of the material: a single DXF or a .zip. demo |
| Recompute CNC | Rewrite the layout DXFs and the CNC programs on disk from the current canvas. A dot “•” on the button means there are unsaved edits. |
| Save project | Save the project together with the layout (recomputing the files first if needed). demo |
The sheet list
For each sheet: name, size, number of parts and which they are. A ×4 badge means this sheet repeats four times (the same layout, multiplied by the run quantity).
The unplaced queue
Everything that did not fit, or came back after a sheet was deleted, ends up here. The thumbnail is drawn from the part's real contour; next to it is the remaining quantity.
Loading part geometry N/M…. Until it disappears some parts may not be drawn yet — just wait.- click a free spot — drop one copy;
- drag — lay down an array of copies (as many as fit and as many as remain);
- Angle / Rotate 90° — the angle the copies are placed at;
- Esc or Cancel leaves the mode.
Working on the canvas
| Action | How |
|---|---|
| Select a part | click it |
| Move | drag |
| Rotate | drag the round ○ handle, or use the Angle field, or press R (90° steps). With Shift the angle snaps to 15° |
| Delete | Delete / Backspace, or the Delete part button |
| Deselect | Esc |
| Zoom / pan | mouse wheel / drag the background; Fit fits the sheet |
The magnet
While you drag, a part snaps to the right distance as soon as it comes close enough (about 8 screen pixels):
- onto the sheet's frame-margin lines — the part lands exactly on the edge of the working area;
- onto a neighbour's contour offset by the gap — leaving precisely the configured clearance rather than an eyeballed one.
Snapping is computed from the real contour, not a bounding box, so shaped parts nest tightly. The same magnet works when placing a new part.
When a move is rejected
- the part leaves the sheet's working area (sheet minus frame margins);
- its contour comes closer to another part's contour than the configured gap.
An invalid position is drawn red while you drag, and on release the part returns to where it was.
Rotation
- the ○ handle above the selected part — drag to rotate; with Shift the angle snaps to 15°;
- the Angle field accepts any number (normalised to 0…359°);
- R or Rotate 90° steps by 90°;
- rotation happens about the bottom-left corner of the part's footprint, as it does in the engine, so the angle on screen and in the program agree.
Arrays of copies
In placing mode hold the mouse button and drag: a grid is built out from the first copy. The step is the part size plus the gap between parts; the direction follows your drag. Only valid copies are laid down — those that would leave the sheet or clash are skipped — and the total is capped by the remaining unplaced quantity.
After hand edits
- Edits live in the browser and are marked by a “•” on the buttons.
- Recompute CNC rewrites the layout DXFs and machine programs to match the new arrangement.
- Save project does the same (when there is something to recompute) and stores the project with its layout — after that it can be reopened without running again.
.nc survive. A recompute only happens when the layout itself changed.CNC — the machine programs
Shows the generated program for each sheet: the toolpath with its travel order, and the operation list you can reorder.
The bar at the top
.nc; the file name is shown under each.- Material — switch materials; only those that produced CNC output are listed;
- a caption such as
CNC Woodwork · 3mm Aluminum— the machine and the rules the engine applied; - Edit CNC rules… — opens the CNC manager on exactly that material;
- Recompute — regenerate the program;
- Save project — write any unsaved operation edits into the
.ncand save the project; - on the right, the number of operations and the tools involved.
The toolpath preview
The operations themselves are drawn plus a travel line connecting them in execution order — so wasted rapid moves are visible at a glance. The sheet outline is drawn as a frame.
| Operation kind | How it is drawn | Colour |
|---|---|---|
Drill, Weep | a small circle at the point | red |
Engrave, Groove | a polyline | cyan |
Chart, Cut, Mill, Contour | a polyline | green |
| anything else | a polyline | light grey |
| travel between operations | one continuous polyline | blue |
| the sheet outline | a frame | light |
Single-point operations (drilling) are shown as circles of a nominal radius — a position marker, not the hole diameter.
The operation list
| Element | Meaning |
|---|---|
| ⋮⋮ | The drag handle: rows can be swapped to change the machining order. |
| № | The position in the current sequence. |
| Kind | Drill, Engrave, Groove, Cut/Contour… The colour matches the drawing. |
| Label | The operation label from the program. |
| tool | The tool for this individual operation. The field suggests the material's configured tools. |
| X… Y… | The entry point coordinate. |
Save CNC rewrites the .nc with the new order and tool assignments; it is only enabled when there are changes.
The order of saving — important
- Edits to the operation order and tools live in the browser until you press Save CNC (or Save project, which does it for you).
- Save project first writes the pending operation edits into the
.nc, then stores the project. - A layout recompute (Recompute) rewrites the
.ncfrom scratch — every hand edit to order and tools in it is lost.
Steel 1mm with Back Pan types. The message says so directly.CNC machines, tools and materials
This is the brain behind the machine programs. You describe your machines, their tools and the machining rules for every layer of every material — and the engine uses them on every run.
The tabs
- Form — the ordinary editor with fields and tables;
- JSON (this material) — the same content as a file: handy for copying between installations;
- Guide — a reference for every field with a fully worked example;
- Import all… / Export all — a backup of the entire configuration (all machines and materials). export disabled in the demo
The machine
The list of machines, a field to rename the current one, and + Machine to add a new one (it inherits the current machine's tools).
The material library
Shared by every machine. Each entry has:
- Name — for example
3mm Aluminum; - Kind —
Steel/Aluminum/ACM. The kind is what links a project material to these machining rules; - Default machine — which machine to use when a job does not name one.
The tool library
| Column | Meaning |
|---|---|
| # | The tool number (the T word in G-code). |
| Label | The human name shown in the pickers. |
| Ø mm | The diameter — used by the per-diameter hole rules. |
| H | The length-offset register (the H word); defaults to the tool number. |
Per-layer machining rules
For the chosen material × machine pair there is one row per layer:
| Layer | What it machines |
|---|---|
| Contour | The outer contour of the part. |
| Inner contour | The cut-outs added in the part editor. |
| Grooves | Fold grooves (usually a V-shaped cutter). |
| Weep lines | Drainage slots. |
| Engraving (name) | Engraving the part code, when Part Code Engraving is on. |
| Parameter | Meaning |
|---|---|
| Tool | A tool from this machine's library. |
| Depths (mm, per pass) | Pass depths separated by commas: 1.15, 2.3, 3.45 means three passes. |
| Feed Z / Feed XY | Plunge feed and working feed. |
| Peck | The peck-drilling step. |
| RPM | Spindle speed (the S word). |
Holes
A table of its own: an any (default) row plus as many “from Ø to Ø” rules as you like. A hole takes the first rule whose range contains its diameter; if none matches, the default applies.
- Rules are checked top to bottom — keep narrow ranges above wide ones.
- A new rule is created as a copy of the default, so you only change the diameters and the tool.
- Per-diameter rules have no speed of their own: they take the RPM from the drilling block (the Holes default row). The table shows a dash for that.
G-code blocks
| Block | When it is emitted |
|---|---|
| Start CNC Code | At the start of the program. |
| Start Drilling | Before the drilling block. |
| Start Grooving | Before the grooves. |
| Start Milling | Before contour milling. |
| End CNC Code | At the end of the program. |
Tn M06, G43 Hn and /M03 Sn lines in these blocks stay automatically in step with the tables above: change a tool or a speed and the matching line updates; edit one of those lines and the field updates. Milling ↔ the Contour row, Grooving ↔ Grooves, Drilling ↔ the holes default. Every other line is yours to edit freely.Only lines with recognised words are synchronised. Changing a tool number (#) or offset register (H) in the tool library updates the blocks of all materials on that machine.
What imports and exports cover
| Button | Scope | When it helps |
|---|---|---|
| Export all / Import all… | The whole configuration: every machine with its tools, the material library, every rule. | A backup; moving your setup to another server or another user. |
| Export material / Import material… | One file = one material on one machine: the layer rules, the holes and the G-code blocks. Tools are not included — they belong to the machine. | Handing over proven cutting parameters for a particular material. |
JSON and Guide
Object editor — building panel types
The most powerful part of the application: here you describe what a panel of a given type is — which dimensions it has, how its geometry stretches, where holes are drilled, what its BOM consists of and which parts are made together with it.
The three columns
Left — the library
Your objects: display name, type code and the list of dimensions. × deletes an object, + New Object starts a new one.
Right — the preview
Two modes: Reference DXF, the source drawing you mark up, and Scaled preview, the result built at test sizes.
The action bar
- Load DXF… — load the reference drawing (the part at its minimum size) that you then mark up;
- Import JSON… — load a ready definition from a file;
- Build & Preview — build the object and show the result;
- Save to library — store it; the type becomes available in the Part List straight away.
General Info
| Field | Meaning |
|---|---|
| Display Name | What the type is called in the interface. |
| Type Code | A short code (R, C, BCAB…). Also used by the API and in file names. |
| Material Group | The group name used for changing the material of a whole family at once in the Part List. |
| Default Depth | The depth given to new parts of this type. |
| Materials | The allowed materials. Empty means any. Class is the identifier used to group parts into per-material nesting jobs (steel_1mm). |
| CNC allowed | Whether machine programs are generated for this type. |
| Layer Aliases | Layer names in incoming DXF files that count as “this type”. |
The mark-up sections
Seven sections follow. Each heading carries an ⓘ icon — hovering it shows an illustrated hint inside the program; they are reproduced here.
Reference Geometry
Shows what could be read from the drawing: how many contour points, holes, inner contours and grooves.
Parameters — the dimensions
| Column | Meaning |
|---|---|
| Name | The dimension code in capitals: W, H, D, and also W2, H2, A, L… |
| Min | The size the reference drawing is drawn at. |
| Formula | An expression for derived dimensions. |
| P1 · P2 | The two vertices the dimension spans — filled in by Pick Endpoints. |
| Description | A free comment. |
Scaling Lines — how the geometry stretches
| Column | Meaning |
|---|---|
| Parameter | Which dimension moves this edge. The list comes from the Parameters table. |
| Axis | X — the edge moves horizontally, Y — vertically. |
| Type | ray — an infinite ray: everything on that line moves (for a vertical ray only X1 matters). segment — a finite edge between two points. |
| Anchor | The anchor name — the marker the engine matches against the drawing (for example Scale_X). Filled in automatically when you pick a line. |
| Formula | Optional, when the edge does not move one-to-one with the parameter. |
| X1 · Y1 · X2 · Y2 | The coordinates. In ray mode X2 and Y2 are disabled — a ray is defined by one point and an axis. |
The buttons under the table: + Add Mark for a new row, − Remove for the selected one, Pick Line to enter line-picking mode on the drawing (pressing it again leaves the mode).
Variable Angles
| Column | Meaning |
|---|---|
| A · B · C | The three corner points; B is the vertex the leg swings about. |
| Default | The value used unless overridden. |
| Min · Max · Step | The range and increment — exactly what becomes the dropdown in the Part List. |
| Pivot | Which arm rotates. |
| Tag | The dimension name the angle appears under in the parts list (ANGLEA). |
| Keep | Preserve the side length when the angle changes. |
Pick Angle asks you to click the three points in turn: A → B → C.
Hole Rules
| Column | Meaning |
|---|---|
| Name | The rule's name — useful once there are several. |
| X1 · Y1 | The first point of the run. |
| X2 · Y2 | The second point of the run. |
| Max step | The largest spacing between neighbouring holes. The engine chooses the count so the step never exceeds this and the run stays even. |
| Diameter | The hole diameter. Left empty with Pick 2 Holes/Points, the diameter of the first picked hole is adopted. |
| Ends | Whether holes are placed at the end points themselves, or only between them. |
BOM — Profiles
| Column | Meaning |
|---|---|
| Profile Name | The profile's name. Rows sharing a name are grouped together in the BOM. |
| Label | The segment label (W1, H, W2…) — it reaches the BOM item name. |
| Cut Distance | How much is taken off each end. G = 100 with a Cut Distance of 10 gives a piece of 80. |
| Qty | The quantity. May be an expression: qty, 2 * qty, 3. |
| Angle A / Angle B | The cut angles at the first and second ends (90/90 by default). |
| Orient. | Which dimension the length follows: W (horizontal), H (vertical) or any model parameter. |
BOM — Details
Non-profile items: Sheet, Screws, Blocks, Sealant, Other. The fields are the category, the name (which may contain {name}), the quantity (an expression) and the unit.
Child Objects
An object can carry other objects — a galvanised inner sheet, say. The child is chosen from the library and its dimensions are expressions of the parent's.
| Card field | Meaning |
|---|---|
| Name and code | Which library object is embedded. |
| Dimensions | For each of the child's dimensions, an expression in terms of the parent's — for example W - 40 or H. An empty field means “take the parent's dimension of the same name”. |
| Edit object… | Open the child for editing right here. The action bar changes to ✓ Done (apply to parent) and Cancel, and a breadcrumb trail appears at the top. Nesting is unlimited — a child of a child works too. |
| × | Remove the child object. |
Picking mode on the drawing
The Pick Endpoints, Pick Line, Pick Angle and Pick 2 Holes/Points buttons put the preview into picking mode: a hint at the bottom says what to click next, and picked points stay marked on the drawing. Pressing the button again leaves the mode.
Building a new object from scratch
- + New Object — an empty form.
- Fill in Display Name and Type Code, choose the materials and the group.
- Load DXF… — load the drawing of the part at its minimum size.
- Add the Parameters and mark their end points on the drawing.
- Add Scaling Lines so the geometry follows those parameters.
- If needed, describe the angles, the hole runs, the BOM content and the child objects.
- Build & Preview — check the result at test sizes.
- Save to library. The type appears in the Type dropdown of the Part List.
Working with JSON
panel_type_spec (type metadata), object (dimensions, BOM, children) and draw (the geometry program). The format is documented in detail on the New object JSON tab of the API panel.The project library
Your private store of projects on the server. Nobody else can reach it — ownership is checked both in the database and when files are served.
Opening
Saving
The name is proposed automatically: first the name of the project already open (so saving overwrites it), otherwise the Job Name. An edited nesting layout is stored with the document, so next time the Nesting and CNC tabs open without running again.
Uploading a file
Upload JSON accepts a project file you exported earlier. Every upload gets its own working folder, so two projects with the same name never overwrite each other's files.
The API panel: disk, keys, documentation
The key button on the toolbar. It shows how much space your results occupy, it is where access keys are created, and it holds the full HTTP API documentation.
Disk usage
The bar shows how much of your account's quota is used. Below it, a breakdown by folder with tags:
| Tag | What it is |
|---|---|
| Project | Output of a project saved in your library. Kept as long as the project exists. |
| Unsaved | A run nobody saved as a project. Nothing in the interface can reach it any more. |
| API run | Output of a run made through the HTTP API. |
| CUSTOM DXF | Imported drawings your projects reuse on every run. Never removed automatically. |
- Refresh — recount;
- Free … — delete unsaved output — remove everything not attached to a saved project in one go;
- the bin in a row — delete a single folder.
507.Access keys
- Type a name for the key (for example
CI server) and press Generate key. - Copy the key immediately — it is shown once and can never be read back.
- Afterwards the list shows only the prefix, the date of last use and a bin to revoke it.
The built-in documentation
Ten tabs, each with working examples and a copy button:
| Tab | About |
|---|---|
| Getting started | Authentication, the request envelope, examples in Python, curl and PowerShell. |
| Full sample | A ready bundle to download: a real project, an object definition with a child object and several CUSTOM DXF parts. |
| Job settings | The fields of the job document. |
| Parts list | How the parts array is described. |
| Sheet settings | Sheets, margins, priorities. |
| Engraving & nesting | Nesting and engraving options. |
| Materials | Multi-material jobs. |
| Profile settings | Bar stock and the cut plan. |
| Report settings | Which reports to generate and how to pass your own layouts. |
| New object JSON | The complete object definition format: panel_type_spec, object, draw. |
.zip, or one JSON.A short endpoint reference
The key is sent as the header Authorization: Bearer <key> or X-API-Key: <key>.
| Method and path | Purpose |
|---|---|
| POST /api/job | A complete run in one call: objects + CUSTOM DXF (base64) + the document. Returns a .zip or a JSON manifest. |
| POST /api/job-zip | The same, but the input is a single .zip holding the JSON document, the objects and the DXFs. |
| GET /panel-types | The available panel types and their dimensions. |
| GET /definitions | Your object library. |
| POST /definitions/{name} | Add or replace an object. |
| DELETE /definitions/{name} | Remove an object. |
| POST /custom-dxf?name=… | Upload a CUSTOM DXF (the request body is the file). |
| GET/POST/PUT/DELETE /projects | The project library. |
| GET /files?path=… | Download one generated file. |
| GET /zip?path=… | Download a whole output folder as an archive. |
| GET /me/usage | Quota usage. |
| GET /me/storage | The per-folder breakdown with tags. |
| DELETE /me/storage?path=… | Delete one listed folder. |
| POST /me/storage/prune | Delete every unreferenced folder. |
| GET/POST/DELETE /api-keys | Key management. |
| POST /bom · /bom.xlsx | Compute the BOM, or return it as an Excel file. |
| POST /packing-slip.xlsx · /labels.xlsx · /profiles.xlsx | Reports without a run. |
| GET/PUT /cnc-config | The machine configuration. |
| GET/POST /cnc-ops | Read and rewrite the operations of a machine program. |
/api/job is not attached to a project, so its folder is removed after roughly a day. Fetch the files in the same session.The administrator panel
Available only to accounts marked as administrators — the Admin button in the title bar. The rights are checked on the server as well.
Creating a user
- username — the login;
- display name — the name shown in the interface;
- password — at least 14 characters;
- admin — whether to grant administrator rights;
- MB — the disk quota;
0means unlimited.
The user table
| Column | What it does |
|---|---|
| User | The login and display name; your own account is marked (you). |
| Admin | Toggles administrator rights. |
| Active | Disables the account. Every session of theirs is revoked immediately. |
| Storage (MB) | The quota; Save applies a new value. |
| Usage | How much is actually used. |
| Projects / Objects / Keys | Counters; clicking expands that user's documents. |
| Last login | When they last signed in. |
| Password | Set a new password. Changing it also revokes every session. |
| bin | Delete the account with all of its data. You cannot delete yourself. |
A user's documents
The expanded view shows the selected user's Projects, Objects and API keys. An administrator can delete an individual document or key, and issue a key on the user's behalf.
Demo mode
The Try the demo button on the sign-in screen creates a throwaway account and takes you straight into the program. Every visitor gets their own account, so parallel runs never interfere.
How to tell you are in the demo
- a Demo badge next to the logo;
- a note in the status bar: “the PDF report is the only download”;
- the sign-out button reads Exit demo.
What works and what does not
Fully working
- importing your own DXF files;
- Part List, Grid, the object editor;
- nesting, the layout editor, CNC editing;
- the BOM and viewing reports;
- the PDF sheet report — this one can be downloaded.
Disabled
- saving and uploading projects;
- Excel exports (BOM, Slip, Labels, CutPlan);
- layout DXFs,
.zip, access to generated files; - backing up the CNC configuration;
- creating API keys.
DXNest Fabrication mark. It is applied on the server while the report is generated — nothing in the browser can bypass it.Step-by-step recipes
Ten typical tasks from beginning to end. If you are not sure where to start, find the one closest to yours.
An order from parametric panels
- Open project — reuse a similar previous project, or New project for a clean sheet.
- Job Settings: Job Name, customer, date, PO, Nesting depth = 0.
- Sheet Settings: check the materials, their Kind and the sheet formats; use Priority to consume the right format first.
- Part List → Add part for each line item; type, dimensions, quantity, name.
- Add identical items with Duplicate rather than from scratch.
- Check a few parts with the eye button.
- BOM — compare Flat Pattern W/H against your sheet formats.
- Run ▶.
- Save project — otherwise the files disappear when you sign out.
- Project Tree → download the DXFs, the
.ncfiles and the reports.
An order from existing drawings (CUSTOM DXF)
- Make sure the files have a closed outer contour.
- Import custom DXF parts on the toolbar — several files can be selected at once.
- Set Qty and Material for each row (the dimensions are not editable — they come from the file).
- Check the geometry with the eye button.
- Then as usual: Sheet Settings → Run → Save project.
A façade through Grid with a building corner
- Switch on Grid on the toolbar.
- Set Rows and Cols, then type the column widths and row heights straight into the grid headers.
- Set Joint X and Joint Y — the default joint width.
- Select a row or a block of cells and place a type with Place type….
- Click the joint where the wall turns and set its Angle (the 90 / −90 buttons). Check the → …° caption — that is the angle the panels will get.
- Select the two cells either side of that joint (Ctrl/⌘+click) and pick a type in Corner panel….
- Where windows go, select the cells and press Disable.
- For individual joints, select the cells and fill in Top/Right/Bottom/Left.
- Switch to Part List — all the panels are already there. Set quantities, materials and names.
- Run ▶ and continue as usual.
Creating your own panel type
- Draw the part in CAD at its minimum size, with the contour and holes on their own layers; save as DXF.
- Toolbar → Object editor → + New Object.
- General Info: Display Name, a unique Type Code, Material Group, Default Depth, the Materials list, the CNC allowed checkbox.
- Load DXF… — load the drawing. Check in Reference Geometry that the contour and holes were read.
- Parameters: add
W,H,D(andW2and so on), enter Min; for each press Pick Endpoints and click two vertices on the drawing. - Scaling Lines: + Add Mark → choose Parameter and Axis, the type
rayorsegment, then Pick Line and click the edge. - Variable Angles — if the panel has a variable angle: Pick Angle, click A → B → C, then set Default, Min, Max, Step and Tag.
- Hole Rules — for runs of holes: Pick 2 Holes/Points, click the two end holes, then set Max step.
- BOM — Profiles and BOM — Details: describe what the panel consumes.
- Build & Preview — inspect the Scaled preview at test sizes.
- Save to library. The type appears at once in the Type list of the Part List.
Setting up a new machine
- Toolbar → CNC machines, tools & materials.
- + Machine — the new machine inherits the current one's tools; rename it.
- Tool library: + Tool for every cutter — number #, label, Ø mm, register H.
- Material library: make sure the materials you need exist and have the right Kind.
- In the Material block use + Add material… to attach a material to this machine.
- Fill in the per-layer parameters: Contour, Inner contour, Grooves, Weep lines, Engraving — tool, pass depths, feeds, RPM.
- In the Holes block set the default rule and, if needed, per-diameter rules.
- Check the G-code blocks: the start block, the tool-change blocks and the end block.
- Save. Subsequent runs follow these rules.
- To apply them to an already generated program — CNC tab → Recompute.
Hand-tuning a layout
- Open the Nesting tab and wait for the part geometry to load.
- Choose the material and the sheet in the list on the left.
- Move parts around; the magnet puts them at the right distance for you.
- Rotate with the ○ handle or the R key.
- Unwanted parts — Delete: they go back to the unplaced queue.
- An empty sheet — Delete sheet.
- From the unplaced queue: click a part, then click a free spot (or drag to lay an array).
- When the layout is right — Recompute CNC.
- Save project.
Your own packing-slip layout
- Right panel → Report Settings → Packing Slip → Edit template….
- Header section: type your company name and lay out the head. For order fields, select a cell and pick a value from the Field… list.
- Use Merge, Border, Fill…, B/I/U and the W/H fields to get the look you want.
- Part rows section: put the right column into each cell of the row via Part column….
- Footer section: totals and signatures.
- Export now — check the result in Excel.
- Save as my default to apply it to every new project, or Apply to project for this one only.
Automating through the API
- Toolbar → API access & keys → type a key name → Generate key.
- Copy the key at once — it is never shown again.
- The Full sample tab — download the ready bundle or the single-file request example.
- Send
POST /api/jobwith the headerAuthorization: Bearer <key>and the full document;"return": "zip"returns an archive of every file. - Collect the result in the same session: the API run's folder is removed after about a day.
Adding an employee (administrator)
- Title bar → Admin.
- In Create user fill in the login, the name, a password (14+ characters) and the quota in MB; tick admin if they need administrator rights.
- Create.
- Pass the login and password to the user — they can only have it changed by an administrator.
- To cut off access temporarily, clear Active: all of their sessions end immediately.
Freeing disk space
- Toolbar → API access & keys → the Disk usage block.
- Refresh to recount.
- Look at the tags: Unsaved and API run are candidates for deletion.
- Free … — delete unsaved output removes them all at once; the bin in a row does it selectively.
- If space is still short — delete projects you no longer need from the library (that takes their files too), or ask an administrator to raise the quota.
Units, keys and small print
Units of measurement
Storage is always in millimetres. The selector in the status bar only changes how values are displayed and parsed.
Decimal inches
Fractional inches
In fractional mode every usual notation is accepted: 23 5/8, 23-5/8, 5/8, 23.62. Rounding is to 1/16″. Switching units does not change stored values: only a field you actually edited is written back.
Keys and gestures
| Where | Action | Keys / gesture |
|---|---|---|
| Part List | select a row | click the row number |
| add / remove a row from the selection | Ctrl/⌘ + click the number | |
| reorder rows | drag a row onto another | |
| commit a field value | Enter or click elsewhere | |
| Grid | select a cell | click |
| rectangular selection | drag, or Shift + click the opposite corner | |
| add / remove a cell | Ctrl/⌘ + click | |
| clear the selection | click the empty background | |
| jump to that cell's part | double-click | |
| select a joint | click the narrow strip between cells | |
| Nesting | select a part | click it |
| move | drag (snapping to margins and neighbours) | |
| rotate | drag the ○ handle above the part | |
| rotate in 15° steps | Shift while rotating | |
| rotate by 90° | R | |
| delete a part | Delete or Backspace | |
| deselect / leave placing mode | Esc | |
| place one copy | click a free spot in placing mode | |
| place an array of copies | drag in placing mode | |
| CNC | reorder operations | drag a row by its ⋮⋮ handle |
| highlight an operation on the drawing | click the row (clicking again clears it) | |
| Any canvas | zoom around the cursor | mouse wheel |
| pan | drag empty space | |
| fit to the window | the Fit button | |
| Report layout editor | select a cell / range | click / drag |
| edit a cell's text | double-click | |
| confirm the text | Enter | |
| cancel editing | Esc | |
| Object editor | select a table row | click it (it becomes the active row for − Remove and the Pick buttons) |
| leave picking mode on the drawing | press the Pick… button again | |
| Modal windows | close | click × or the dark background outside |
| choose a file | Load DXF…, Import JSON…, Upload JSON open the system dialog |
What is stored where
| Data | Where it lives |
|---|---|
| The document (parts, materials, grid, settings) | In the browser tab, until you save the project |
| A project | In your private library on the server |
| The layout and CNC edits | Saved together with the project |
| Generated files | In the output folder; only temporarily for an unsaved project |
| The object library | On the server, separately from projects |
| The CNC configuration | On the server, personal to your account |
| Default report layouts | On the server (your default) or in the project (an override) |
Message reference
Every caption, banner and confirmation the application can show, with what it means and what to do. Find yours with the search box at the top.
Empty states — when there is nothing yet
| Message | Where | What it means |
|---|---|---|
No parts yet. Click Add part to begin. | Part List | The parts list is empty. Press Add part, or fill cells in Grid. |
Add parts to see the bill of materials. | BOM | There is nothing to compute the bill from. |
No BOM items for the current parts. | BOM | There are parts, but their types declare no profiles or extra items. |
Computing… | BOM | The engine is recomputing. It starts automatically a moment after a change. |
Run a job to populate the output tree with downloadable files. | Project Tree | No run has happened, so there are no files. |
No nesting layout yet. | Nesting | There is no layout. Run a job, or open a project with a saved layout. |
No sheets — every part is unplaced. | Nesting | Every sheet was deleted; the parts wait in the unplaced queue. |
All parts placed on sheets. | Nesting | The unplaced queue is empty — everything fitted. |
No saved projects yet. | Library | You have not saved anything yet. |
No API keys yet. | API panel | No keys have been created. |
Nothing stored yet. | API panel | The disk is empty — no run has happened. |
No child objects. | Object editor | This type carries no child parts. |
No parameters yet — click “+ Add Parameter”. | Object editor | No dimensions declared yet. |
No scaling lines yet — click “+ Add Mark”. | Object editor | Nothing ties the geometry to a parameter — the part will not change size. |
No DXF loaded. Click Load DXF… to import a reference drawing to mark up. | Object editor | There is no reference drawing; the Pick… buttons have nothing to work on. |
Load a DXF or select an object to preview. | Object editor | There is nothing to show on the right. |
This machine has no materials. Add one above. | CNC configuration | No material is attached to the machine — use + Add material…. |
No CNC config loaded. | CNC configuration | The server did not return a configuration. Reload the page. |
Before a run
| Message | What it means and what to do |
|---|---|
Add at least one part before running. | There are no parts. Add a row in the Part List. |
Add at least one stock sheet for the active material. | A material that carries parts has no sheet format. Sheet Settings → Add sheet. |
Cannot run — N parts have a dimension of 0: | Required dimensions are empty or zero. The message lists every offending part; those rows are marked with a ⚠. |
During and after a run
| Message | What it means |
|---|---|
Queued… | The job is in the queue — the server is computing something else. |
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… | The results will be removed when you sign out. Press Save project. |
Nesting was not completed: some details could not be placed on the available sheet(s). | A part plus the frame margin is larger than every configured sheet. The text gives its exact size and the formats that were checked. |
Nesting cannot continue because some details were not prepared successfully… DXF contains no usable nesting geometry. | The engine could not build a usable contour for a specific part. For CUSTOM, check the drawing; for parametric types, check the depth-and-angle combination. |
Loading part geometry 12/40… | Nesting is fetching part contours. Wait for the bar to disappear. |
Saving and recomputing
| Message | What it means |
|---|---|
Project saved to your private library. | The project was saved; nothing was recomputed because the layout was untouched. |
Project saved · nesting files rewritten & CNC recomputed. | The project was saved and the files on disk were rewritten to match the edited layout. |
CNC recomputed from the edited layout. | The Recompute CNC button did its work. |
Nothing to recompute. | There is no layout or no output folder — nothing to redo. |
CNC program saved. | The .nc was rewritten with the new operation order and tools. |
Saved. New jobs use these settings. | The CNC configuration was saved. Programs already generated are unchanged — they need a Recompute. |
File uploaded to your private library. | A project JSON file was accepted into the library. |
This file is not a valid DXNest Fabrication project. | The file lacks the required settings and materials fields. |
Confirmations
| Message | What “OK” does |
|---|---|
Delete this sheet? Its parts return to the unplaced list. | The sheet disappears and its parts go to the unplaced queue. The files on disk only change after Recompute or Save project. |
Delete project “…”? | The project and its output folder are deleted permanently. |
Delete API key “…”? Apps using it will stop working. | The key is revoked immediately. |
Could not import <file>: … | A DXF import failed — the other selected files are still imported. |
Mode hints
| Message | Where and what it means |
|---|---|
Click a part to select · drag to move · drag the ○ handle to rotate · scroll to zoom | Nesting, normal mode. |
Click a free spot to place · drag to lay an array of copies · scroll to zoom | Nesting, placing a part from the queue. |
Placing “EP-101” (click a free spot · Esc to cancel) | Nesting, the name of the part you are placing. |
Picking P1 — click a vertex | Object editor, picking a dimension's end point. |
Picking line — click a segment | Object editor, picking a scaling line. |
Picking point A — click a corner | Object editor, picking the angle points A → B → C. |
Picking hole 1 — click a hole | Object editor, picking the end holes of a run. |
Select a cell first, then pick a document field. | Layout editor: select a cell before choosing a field. |
Operations — drag to reorder | CNC: the operation rows can be dragged. |
Contour: 96 pts · Holes: 20 · Inner: 0 · Grooves: 0 | Object editor: what was read from the reference DXF. |
Connected · 8 panel types loaded / Offline — … | General Settings: the connection to the engine. |
Demo-mode limits
| Message | Where |
|---|---|
Disabled in the demo — the watermarked PDF report is the only download | The tooltip of every blocked button. |
Demo mode — the PDF report is the only download | The status bar. |
Demo mode — the project library is read-only… | The project library window. |
API keys are disabled in the demo… | The API panel. |
Demo mode — every file was produced on the server, but only the PDF report can be downloaded, watermarked on each page. | The run results window. |
End the demo — the demo account and everything it produced are deleted | The tooltip of the Exit demo button. |
When something goes wrong
| Symptom | Cause and cure |
|---|---|
| The Run button is greyed out | The document has no parts, or another run is in progress. Add a part in the Part List or fill some grid cells. |
| “part size … does not fit any configured sheet” | The flat pattern is larger than every configured sheet. Add a bigger format in Sheet Settings, reduce the Frame Margin, switch on Allow part rotation, or make the part smaller. Remember it is the flat pattern with its returns that is nested. |
| “DXF contains no usable nesting geometry” | The engine built no usable contour. For CUSTOM parts, check that the file has a closed outer contour on the expected layer. For parametric types, check the depth-and-angle combination (too little depth with a large angle degenerates the geometry). |
| “CNC generation skipped” | Some parts are of types with CNC allowed switched off. Not an error: layouts and reports were produced. Switch the checkbox on in the panel type if you need CNC. |
| The CNC tab is empty | None of the order's materials produced machine programs: either every type has CNC off, or the material was set to None (no CNC) in Sheet Settings. |
| The run takes forever | The main lever is Nesting depth. A value of 2 or more with many small parts takes many times longer. Set it to 0, confirm the content is right, and only then raise it. |
| Error 507 / “quota exceeded” | Your account is out of disk space. Open the API panel → Disk usage and free space with “delete unsaved output” or one folder at a time. An administrator can raise the limit. |
| The files vanished after signing back in | The run was never saved as a project. The server removes such folders at sign-out and on a schedule. Save the project immediately after a good run. |
| “engine offline” in the status bar | The server did not return the list of panel types. Reload the page; if that does not help, the problem is on the server side. |
| The Nesting canvas is empty, no parts visible | Part geometry loads progressively — wait for the “Loading part geometry” bar. If the output folder was deleted, reopen the project or run the job again. |
| CNC edits disappeared after saving | If you changed the layout after hand-editing the .nc, saving the project triggers a recompute that rewrites the programs. Settle the layout first, then edit the operations. |
| I cannot choose the material I need for a part | The material is constrained by the panel type. Widen the Materials list in the type's definition (object editor), or leave it empty to allow any. |
| A button is dimmed and its tooltip mentions the demo | You are in demo mode. The limits are enforced by the server; full access needs a normal account. |
| “Cannot run — N parts have a dimension of 0” | The listed parts have empty required dimensions. Fill in W/H (the depth usually fills itself). Angles are not checked, and neither are CUSTOM parts — their size comes from the file. |
| “Queued…” does not change for minutes | The server is busy — most likely with a previous job at a high Nesting depth. Wait, or ask an administrator. Keep it at 0 until the order content is final. |
| I cannot find the Grid tab | It only appears after pressing the Grid button on the toolbar (the button stays highlighted). |
| The “Corner panel…” control is disabled | You need exactly two neighbouring cells selected — horizontally or vertically. Cells one apart or diagonal do not qualify. |
| A grid cell turned yellow | The angle the wall turn produces falls outside the type's Min…Max range and had to be pulled to the limit. Change the wall angle, or widen the range in the type's definition. |
| The cell size is not what I entered | A column width is the module; the panel gets the module minus half a joint on each side. A 1200 column with 20 mm joints gives a 1180 panel. |
| A part on the layout canvas is red and stays red | It leaves the sheet or overlaps another part. This happens after typing an angle into the field or shrinking the sheet format. Move it — the highlight clears as soon as the position is valid. |
| A part will not go into an apparently free spot | The check uses the real contour and honours both the gap between parts and the frame margins. Reduce the gap in the sheet's Margins panel, or rotate the part. |
| My new type did not appear in the Type list | The object must be stored with Save to library (not just Build & Preview). Check that the Type Code is filled in and does not clash with an existing one. |
| JSON edits in the object editor do not show in the form | By design: JSON is not read back into the form. Those edits still reach Build & Preview and Save. Pick one editing method. |
| An Excel report is missing a column | Columns come from the layout: Report Settings → Edit template… → the Part rows section → select a cell → Part column…. Dimensions no part uses are not offered. |
| My report layout ended up on the wrong project | Apply to project stores it in the current project only; Save as my default stores it in your profile for new projects. The project template tag in Report Settings shows when a project has its own. |
| I changed the CNC settings but the program is unchanged | Saving the configuration affects subsequent runs. To update an existing program use the CNC tab → Recompute. |
| Reopening a project shows no files in the tree | The layout is stored in the project, but the folder on disk has already been cleaned up or overwritten by another project with the same job name. Run the job again. |
| I lost my password | There is no self-service recovery. An administrator sets a new one (Admin panel → Password). Changing a password ends every active session of that account. |
Glossary
Terms that appear in the interface and in this manual.
| Term | Meaning |
|---|---|
| Nesting | Arranging parts on stock sheets so as little material as possible is wasted. |
| Nesting depth | 0–6. How hard the engine searches for a tighter arrangement. 0 is a fast greedy pass; higher values pack better and take much longer. |
| Part / detail | One line item of the order: panel type + dimensions + quantity. |
| Panel type | The parametric description of a part: which dimensions it has, how the geometry stretches, which holes it gets, what goes into the BOM. It lives in your object library. |
| Type code | The short designation of a type (R, C, BCAB). Used by the API and in file names. |
| CUSTOM | A part taken from an existing DXF file: its geometry and size come from the drawing rather than being built parametrically. |
| Flat pattern | The part unfolded into a plane with its returns. It is the flat pattern that is cut from the sheet — noticeably larger than the assembled panel. |
| Material class | The identifier (steel_1mm, aluminum_3mm) used to group parts into separate nesting jobs. |
| Kind | Steel / Aluminum / ACM. Decides which CNC rules and which machine apply. |
| Material group | A name that ties together panel types sharing the same list of allowed materials — it lets you change the material of the whole family at once. |
| Sheet | A stock blank of a given format. Size, quantity and priority are set in Sheet Settings. |
| Priority | 1 → 2 → 3 → none. The order in which formats are consumed. |
| Parts margin | The minimum clearance between the contours of two neighbouring parts on a sheet. |
| Frame margin | The distance to the sheet edge. It can be a single value or one per side. |
| Module | In the grid, a column width or a row height, measured from joint centre-line to joint centre-line. |
| Joint | The gap between panels in an elevation. A panel takes half a joint on each side. |
| Wall angle | The turn of the façade at a particular joint. The panel is mitred to 90 + angle/2. |
| Corner panel | One panel that spans a joint and has two legs: W and W2. |
| Soffit | A horizontal fold — a corner panel made from two cells stacked one above the other. |
| BOM | Bill of materials: the profiles, sheets, hardware and consumables an order needs. |
| Profile | A linear part (an aluminium extrusion) with a length and cut angles at its ends. |
| Cut distance | How much is taken off a profile's length at each end. |
| Kerf | The material the saw removes at every profile cut; accounted for in the cut plan. |
| Cut plan | The arrangement of profile pieces across stock bars. |
| Packing slip | A document with the order header and the list of parts. |
| Labels | A sheet of stickers — one per part. |
| Template | The grid of cells a Packing Slip or Labels sheet is built from. It can be built-in, your personal default or a project's own. |
| Token | A placeholder in braces in a layout: {customer} from the order header, {QTY} from an individual part. |
| Layer | A DXF layer (contour, holes, grooves, engraving). CNC rules are set per layer. |
| Inner contour | A cut-out inside a part: rectangle, rounded rectangle, circle or slot. |
| Groove | A fold groove, usually cut with a V-shaped tool. |
| Weep line | A drainage slot. |
| Engraving | Marking the part code onto the part itself; switched on in Job Settings. |
| Toolpath | The tool's route. The CNC tab shows it together with the travel line between operations. |
| Peck | The peck-drilling step — how far the tool retracts to clear chips. |
| Feed Z / Feed XY | The plunge rate and the working feed rate in the plane. |
| RPM | Spindle speed (the S word in G-code). |
| Workspace | The folder on the server that a run writes into. It belongs to a specific project, not merely to the job name. |
| Orphan / “Unsaved” | The folder of a run nobody saved as a project. Removed automatically. |
| Quota | The disk-space limit of an account. A run that would exceed it fails with error 507. |
| API key | A secret granting programmatic access with your account's rights. Shown once, at creation. |
| Ray / segment | In the object editor: an infinite ray (moves the whole edge) or a finite segment between two points. |
| Pivot | Which arm of an angle rotates when its value changes. |
| Child object | A part made together with its parent panel; its dimensions are expressions of the parent's. |
Every screenshot in this manual was taken from the running application — this is the real interface, not a mock-up.