CNC Milling: Process, Tolerances, Materials & Design Rules
CNC milling uses a rotating multi-point cutter to shape prismatic metal and plastic parts. Learn axes, tolerances, materials, finishes, and design rules.
CNC milling uses a rotating multi-point cutter that moves along linear axes (X, Y, Z) to remove material from a clamped workpiece. It is the standard subtractive choice for prismatic parts, pockets, slots, flat or contoured faces, and almost any geometry defined by surfaces a round tool can reach. As the hub of CNC machining, milling covers more part types than any other metalcutting operation.
A milling cutter spins at high speed while the workpiece is fed past it on a programmable table. Because the tool is cylindrical and round at its tip, every internal corner it leaves carries a fillet, and the smallest practical fillet is set by the smallest tool that can reach the corner. That single fact drives most of the design rules on this page.
How CNC milling works
Tool types
End mills are the workhorse: they cut on their sides and tips to open pockets, finish walls, and machine slots. Face mills take wide, shallow cuts across large flat surfaces for a clean, predictable finish. Ball-nose end mills sculpt curved and contoured surfaces, which is why they dominate mold and die work and organic part shapes. Drills and reamers open and size holes on the centerline. Choosing the right tool for each feature is where cycle time, surface finish, and accuracy are won or lost.
Axes and setups
Most milling is 3-axis: the cutter moves in X, Y, and Z while the part stays fixed. A 4th axis adds rotation, usually to index a part between faces or to cut helical and cam features without re-fixturing. A 5th axis adds a second rotary axis so the part tilts and rotates to present almost any face to the tool, which lets complex geometry and undercuts finish in a single setup. Five-axis work cuts setup error and reaches geometry 3-axis cannot, but it costs more per hour and needs more programming skill, so capability should be confirmed rather than assumed (see 5-axis CNC machining).
Workholding
A part that moves under load cannot be held tightly, so workholding sets the achievable tolerance. Vises and soft jaws grip prismatic parts; fixture plates and sub-plates locate repeated parts; vacuum and magnetic tables hold flat sheets. The aim is rigid clamping across every cut without distorting the part, leaving a datum inspection can return to. Every additional setup is a chance for cumulative error, which is why reducing setups is one of the largest tolerance and cost gains available.
Materials and machinability
Milling behavior changes sharply with material, and the reference table above lists the practical tolerances and notes for the common alloys. A few patterns are worth understanding in prose.
Aluminum and carbon steel
Aluminum 6061-T6 is the default CNC alloy. It machines freely at high surface speed, holds ±0.025mm (±0.001in), and balances strength and cost. Its main quirk is edge buildup: aluminum can weld itself to a sharp cutting edge, so polished or uncoated tooling and generous flood coolant are used to prevent it. Carbon steel 1018 machines well at about 70 percent of free-machining brass, and 1045 closer to 60 percent; both take ±0.025mm without trouble. These two alloy families set the baseline cost for most milled work, and any part that runs well in 6061 or 1018 will quote at the lower end of the milling range.
Stainless, titanium, and brass
Stainless 304 and 316 are the slow, careful cut. They work-harden under any rubbing, so a dull tool or a feed too light to keep cutting creates a hard skin that accelerates wear. The remedy is sharp tooling, positive rake geometry, and enough feed per tooth to keep the tool below the work-hardened layer. Stainless runs at roughly 45 percent of free-machining-brass speed, which shows up directly in cycle time and cost. Titanium Ti-6Al-4V is slower still: its low thermal conductivity concentrates heat in the cutting edge, and it galls and work-hardens, so it needs carbide tooling, low surface speed, high feed per tooth, and rigid setups. Brass C360 is the machinability benchmark and runs fast with excellent chip control, which is why it dominates screw-machine and prototype cosmetic parts.
| Material | Tolerance | Note |
|---|---|---|
| Aluminum 6061-T6 | ±0.001in (0.025mm) | Good machinability; can build up on cutting edges, use flood coolant |
| Carbon steel 1018/1045 | ±0.001in (0.025mm) | Good machinability |
| Stainless 304/316 | ±0.002in (0.05mm) | Work-hardens with dull tooling; sharp tools, low speeds |
| Titanium Ti-6Al-4V | ±0.002in (0.05mm) | Low thermal conductivity; high tool wear |
| Brass C360 | ±0.001in (0.025mm) | Best machinability of common copper alloys |
Tolerances
General defaults
For machined metals, ISO 2768-1 fine class is the working default: ±0.05mm for sizes from 0.5 to 3mm (±0.002in for 0.02 to 0.12in), ±0.10mm for 6 to 30mm (±0.004in for 0.24 to 1.18in), and ±0.15mm for 30 to 120mm (±0.006in for 1.18 to 4.72in). Medium class, roughly double those values, is the general default for non-critical features. Flatness, parallelism, and perpendicularity typically follow ISO 2768-2 grade K at about 0.05mm (0.002in) for standard parts. These defaults exist so a designer can leave the bulk of a part at a sensible, quotable precision and reserve tighter work for the features that drive function.
Precision milling and GD&T
Precision milling targets ±0.05mm (±0.002in), high-precision milling reaches ±0.025mm (±0.001in), and the tightest setup on a rigid, temperature-controlled machine can hold ±0.013mm (±0.0005in). Critical fits and datums are specified with GD&T per ASME Y14.5 or ISO 1101 so inspection is repeatable across suppliers. Cost scales steeply with precision: holding ±0.13mm (±0.005in) is routine, while tightening every feature to ±0.025mm (±0.001in) roughly doubles cost through slower feeds, extra setups, finer tooling, and added inspection. The disciplined approach is to reserve tight tolerances for the features that truly need them and leave the rest at the general default.
Design rules for CNC milled parts
Most milling cost and quality problems trace back to a handful of design choices, and applying these early is far cheaper than reworking a part.
Corners, walls, and depth
Internal corners need a fillet because the radius cannot be smaller than the cutter that will reach it. A practical inside radius is 0.2 to 0.5mm (0.008 to 0.020in) for standard endmills; a larger radius lets the shop use a stiffer, larger tool and run faster. Walls must stay thick enough to stay rigid: non-critical walls from 0.5 to 1.0mm (0.020 to 0.040in) are possible but deflect under cutting force and may chatter, so structural walls should be 1.5mm (0.060in) or more. Hole and pocket depth also have limits, since drilled holes lose accuracy past a 4:1 depth-to-diameter ratio and gun drilling reaches 10:1 and beyond. Deep pockets need chip-evacuation cycles and a larger floor radius so a stiffer tool can reach down without chattering.
Slots, holes, and workholding
Open slots to the edge where possible, because a slot closed at both ends needs a small tool to plunge and clear while a slot open at one end can be finished with a larger, stiffer tool. Standardize hole sizes and threads, since common drills and taps are cheaper to run and stock than specials. Plan for workholding by leaving a clamping surface or tab the shop can grip, and avoid features that force a custom fixture for a single operation. These three rules together determine how long a part takes to set up, which is where much of the cost of a milled component is won or lost.
Common milling operations
Milling splits into a family of operations, each chosen for the feature being cut. Reading which operation fits which feature is the clearest way to understand a process plan and estimate cost.
Face milling squares a large flat surface with a wide cutter taking shallow passes, and it is the standard way to finish the top of a housing or a mating flange. End milling is the general case, using a cylindrical cutter to machine walls, steps, and pockets; a square end mill leaves a flat floor and a filleted corner, while a ball end mill traces curves for mold surfaces and organic shapes. Slotting cuts a channel close to the width of the tool, plunging or ramping in and feeding along; pocketing removes an enclosed volume in overlapping passes, leaving a floor and walls. Profiling follows an outer or inner contour to cut a part to shape from plate or stock.
Hole-making joins milling on the same machine. Drilling opens a hole, reaming holds a tighter tolerance and a better finish, and boring enlarges and trues a hole to size. Tapping cuts internal threads with a spindle-synced tool, while thread milling cuts threads with a helical path and can machine larger threads on a lighter machine. Each operation has a preferred tool, speed, and depth of cut, and a capable programmer sequences them so that roughing removes the bulk of the material quickly and finishing leaves the final surface and tolerance. The order matters: roughing first avoids cutting finish dimensions into a part that will still move, and leaving a small finishing stock prevents the tool from rubbing on work-hardened material.
Tooling and cutting parameters
Most CNC metal milling uses solid-carbide end mills or indexable-carbide inserts; high-speed steel survives only on softer, lower-speed work. Coatings matter: titanium aluminum nitride (TiAlN) is standard for steel and stainless because it resists heat, while aluminum is cut with uncoated or polished tooling to avoid edge buildup. Aluminum chromium nitride (AlCrN) is another common choice for hard alloys.
Each material has a recommended surface speed (how fast the cutting edge moves, in meters per minute) and a feed per tooth (how much each cutting edge removes per revolution). The product of those, the number of teeth, and the spindle speed sets the actual feed rate. Operators tune these from published tables and then refine them by watching chip form and listening for chatter, the self-excited vibration that leaves a wavy surface and can shatter a tool. A thin, consistent chip in a stable color usually means a healthy cut; a thick, blue, or torn chip signals a parameter to change. Ramping the depth of cut, using trochoidal toolpaths for slots, and keeping tool overhang short all extend tool life and hold tolerance.
Programming and CAM
A milled part moves from a CAD model through CAM software to the G-code the machine runs. The CAM programmer selects tools, assigns speeds and feeds, defines the stock, and generates toolpaths for each operation, then simulates the result to catch collisions, rapid moves into stock, and wasteful air cutting. Modern CAM optimizes toolpaths for material removal: trochoidal milling keeps tool engagement constant and lets a small cutter remove material quickly without overheating; adaptive clearing roughs deep pockets with a stable, low-load path; and 3D toolpaths for contoured surfaces step over at a calculated distance to hit a target cusp height and finish.
Good programming is where cycle time, tool life, and accuracy are decided. The difference between a default toolpath and an optimized one can halve the run time on a complex part, and a programmer who sequences setups well keeps tolerance stack-up under control across operations. The programmer also picks datums, plans workholding around the operations, and decides where to leave stock for a finishing pass, all of which translate directly into the part’s accuracy and cost.
Surface finish
As-machined and finishing-pass finishes
A standard as-machined milled surface is about Ra 3.2µm (125µin). A finishing pass with a sharper tool and a smaller depth of cut brings it to Ra 1.6µm (63µin). Grinding reaches Ra 0.8µm (32µin) and below, and lapping can produce mirror surfaces under Ra 0.2µm (8µin). Smoother finishes cost more because they need slower feeds, finer tooling, and added operations, so they are specified only where function or appearance requires them. A sealing face or a bearing journal may need Ra 0.8µm, while a non-contact bracket is fine at Ra 3.2µm.
Specifying finish by function
The right way to call out finish is by what the surface does, not by chasing the smallest number on a drawing. A non-contact bracket saves money at Ra 3.2µm, while a sealing face, a bearing journal, or a mating bore justifies the added operation to reach Ra 0.8µm or better. Specifying finish where it matters and leaving the rest at the as-machined default keeps cost down without giving up function, and it avoids the common error of stamping a fine-finish callout across every surface.
Worked examples
Example: an aluminum 6061-T6 enclosure cover is milled on a 3-axis VMC, with a pocket 4mm (0.160in) deep, walls 1.5mm (0.060in) thick, and an inside corner radius of 0.5mm (0.020in) sized to a standard endmill. Diametral features on the cover are held at the ±0.025mm (±0.001in) precision target while the rest of the part stays at the ISO 2768-1 fine-class default, which keeps the cost predictable and the mating face flat to 0.05mm (0.002in).
For example, a stainless 304 mounting bracket with a sealing face at Ra 0.8µm (32µin) runs at roughly 45 percent of free-machining-brass speed to avoid work-hardening, with sharp positive-rake tooling and enough feed per tooth to stay below the hardened layer. The sealing face gets a separate finishing pass, while the structural walls stay at the Ra 3.2µm (125µin) as-machined default, and the general tolerance is held at ±0.10mm (±0.004in) for the 6 to 30mm (0.24 to 1.18in) size range the part falls into.
When not to use milling
Milling is not the right answer for every part. Large, flat, or thin sheet parts are better cut by laser, waterjet, or plasma, which remove material across a wide area far faster than a milling cutter sweeping it. High-volume simple parts are cheaper to mold, cast, or stamp once tooling amortizes. True sharp internal corners are impossible with a round cutter, so parts that demand them (splines, sharp-cornered pockets, hardened tooling) are better finished by EDM. Cylindrical parts defined by diameters and threads are usually more economical on a lathe; see CNC turning. Choosing the right process up front is the simplest way to control cost.
File format guidance
- Provide a STEP file (.step or .stp) with units stated explicitly; add a 2D drawing for critical dimensions and tolerances. The 3D model gives geometry; the drawing gives intent.
- STL is for 3D printing, not milling, because it carries no tolerance data and approximates curves as facets.
- Always specify units in the file or filename. Files submitted without explicit units are read against a supplier default and can come out at the wrong scale, a 25.4x error.
- Call out threads, surface-finish notes, and critical datums on the drawing rather than relying on the model alone.