Send a cutting plan to the saw or machining centre
What this does
Sends a production order's cutting plans to the machine that cuts them, as a file the machine can read. WindoorERP either downloads the file for you to carry to the saw, or pushes it straight to the machine over the network — a watched folder, an HTTP endpoint, an OPC-UA server or a Modbus TCP PLC. Every delivery is recorded, and the exact file stays available for download afterwards.
Before you start
- The production order has cutting plans — run the bar optimizer first, or Send to Machine refuses with "… has no cutting plans yet. Run the bar optimizer first."
- The machine record exists under Production › Configuration › Machines, with its Export Format set on the Machine Export tab.
- For a network delivery, a Production Manager has filled in the driver settings and pressed Validate Driver — an operator can send, but only a manager can configure.
Steps
-
01
Open the production order and press Send to Machine in the Cut plans print bar, beside the PDF cut plans. To send one profile only, open that cutting plan and use the Send to Machine button in its header instead.
-
02
Pick the Machine. Its own Export Format is used automatically, and What will be sent shows how many plans and how many physical cuts are in the job.
-
03
Leave Format blank to accept the machine's format, or choose another one for this send only.
-
04
Choose Delivery. Download the file hands you the file now; Push to the machine sends it through the machine's driver. WindoorERP preselects whichever the machine can actually do.
-
05
Press Send. A download starts, or a message confirms how many files and cuts reached the machine.
-
06
Check the result on the cutting plan's Exports tab, or under Production › Cutting & Offcuts › Machine Exports for the whole factory.
Which format to choose
Cut lists carry the order, the profile code, the finish, the bar number and the bar length on every row, so an operator can load the machine from the file alone. Several plans combine into one cut list; drawings and programs stay one file per profile, and a multi-plan send arrives as a .zip.
| Format | What it contains |
|---|---|
| Saw — CSV | One row per physical cut, with sequence, order, profile code, colour, bar number, bar length, cut length, both cut angles and the source label. The default, and what most saw controllers import. |
| Saw — XML | The same cut list as XML, one <piece> element per cut, for post-processors that read XML instead. |
| Cut Layout — DXF | A drawing of the cuts: each piece is drawn as its real mitred outline, with the cut angles raking each end, grouped in rows per bar. Piece numbers and bar headings sit on a separate LABELS layer that a machine can ignore. Written as AutoCAD R12, which every nesting package reads. |
| Saw — G-code | A cut program in millimetres: a job header, then for each cut a G00 move that positions the length stop followed by the machine's cut cycle. The cut cycle itself is machine-specific and comes from Field Mapping. |
Setting up a machine
Open the machine and go to the Machine Export tab. The banner at the top of the tab always states in one sentence whether the machine can be sent to, and why not when it cannot. Configuration is visible to Production Managers only; operators see the format, the last delivery and the banner.
| Field | What it does |
|---|---|
| Export Format | The file this machine expects, used as the default every time a cutting plan is sent to it. |
| Export Driver | How the file reaches the machine: Manual Download, Network Folder / File Drop, HTTP API, OPC-UA or PLC (Modbus TCP). Manual Download means an operator carries the file over. |
| Export Target | The drop folder for File Drop, or the endpoint URL for the other network drivers. Manual Download ignores it. |
| Driver Config | Driver settings as JSON: headers for HTTP, nodes for OPC-UA, host, port and registers for a PLC. Do not keep long-lived secrets here. |
| Field Mapping | JSON overrides for the generated file. Blank means WindoorERP defaults. |
| Push State, Last Push | The outcome and time of the most recent delivery attempt. |
Three buttons sit in the header. Validate Driver checks the settings are complete and consistent. Test Reachability additionally checks the folder exists or the endpoint answers. Send Test File writes a small windoor_connection_test.probe file through the driver — the .probe extension is deliberate, so a watched drop folder does not mistake the test for a cutting job.
Reading the readiness badge
One badge answers "can I send to this machine?", and the sentence beside it says what to do next.
| Badge | Meaning |
|---|---|
| Manual Download | This machine is not on the network. Send the cutting plan and choose Download the file. |
| Not Checked | The driver has never been validated. A manager should press Validate Driver. |
| Needs Config | Something required is missing or the Driver Config is not valid JSON. The sentence names the missing piece. |
| Unreachable | The settings are complete, but the folder or endpoint did not answer the last reachability test. |
| Last Push Failed | The machine was reachable but the last delivery failed. The reason is on the machine's message log. |
| Ready | The machine can be pushed to, and the sentence gives the time of the last successful push. |
The machine list carries the same badge as a column, and its filters Ready to Send, Needs Config and Unreachable or Failed find the one misconfigured machine without opening every record.
Matching a machine's own file conventions
Field Mapping adapts the generated file to a controller that does not read WindoorERP's defaults. Every key is optional, and a value the machine cannot use falls back to the default rather than failing the export.
| Key | Effect |
|---|---|
delimiter | CSV separator. Default ,; many European controllers want ; or a tab. |
encoding | Codepage of the written file. Default utf-8; older controllers often need cp1252. |
line_ending | lf or crlf. Default lf. |
columns | Which columns to write and in which order, from seq, order_ref, product_code, color, bar_no, bar_length_mm, length_mm, angle_start, angle_end, label. |
headers | Renames column headings, for a post-processor that expects its own names. |
decimals | Decimal places on millimetre values. Default 2. |
piece_height_mm | Profile height used to draw the DXF outlines and to compute the mitre rake. Default 50. |
gcode_cut_macro | The lines sent after each positioning move to make the cut. Default ["M03", "G04 P1.5", "M05"]. |
Example
A saw that reads semicolon files in Windows encoding and only wants five columns: {"delimiter": ";", "encoding": "cp1252", "line_ending": "crlf", "columns": ["seq", "product_code", "length_mm", "angle_start", "angle_end"], "decimals": 1}
What was sent, and when
Every download and every push writes a row to Production › Cutting & Offcuts › Machine Exports: the machine, the order, the format, the file name, the number of cuts, the size, who sent it, and the result — Downloaded, Pushed or Failed. The row keeps the file itself, so the download arrow fetches the exact bytes that were sent without regenerating them. The same rows appear on each cutting plan's Exports tab.
Note
A failed push is also posted to the machine's message log, so an overnight failure is still readable the next morning after the on-screen notification has gone.
Troubleshooting
| Message | What to do |
|---|---|
| "Set Export Target before pushing to this driver." | The File Drop or HTTP machine has no folder or URL. A manager fills in Export Target. |
| "Driver Config must be valid JSON." | The Driver Config box has a typo — a missing quote or brace. Fix it and validate again. |
| "OPC-UA config needs a 'nodes' mapping." / "PLC config needs a 'registers' mapping." | The driver knows where the machine is but not what to write to it. Add the site's node or register map. |
| "Folder is not reachable: …" | The drop folder is missing or not mounted on the server. Check the share, not the machine. |
| "OPC-UA driver library ('opcua') is not installed on this worker." | The optional client library is absent on the server. Ask your administrator to install it; nothing was sent. |
| "… is a manual-download machine. Choose Download instead." | The machine has no network driver. Switch Delivery to Download the file. |
| "The selected cutting plans have no pieces to export." | The plans exist but hold no cuts. Re-run the bar optimizer on the order. |
Common mistakes
- Sending from the cutting plan when the whole job was meant to go — the order's Send to Machine covers every plan at once.
- Treating Ready as proof the machine is switched on; it means the profile is complete and the last test answered, not that the saw is running.
- Putting an API key in Driver Config and leaving it there — it is stored as plain text.
- Assuming Saw — G-code will cut without setting
gcode_cut_macrofor that machine; the default cut cycle is a starting point, not a universal one.
Was this article helpful?
Thanks — your feedback helps.
Running a window or door factory?
Ask for a demo