How to Die Internal and External Threads on a CNC Mill
This page covers the practical sequence for cutting internal and external threads by thread milling: sizing the pilot hole and the shank, choosing a single-point or multi-tooth cutter, setting the helical path, and checking the result with a thread gauge. It is written for machinists and process engineers who need a part to pass inspection on the first run, not a general introduction to threads.

In this article
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Key takeaways
What die internal and external threads actually means in a CNC shop
In a modern shop, to die internal and external threads usually means thread milling on a machining center, not running a die nut or a tap by hand. The tool follows a helical path around the bore or the shank, and the thread form comes from the insert geometry, not from the tool being forced into the material. That distinction matters because it changes what you control: hole size, helix pitch, cutter runout, and radial depth of cut.
The hand method still has a place. A die nut on an external shank or a tap in a shallow internal bore is fast for one or two parts, field repairs, or a thread that must be chased after plating. On anything above a handful of pieces, thread milling wins on repeatability and on the ability to correct a size that drifts out of tolerance.
The numbers in this article follow ISO metric 60° threads. Inch UN threads use the same logic with threads per inch in place of pitch. For a 1/4-20 bore, minor diameter is roughly nominal minus 1.08 divided by 20, which lands near 5.4 mm.
Two examples run through the whole page: an internal M30 × 1.5 and an external M27 × 3. They cover the common range and they show how pitch changes the numbers you punch in.
- 1Internal threadBore must clear the minor diameter before the cutter enters.
- 2External threadShank should be undersize so the cutter has stock to remove.
- 3BothHelix pitch must match the thread pitch, or the gauge will not enter.
Internal thread: bore size and helix geometry
Start with the minor diameter. For M30 × 1.5, the standard formula gives nominal minus 1.08 times pitch: 30 − 1.62 = 28.38 mm. That is the hole you drill or bore before the thread mill goes in. If the hole comes out at 28.2 mm, the crest of the thread will be thin. If it comes out at 28.6 mm, the gauge may still enter but the thread will be loose and the minor diameter will fail inspection.
Allow 0.05 to 0.10 mm of radial stock on the wall for the finishing pass. That is enough to clean up the helix from a roughing pass without loading the cutter. On a 12 mm two-tooth high-speed steel mill running at 700 rpm and 120 mm/min, a single finishing pass at full depth is realistic in aluminum, while 4140 or 17-4PH needs two passes with a lighter radial step.
Set the helix pitch to 1.5 mm per revolution for M30 × 1.5. In G-code that is one full circle while Z drops 1.5 mm. A common error is to write the circle with a Z move that does not divide evenly, which produces a thread that is tight at the top and loose at the bottom.
Cutter diameter sets the minimum bore. A 12 mm mill cannot cut an internal thread smaller than roughly 12 mm plus clearance, because the tool body has to orbit inside the hole without rubbing the crests. Below that, switch to a single-point threading insert or a smaller shank.
- 1Minor diameterNominal − 1.08 × pitch, e.g. 30 − 1.62 = 28.38 mm.
- 2Finishing stock0.05–0.10 mm radial on the wall.
- 3HelixOne revolution per pitch of Z travel.
External thread: shank diameter and pass strategy
For an external M27 × 3, turn the shank to about 27 − 0.3 = 26.7 mm before thread milling. That leaves the cutter roughly 0.15 mm of radial stock per side at the pitch line, which is enough to produce a clean flank without taking a heavy first bite. Machining the shank straight to 26.75 mm and then trying to finish with the thread mill usually leads to chatter and a torn crest.
Pitch of 3 mm means a coarser thread and a deeper form. The cutter sees more radial engagement per pass, so split the depth: rough at 60 to 70 percent of the thread height, then finish at full depth. On a 16 mm mill-turn center, one roughing pass and one finishing pass at 350 to 500 rpm in 1045 steel is a reasonable starting point.
Runout matters more on external threads than on internal ones, because the cutter is supported on one side only. Check the tool with a dial indicator before the run; more than 0.02 mm of runout will show up as a size that varies around the circumference.
If the thread must be concentric to a bearing journal, cut the journal and the thread in the same setup. Moving the part between operations adds stack-up that no gauge will fix.
- 1Shank stockNominal − 0.1 × pitch, about 26.7 mm for M27 × 3.
- 2Rough and finishSplit depth 60–70 percent, then full.
- 3RunoutKeep under 0.02 mm on the tool.
What goes wrong and how to read the symptom
A gauge that starts but will not pass usually means the pitch diameter is oversize. On an internal thread, the fix is another spring pass at the same depth, or a slightly larger cutter offset. On an external thread, take another 0.02 mm off the shank and re-run the finish pass. Do not change the helix pitch, because the pitch is almost never the cause when the gauge enters smoothly.
A thread that feels tight at one point and free at another is a concentricity problem. Check the setup, the boring bar, and the tool runout in that order. On a mill-turn center, confirm the C-axis is locked during the pass. A drifting C-axis produces exactly this symptom.
Torn crests and chatter marks on the flank point to speed and feed rather than geometry. Reduce the radial depth and increase the feed per tooth. In 316L and Inconel, also check the coolant: thread milling those materials without high-pressure coolant through the tool body will smear the flanks within a few parts.
A cutter that breaks mid-thread usually means the helix was programmed with the wrong sign or the start point was inside the material. Verify the lead-in arc before every new program, and dry-run the path with the tool offset raised 5 mm.
- 1Gauge enters, will not passPitch diameter oversize. Spring pass or adjust offset.
- 2Tight then looseConcentricity or C-axis drift.
- 3Chatter on flanksToo much radial depth, too little feed.
- 4Broken cutterCheck helix direction and lead-in before dry run.
Step by step: die internal and external threads on a mill
- 11. Confirm the thread callout and classRead the drawing for pitch and class: M30 × 1.5 6H internal, M27 × 3 6g external, for example. Class changes the allowance, so write it on the setup sheet before touching the machine.
- 22. Drill or bore the pilot holeInternal: bore to 28.38 mm for M30 × 1.5, keeping roundness within 0.02 mm. External: turn the shank to 26.7 mm for M27 × 3. Measure with a micrometer at two points 90° apart.
- 33. Set up and indicate the cutterClamp the thread mill in a hydraulic or shrink holder. Indicate runout under 0.02 mm. Enter the tool diameter and corner radius into the control so the cutter compensation matches the real geometry.
- 44. Program the helixInternal: lead in at the center, ramp to the wall, then one circle per 1.5 mm of Z. External: approach from the side, orbit one circle per 3 mm of Z, and exit clear of the shank. Keep the lead-in arc at least one quarter of the cutter diameter.
- 55. Rough and finishAluminum: one pass at full depth, 700 rpm, 120 mm/min. Steel: rough at 60 to 70 percent depth, then finish at full depth, 350 to 500 rpm depending on hardness.
- 66. Gauge in the machineRun a go/no-go gauge or thread the mating part on before unclamping. If it fails, correct the offset and run a spring pass with the same program. Unclamping first loses the setup reference.
- 77. Deburr and re-checkBreak the entry chamfer to 1.5 × 45° or so, remove the exit burr by hand, and gauge again. Plating and anodizing add thickness, so leave the allowance the finish callout requires.
Thread milling versus hand die and tap
Pick by quantity, material, and how much correction you may need.
| Factor | Thread mill on CNC | Hand die or tap |
|---|---|---|
| Lot size | One piece to 10,000+ | Best under about 20 pieces |
| Size correction | Offset and re-run the pass | Replace the tool |
| Thread depth | Limited by cutter reach | Blind holes need a spiral tap |
| Hard materials | 17-4PH, Inconel, Ti-6Al-4V | Difficult above 35 HRC |
| Concentricity | Held in the same setup | Depends on the pilot hole |
| Surface finish | Ra 0.8–1.6 μm typical | Ra 1.6–3.2 μm typical |
| Tool cost per part | Higher on short runs | Low, but slower |
| Best use | Production and tight class | Repair, chase, field work |
Get the bore and shank right, and the rest follows
Thread milling is a geometry problem before it is a cutting problem. Size the pilot hole to nominal minus 1.08 times the pitch, leave the shank at about nominal minus 0.1 times the pitch, set the helix to one revolution per pitch, and gauge before you unclamp. Send us a drawing and we will return a quote with DFM notes within 12 hours.
Common questions
How do I calculate the pilot hole for an internal thread?
Subtract 1.08 times the pitch from the nominal diameter. For M30 × 1.5 that is 30 − 1.62 = 28.38 mm. For inch threads, divide 1.08 by the threads per inch in place of the pitch.
Hold the bore round within about 0.02 mm. An out-of-round hole makes the thread gauge tight on one axis and loose on the other, and no cutter offset can fix that.
Can I die internal and external threads on the same part in one setup?
Yes, and it is usually the better choice. Cutting the bore and the shank in the same operation keeps the thread concentric to the datum you actually care about, such as a bearing journal or a mounting face.
If the part must move to a lathe for the external thread, add a dial-indicator check after the second setup. Stack-up from a second clamp is the most common reason a thread passes a gauge but fails a concentricity check.
What helix pitch do I use for a multi-start thread?
Program one helix per start, each offset by 360 degrees divided by the number of starts. A two-start M30 × 3 has a 3 mm lead per start and 6 mm of axial advance per revolution of the part.
Measure the lead, not the pitch, when you gauge a multi-start thread. A standard single-start gauge will not enter, which is expected.
Why does my thread gauge enter but not pass?
The pitch diameter is slightly oversize. On an internal thread, run a spring pass at the same depth or increase the cutter offset by 0.01 to 0.02 mm. On an external thread, reduce the shank by 0.02 mm and re-run the finish pass.
Check the gauge itself before adjusting the machine. A worn go gauge reads oversize on a good part and will send you chasing a problem that is not there.
How tight should the thread be before plating?
Leave the allowance the finish callout specifies. Electroless nickel and hardcoat anodizing both add thickness on the flanks, and a thread that gauges at the low limit before plating will not accept the mating part afterward.
Mark the parts that need post-plate chasing on the traveler so the finishing vendor knows to protect the thread or run a tap through it.
Send the thread callout, get a thread-milled part
Upload your drawing and we will check the bore, the shank, and the thread class before quoting. Tolerances to ±0.005 mm, finishes from Ra 0.2–0.8 μm, and 100% inspection before shipment.
12-hour quote±0.005 mm100% inspectionNo minimum order quantity