2026-04-01
A 6.35 mm (1/4") endmill leaves a 3.175 mm radius at every internal corner of a pocket. The double-offset technique accounts for this at the CAD level, producing pocket geometry that is machinable as drawn and dimensionally exact on straight walls.
Mill a rectangular pocket. The sidewalls come out straight and at the programmed dimension. But look at the corners: every internal vertex has a fillet equal to the endmill radius. The cutter is round. It cannot push material out of a sharp corner.
This is not a surprise to anyone who has run a mill. The problem shows up when the pocket is holding a part. If the CAD model for the pocket has sharp internal corners, the model does not represent what the machine actually cuts. The part — which does have sharp external corners — contacts the corner radius and cannot seat fully. Depending on the geometry, it either jams at an angle or sits proud by a few tenths.
The obvious fix: offset the part profile outward by the desired clearance and use that as the pocket profile. For a 0.15 mm slip-fit clearance, offset every edge outward by 0.15 mm. The straight walls are now correct — 0.15 mm of air between the part and the pocket wall on each side.
The corners are not correct. The offset operation expands the profile uniformly, but the internal corners remain sharp (or nearly so — some CAD kernels insert a tiny arc, but it is far smaller than the endmill radius). When the pocket is actually milled, the endmill still rounds those corners to its own radius. The CAD model says sharp. The physical pocket says 3.175 mm radius. The part's sharp external corner hits the residual material and won't seat flush.
For a rectangular part in a rectangular pocket, the interference is small and some shops shim past it. For anything with multiple internal corners at varying angles — an L-bracket, a housing with mounting ears, a part with a step — the accumulated interference makes drop-in fit unreliable.
Two offset operations, applied sequentially to the 2D pocket profile:
Step 1. Offset outward by clearance + tool_radius.
Step 2. Offset inward by tool_radius.
With a 1/4" endmill (3.175 mm radius) and 0.15 mm clearance:
Step 1: offset outward by 0.15 + 3.175 = 3.325 mm
Step 2: offset inward by 3.175 mm
Net on straight edges: 3.325 - 3.175 = 0.15 mm (exact clearance)
Net on internal corners: radius = 3.175 mm (exact tool radius)
That is the entire technique. Two offsets. The result is a pocket profile where the straight walls have exactly the specified clearance and every internal corner is radiused to exactly the endmill radius.
The geometry of 2D offset operations explains the result.
When you offset a polygon outward, straight edges translate outward by the offset amount. That part is straightforward. At a concave vertex (an internal corner of a pocket), the offset operation inserts a circular arc with radius equal to the offset amount. This is how all CAD kernels handle concave offset — the vertex becomes a fillet.
After Step 1, every internal corner has an arc of radius
clearance + tool_radius. The straight edges have moved outward by the same
amount.
Step 2 offsets inward by tool_radius. On straight edges, this subtracts
tool_radius from the outward offset, leaving a net of clearance.
On the arcs at internal corners, the inward offset reduces the arc radius by
tool_radius, leaving
clearance + tool_radius - tool_radius = clearance.
The profile corner radius is small — just the clearance value (0.15 mm). The
endmill can’t cut that tight. It physically cuts a corner of radius
tool_radius (3.175 mm). But the endmill follows the profile exactly on
straight walls, and at corners it opens them up to its own radius. The machined corner is
larger than the profile specifies, but the part’s sharp corner clears it with room to
spare. Clearance on straight walls: exact. Clearance at corners: more than specified, but no
interference. No post-processing, no hand-fitting, no surprises at the machine.
External (convex) corners of the pocket are unaffected by this concern — the endmill has no trouble cutting outward-pointing geometry.
The double-offset relies on the CAD kernel producing valid geometry from both offset operations. This works reliably on profiles with straight edges and moderate curves. It fails on:
The fallback is a single offset by the clearance amount only. The pocket walls get the correct clearance, but internal corners remain sharp in the CAD model. The physical endmill still rounds them — the corner radius is determined by the cutter, not the model. The part will seat, but the CAD geometry no longer matches the physical result exactly. For inspection or downstream automation that reads the STEP output, this mismatch matters.
CNC controllers handle this at the toolpath level via G41/G42 cutter compensation. The controller offsets the programmed path by the tool radius at runtime. This is the standard approach for open-contour milling. For enclosed pockets in workholding, handling it at the CAD level via double-offset is more predictable — the STEP file is the single source of truth, and what you see in the model is what the machine cuts.
In workholding, the pocket holds the part. The clearance between part and pocket wall determines whether the part drops in by hand, needs a press, or moves under cutting forces. A few hundredths either way is the difference between a fixture that works and one that doesn't.
A clearance-only offset gets the walls right but ignores the corners. For a simple rectangular part, you might get away with it — the corner interference is small and the part can sometimes be persuaded in. For a part with six or eight internal corners at odd angles, the accumulated interference from un-radiused corners can prevent seating entirely.
The double-offset eliminates this. Every wall has the specified clearance. Every corner is radiused to the endmill. The part drops in. No shimming, no filing, no running a second cleanup pass with a smaller endmill to chase corners.
For automated fixture generation — where the pocket profile is derived from STEP geometry and there is no operator judgment in the loop — the double-offset is not optional. The generated pocket must be machinable as drawn, first time, on any machine with the specified endmill. That is what the technique guarantees.
Related articles: