A file-readiness gate that catches DXF rejects before a shop does.
PrimoLabs
Laser and CNC shops reject DXF files for geometry the sender can't see — open contours, ambiguous units, duplicate lines. The rejection arrives after submission, as a lost day and a re-export. We built DXF Gate: drop a file and it runs the same checks a shop would, in memory and never stored, and tells you what to fix first. The same engine can also run as a file-readiness gate inside a shop's order intake.
The problem: files get rejected after they're submitted
- Cut shops reject DXF files for geometry the sender can't see — open contours are one of the most common catchable causes.
- Ambiguous or missing units, duplicate lines, tiny stray segments, self-intersections, and splines all trip a shop's intake.
- The rejection lands after submission: an email, a day lost, and a re-export — repeated on the next file.
- No polished standalone validator existed to catch it before the file was ever sent.
What we built
DXF Gate: a pre-submission validator. Drop a .dxf and it runs a shop's rejection checks in the browser session, then reports pass, warn, or fail — with the specific issues.
- A ten-check catalog: open contours, unit ambiguity, duplicate entities, tiny geometry, self-intersections, splines, stray annotations, version compatibility, empty extents, and over-segmentation.
- A plain pass / warn / fail report naming what a shop would flag and where.
- Files are checked in memory and never stored — nothing is uploaded or kept.
- A pure-Python engine (ezdxf) behind a self-contained web page, live on Vercel, with 13 of 13 tests passing.

The same engine can gate order intake
DXF Gate is not only a standalone checker. The same validation engine can run as a file-readiness gate inside a shop's order intake pipeline.
- Inbound customer files are checked before they reach the shop floor, so a bad file is caught at intake instead of at the machine.
- Thresholds can be calibrated to a shop's own DXF library — abutting parts and trace-art detail that trip generic defaults, tuned to what those machines actually reject.