Common CAD File Errors That Delay CNC Machining Quotes
File errors like wrong formats and unit mismatches can add days to your machining quote.

Quoting a CNC job involves a full manufacturing review, and every ambiguous file forces a shop to stop, guess, or ask. Most shops ask, and that question, sitting in your inbox, is the delay you're waiting on.
Here's the thing about that ask-and-wait cycle: it's mechanical. One unclear dimension generates one email, and that email costs at least a day, sometimes more if it lands on a Friday. Multiply that by every unresolved issue in a file package and you've got a quote that takes a week instead of an afternoon. File quality, drawing completeness, and what you bundle with the RFQ decide which one you get.
Below is the specific list of errors that trigger that pause, and what to fix before you hit submit.
Sending an STL when the shop needs solid geometry
STEP and STL encode completely different kinds of information, and picking the wrong one carries real cost.
STEP carries exact boundary representation geometry: real curves, real surfaces, features a CAM system can act on directly. STL is a mesh, a skin of flat triangles standing in for a shape, which is fine for a 3D printer building up layers. For a mill cutting exact features, it's a problem, because the mesh only approximates the true surface and throws away the data a CAM programmer needs.
Going from solid to mesh takes one export click. Going the other way, mesh back to clean solid geometry, is slow, manual work that introduces error at every step. Shops either turn the job down or charge extra to rebuild the model themselves.
Send STEP AP242 when you can. It holds exact geometry and can carry PMI, meaning tolerances, finish callouts, and datums, as data the CAM software actually reads, not just lines on a screen. AP203 is still everywhere, but it only exports GD&T as a picture; the tolerance is visible to a person, not to the software. IGES works in most CAM packages but tends to leave surface gaps that need manual patching; use it only if a shop specifically asks for it. Native files like.sldprt,.ipt, or.f3d are fine only if the shop has confirmed it runs your exact CAD package. When in doubt, export to STEP.
One habit costs you under a minute and saves days: open the STEP file you're about to send, measure one dimension you already know, and check that the number matches. That single check catches most of what follows in this article.
Unit mismatches that turn a 300mm enclosure into a fingernail-sized model
A unit mismatch doesn't throw an error. The file opens fine, the geometry looks fine, and it's wrong by a factor of 25, with nothing in the file name warning anyone.
Here's how it happens: an engineer models in inches, exports to STEP, and the shop opens it in a viewer set to millimeters by default. A 12-inch enclosure shows up on screen as 12 millimeters, roughly the size of a fingernail.
No shop can quote off that. Guessing wrong means machining scrap out of billet aluminum, so the only responsible move on their end is to stop and send an email asking which scale is correct. That's a full day gone, sometimes more, over a mistake a ten-second check would have caught before it ever left your machine.
The fix takes exactly that: reopen the exported STEP file on its own, separate from your working CAD session, and measure one known feature. Confirm it reads in the units and magnitude you expect. Check your drawing too, since a drawing dimensioned in inches paired with a metric STEP model is the same error wearing a different hat, and it tends to surface at final inspection instead of at quoting, which is worse.
Square internal corners — the geometry a round tool can never cut
CNC milling cuts with a round tool. An end mill is a cylinder spinning in a spindle, and a cylinder cannot leave a sharp 90-degree corner inside a pocket. It leaves a radius, every time, because that's what round tools do.
A drawing calling out a zero-radius internal corner asks for a shape that doesn't exist in a milled part, regardless of how tight the surrounding tolerances are. When a shop sees that callout, they have to stop, because they can't build it as drawn and they can't quietly pick a radius on your behalf and call it authorized. This is, by a wide margin, the most common drawing error shops report, showing up just as often in student capstone projects as in production drawings from established companies.
Fix it by putting a minimum internal corner radius on every pocket, slot, and internal profile. The exact number depends on depth and tool selection, but 0.030 inches (0.76mm) is a minimum radius that enables standard tooling. If a mating part genuinely needs a sharp interface, a keyed shaft is the classic case, the answer is a relief cut or an undercut, not a zero-radius note that the shop has to flag and you have to answer.
Deep pockets paired with small radii carry their own cost penalty beyond the callout itself. Smaller radius means a smaller tool, and a smaller tool reaching deep into a pocket needs a longer length relative to its diameter. That ratio kills rigidity, drops the feed rate the shop can safely run, and adds cost even when the corner was specified correctly from the start.
Non-standard hole sizes that require custom tooling for no functional reason
Drill bits come in standard sizes: fractional inches, the letter and number drill series, and a fixed set of metric diameters. Reamers follow the same logic, and a hole dimensioned right on one of those standard values gets drilled in seconds.
A hole dimensioned a few thousandths off a standard size needs boring or a dedicated CNC operation, which is slower, costs more, and is harder to check on the inspection table. This usually isn't intentional; it's an engineer nudging a dimension slightly for a fit condition without realizing that nudge pushed the value outside standard tooling range.
When that happens, the shop has two moves: quote the custom operation at a premium, or email you asking whether the odd dimension is actually load-bearing to the design. Either way, that's time. Size holes off a standard drill chart whenever function allows it, and if a non-standard diameter is genuinely required, say so on the drawing with a short note explaining why. Thread callouts land in this same bucket: a thread spec missing pitch, class, or depth reads as incomplete no matter how obvious it seems to you, and it triggers the same clarification email.
What a global tolerance block of ±0.05mm actually costs on a 300mm part
Picture a 6061 aluminum enclosure, about 300mm long, coming from a startup engineering team. The drawing carries a single global tolerance block: ±0.05mm, applied to every linear dimension on the part, functional or not.
The quote lands significantly elevated per piece, driven less by geometric complexity than by the tolerance itself: holding ±0.05mm across a 300mm envelope means climate-controlled machining and a CMM inspection point on nearly every feature. Standard shop tolerance, the kind most CNC shops hold without special setup, sits around ±0.25mm (±0.010 inches). Going tighter than that means slower feeds, extra setups, and formal inspection reports, and all three stack on top of each other in the final price.
The root cause is usually just software behavior. CAD packages drop in a default tolerance block, and it's easy to leave it in place without asking whether the part actually needs that precision anywhere.
Fix it by setting non-critical dimensions to a general standard like ISO 2768-m and reserving tight tolerances for features that genuinely need them: bearing bores, mating faces, precision locating pins. This tells the shop exactly which few dimensions matter, which speeds up both the quote and the final inspection. OneWeekParts, for instance, surfaces DFM feedback at quote time so tolerance issues like this get caught before an engineer ever talks to a machinist. According to Modus Advanced, DFM choices made this early in a design can swing manufacturing cost by 15% to 800% and lead time by 25% to 1,480%. An unnecessary global tolerance block is one of the fastest ways to land at the top end of that range.
Sending geometry without a drawing — and why the shop cannot fill in what you left out
A STEP file tells a shop what shape you want. It does not tell them what material to cut it from, what surface finish you need, which tolerances actually matter, what the threads are, where the datums sit, or what revision they're looking at.
Leave those things out and the shop is stuck picking between two bad options: assume, and risk building the wrong part, or ask, and stall your quote. If material or grade isn't called out anywhere, expect the shop to price against the worst-case material they can imagine, because that's how they protect their margin against your ambiguity. You end up paying for the question you didn't answer.
A drawing carries everything the 3D model physically cannot: datums, GD&T, finish specs, engineering notes, revision history, intent. The fastest and most accurate quote comes from a clean STEP file paired with a one-page drawing PDF that nails down datums, critical tolerances, finish, and material.
Model Based Definition changes this slightly. If your PMI lives inside the STEP AP242 file itself, a separate drawing may not be strictly necessary, but only once you've confirmed the shop's CAM system actually reads semantic PMI rather than just displaying it. Don't assume that; ask first. And the reverse problem is just as bad: a drawing with no STEP file forces the shop to rebuild a 3D model from 2D lines before CAM programming can even start, which is slow and invites its own interpretation mistakes.
Missing thread callouts, tapped holes without runout clearance, and other drawing annotation gaps
Thread specs need five things: nominal diameter, pitch or TPI, thread class, handedness if it's left-hand, and depth. "M6 threaded" alone is missing most of that, and it will bounce back as a clarification request every time.
Blind tapped holes need runout clearance at the bottom, room for the tap to finish its cut without slamming into solid material. Leave that out and the shop has to guess how deep you actually need the thread versus how deep the hole is drilled.
Surface finish matters just as much and gets skipped just as often. Any functional surface, a sealing face, a bearing seat, needs an Ra value; skip it and you've created ambiguity that comes straight back to your inbox. GD&T callouts need a clear datum reference frame behind them, because an inspector can't set up a measurement without knowing what it's measured from. And dimensions that conflict or repeat force someone at the shop to guess which one actually governs.
The thread connecting every one of these: each gap is one more question standing between your file and a quote you can trust.
How to audit your own file package before submitting an RFQ
This is the specific sequence tied to every error above, run in order before you hit send.
Start with format: is it STEP, AP242 if possible? If you're staring at an STL, stop and re-export from the actual solid model. Next, units: open that STEP file on its own, measure one known feature, and confirm the number matches reality. Then scan every pocket, slot, and internal profile for a specified corner radius; a zero-radius internal corner is a red flag every time. Check hole diameters against a standard drill or reamer chart, and add a note explaining any size that falls outside standard tooling.
Look hard at your tolerance block. Confirm it reflects what the part functionally needs, not whatever default your CAD software inserted, and make sure tight callouts are reserved for the handful of features that actually require them. Then check drawing completeness: material and grade, finish callouts on every functional surface, full thread specs, a real datum reference frame, and the current revision level.
Last, confirm your package is complete, with the STEP file and drawing PDF together, not one without the other.
Some quoting platforms now surface DFM feedback the moment you upload, flagging manufacturability issues before a person ever reviews the file. That kind of real-time check shortens this whole loop, letting you fix a problem in the same sitting instead of waiting a day to hear about it by email.

