How to Make a 3 Axis CNC Milling Machine
A build guide for engineers who want a working 3 axis cnc milling machine, not a kit review. We cover frame choice, linear motion, spindle, control wiring, and the first-cut checks that separate a machine holding ±0.05 mm from one that chatters. Read this and you can size each subsystem before you buy a single part.

In this article
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Key takeaways
What a home-built 3 axis cnc milling machine can and cannot do
A 3 axis cnc milling machine moves the tool along X, Y, and Z only. The spindle stays vertical, so the tool always approaches the part from the top. That single constraint decides what the machine is good for: plates, brackets, pockets, slots, heat sinks, fixture plates, and any part you can reach from above with a long enough tool.
It also decides what it cannot do. Undercuts, deep side holes, drafted walls, and five-sided parts need either a second setup, a custom fixture, or a fourth and fifth axis. If your part list is mostly prismatic work, a 3-axis build is the right project. If half your parts need angled faces, you are building the wrong machine.
The realistic accuracy target for a well-built hobby or small-shop 3-axis mill is ±0.05 mm on aluminum with light finishing passes. A careful build with ground ballscrews and a machined frame can reach ±0.02 mm. Do not plan around ±0.005 mm from a bolted extrusion frame. That number belongs to a different class of machine.
Set the target before you buy parts. If you need ±0.005 mm in production volumes, buying machined parts from a shop with 27 three-axis machines already running is cheaper than building and tuning your own. If you need a fixture that cuts one family of parts every day, building is worth it.
- 1Good fitPrismatic parts, plates, pockets, and any geometry reachable from the top.
- 2Poor fitUndercuts, angled faces, and parts needing four or more sides machined.
- 3Realistic accuracy±0.05 mm typical, ±0.02 mm with a rigid frame and ground screws.
Frame, rails, and screws: the parts that set your accuracy
The frame resists cutting force. Aluminum extrusion is cheap and easy to drill, but it flexes under load and its T-slot joints creep over time. A welded steel frame, stress-relieved and then machined flat on the rail faces, is the better base for metal cutting. Epoxy granite is a third option: heavy, well damped, and best cast in one pour.
Linear motion comes next. Round rails on unsupported shafts deflect under load. Supported round rail is a step up. Profile rail (also called square rail) is the standard for machine tools because it carries load in all four directions and holds preload. Match rail size to your travels: 15 mm rail suits a 300 mm axis, 20–25 mm rail suits 500–800 mm travel.
For drive, use ballscrews rather than belts or rack and pinion. A C7 rolled ballscrew gives about 0.05 mm per 300 mm of lead error, which is fine for a first machine. C5 ground screws cost more and give roughly 0.018 mm per 300 mm. Belt drive stretches and slips under interrupted cuts, so reserve it for light routing.
Bearing support matters as much as the screw. Fix the motor end with an angular contact pair and float the far end. If both ends are rigidly fixed without pre-stretch, the screw will whip at high rpm and bow when it warms up. For a 1,000 mm screw, keep the critical speed below 3,000 rpm or add a rotating nut.
- 1FrameWelded steel, stress-relieved, rail faces machined flat. Extrusion only for light work.
- 2RailsProfile rail, 15 mm for short axes, 20–25 mm above 500 mm travel.
- 3ScrewsC7 rolled for a first build, C5 ground when you need ±0.02 mm.
- 4SupportAngular contact pair at the motor end, floating support at the far end.
Spindle, motors, and wiring done in the right order
Spindle runout shows up directly in the part. Measure it with a dial test indicator on a ground pin in the collet: under 0.01 mm is good, over 0.02 mm will leave marks and break small end mills. A water-cooled 2.2 kW spindle at 24,000 rpm covers aluminum well. For steel, you want lower rpm and more torque, which usually means an ER20 or ER25 spindle on a belt drive.
Stepper motors are the usual choice for a first build. Size them by torque, not by frame size. A 3 N·m NEMA 23 motor direct-coupled to a 5 mm lead screw gives roughly 600 N of thrust before losses, which is enough for a 10 mm end mill in aluminum at moderate depth. Closed-loop steppers or small servos cost more and remove the risk of lost steps.
Wire the control cabinet before the machine. Route mains voltage and stepper motor cables in separate bundles, cross them at 90 degrees, and ground the shield at one end only. A spindle cable running parallel to an encoder cable for a meter will inject noise and cause random faults that look like software bugs.
Set motor current on the driver to about 70 percent of the motor rating and no higher. Full current makes the motor run hot, and heat travels into the screw and the frame. Thermal growth on a 500 mm aluminum screw is about 0.012 mm per °C, so a 5 °C rise eats a quarter of your tolerance budget.
- 1Spindle runoutUnder 0.01 mm measured on a ground pin. Replace or re-chuck above 0.02 mm.
- 2Motor sizing3 N·m NEMA 23 with a 5 mm lead screw is enough for a 10 mm cutter in aluminum.
- 3Cable routingSeparate mains and signal bundles. Shield grounded at one end only.
- 4Driver currentSet to roughly 70 percent of motor rating to limit heat growth.
Squaring, tramming, and backlash you can measure
Build order does not equal alignment order. Once the frame is together, align the Y rails to a straightedge first, then the X gantry square to Y, then the Z column perpendicular to the table. Check square with a machinist square and a dial indicator swept along the table edge. A 0.05 mm error over 300 mm is visible on a cut part as a step at the corner.
Tram the spindle with a dual-indicator holder or a single indicator on a 150 mm arm. Sweep the table in a 200 mm circle and bring the front-to-back and left-to-right readings within 0.02 mm. Nod error shows up as a dished floor in pockets. If you cut a 50 mm pocket and the floor reads high in the middle, tram is the first thing to check.
Measure backlash on each axis with a dial indicator against the table. Command a move in one direction, zero the indicator, then command a move back and read the gap. Under 0.02 mm is workable. Above 0.05 mm, check the coupler, the nut preload, and the thrust bearing before you touch the software.
Software backlash compensation hides the problem and does not fix it. It also fails on arcs because the compensation only applies on direction reversal. Spend the time on mechanical preload instead, then re-measure. A machine with 0.015 mm real backlash will cut a round circle; a machine with 0.06 mm compensated backlash will cut a polygon.
- 1SquareY rails to straightedge, gantry square to Y, column perpendicular to table.
- 2TramBring a 200 mm sweep within 0.02 mm front-to-back and side-to-side.
- 3BacklashMeasure with an indicator. Fix mechanics above 0.05 mm, do not compensate.
Speeds, feeds, and the first cuts that prove the build
Start with aluminum 6061 and a 6 mm three-flute carbide end mill. Run 18,000 rpm, 1,200 mm/min feed, 0.5 mm axial depth, and 3 mm radial width. That is a light but stable cut that shows alignment problems without breaking tools. If the machine chatters, reduce radial width before you reduce feed.
Cut a test part with features you can measure: a 100 mm square, a 50 mm circle, a 20 mm deep pocket, and a row of holes. Measure squareness across the diagonal, roundness on the circle, and floor flatness in the pocket. A roundness error of 0.03 mm points to backlash. A taper in the pocket wall points to tram or column tilt.
Keep notes for each cut: spindle speed, feed, depth, tool, and measured result. After five parts you will know the machine's real envelope. Most builders find their machine holds tolerance in aluminum but struggles in steel because the frame lacks damping and the spindle lacks torque at low rpm.
Once the machine repeats, use it for what it is good at: fixtures, jigs, prototypes, and short runs of prismatic parts. When a part needs five-sided access or ±0.005 mm, send it out. Knowing the boundary is part of owning the machine.
- 1Starting cut6 mm three-flute, 18,000 rpm, 1,200 mm/min, 0.5 mm axial, 3 mm radial.
- 2Roundness errorAround 0.03 mm usually means backlash, not a tuning problem.
- 3Pocket taperCheck tram and column perpendicularity before changing feeds.
Step by step: how to make a 3 axis cnc milling machine
Follow the order. Each step assumes the previous one is finished and measured.
- 11. Fix the work envelopeWrite down the largest part: length, width, height, and the longest tool you will use. Add 50 mm of clearance per axis for fixturing and tool changes. A 300 × 200 × 100 mm envelope suits most bench builds. Do not size the machine around a part you might make someday.
- 22. Build and stress-relieve the frameWeld a steel base with gussets at every corner, then stress-relieve it. Machine the rail mounting faces flat within 0.02 mm. Bolt the frame to a bench or floor anchors before alignment. An unanchored frame moves when the axes accelerate.
- 33. Mount profile rails and carriagesUse 15 mm profile rail for axes under 400 mm and 20–25 mm above that. Torque rail bolts to the manufacturer's spec in a cross pattern. Check straightness with a dial indicator riding the carriage: keep it within 0.01 mm over the full travel.
- 44. Install ballscrews and bearing blocksFix the motor end with an angular contact pair and float the far end. Preload the nut to remove axial play and confirm the screw turns by hand without tight spots. Keep the critical speed below 3,000 rpm on a 1,000 mm screw, or the screw will whip.
- 55. Fit motors and couplersUse a flexible coupling with a rated torque above your peak. Align motor shaft to screw within 0.02 mm runout. Set driver current to about 70 percent of motor rating. Test each axis at 3,000 mm/min and listen for resonance; change microstepping if it howls.
- 66. Mount and true the spindleBolt the spindle to a machined plate, not to extrusion. Check runout on a ground pin: under 0.01 mm. Tram the spindle to the table within 0.02 mm over a 200 mm sweep. Set the Z zero reference after tramming, not before.
- 77. Wire the cabinet and set limitsSeparate mains and signal cables. Ground shields at one end. Test every limit and e-stop by hand before powering the spindle. Set soft limits 2 mm inside the hard limits so a program error stalls the axis instead of crushing the rail end.
- 88. Cut air, then a test partRun the full program 20 mm above the stock at 100 percent feed and watch for lost steps or unusual noise. Then cut a 100 × 100 mm square and a 50 mm circle in aluminum at 0.5 mm depth of cut. Measure squareness, circle roundness, and pocket floor flatness.
Build choices by accuracy target
Pick the row that matches the tolerance your parts actually need.
| Target tolerance | Frame | Rails and screws | Realistic use |
|---|---|---|---|
| ±0.10 mm | Aluminum extrusion | Round rail, belt drive | Wood, plastic, light aluminum |
| ±0.05 mm | Welded steel, machined faces | 15 mm profile rail, C7 screw | Aluminum brackets and plates |
| ±0.02 mm | Stress-relieved steel or epoxy granite | 20 mm profile rail, C5 screw | Fixture plates, small molds |
| ±0.005 mm | Cast iron or granite, temperature controlled | Preloaded profile rail, C3 screw | Not a practical home build |
Questions builders ask before the first cut
How much does it cost to make a 3 axis cnc milling machine?
Cost depends almost entirely on the frame and the screws. Extrusion and round rail keep the build cheap but limit you to light materials. Welded steel, profile rail, and C7 ballscrews cost more and get you to ±0.05 mm.
We do not publish build prices because part choices vary by region and supplier. Price the frame, rails, screws, spindle, motors, drivers, and cabinet separately, then add 20 percent for the parts you will reorder after the first mistakes.
Can a 3 axis machine cut steel?
Yes, but slowly. Steel needs low rpm and high torque, so a 24,000 rpm water-cooled spindle is the wrong tool. Use a belt-driven spindle with an ER25 or larger collet, keep depth of cut under 0.3 mm, and expect the frame to be the limiting factor.
If steel is most of your work, a heavier cast frame or a used manual mill conversion will serve you better than a new extrusion build.
Do I need ballscrews, or will lead screws work?
Lead screws work for wood, plastic, and very light aluminum cuts. They wear, they have more friction, and they develop backlash faster. Ballscrews cost more but hold preload and run cooler at higher speed.
For a machine you plan to keep and measure parts on, use ballscrews from the start. Retrofitting screws means re-aligning the whole machine.
How do I know if my spindle is good enough?
Measure runout with a dial test indicator on a ground pin held in the collet. Under 0.01 mm is good for small end mills. Between 0.01 and 0.02 mm will work for roughing but will shorten tool life.
Also check runout at the top and bottom of the spindle nose, and listen for bearing noise at 24,000 rpm. A spindle that gets hot within ten minutes will move your Z zero as it grows.
What is the most common build mistake?
Aligning the machine before the frame is anchored, then re-measuring after the first heavy cut. Cutting force moves an unanchored frame, and every alignment number you recorded becomes wrong.
The second most common mistake is setting driver current to the maximum. The motors run hot, the screws grow, and the machine loses tolerance as the day goes on.
When should I buy machined parts instead of building the machine?
When your parts need ±0.005 mm, when they need five-sided access, or when you need them this month. A production shop with 27 three-axis machines and 16 five-axis centers covers those cases without a build project.
Build the machine when the value is in owning a fixture that runs daily, not when the value is in the parts themselves.
Need the parts before the machine is finished?
Send your drawings and we will quote 3-axis machined parts with a free DFM review, 100% inspection before shipment, and no minimum order quantity.
12-hour quoteFrom one prototype100% inspectionNDA on request