How to Run a Haas 3 Axis CNC Milling Machine
This guide walks through the practical sequence to run a Haas 3 axis CNC milling machine: power-up and homing, workholding, work offsets, tool length and diameter setting, dry run, and the first-cut checks that catch mistakes before they scrap a part. It is written for machinists and engineers who already know G-code basics but want a repeatable startup routine.

In this article
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Key takeaways
What to check before you run a Haas 3 axis CNC milling machine
Most crashes on a Haas 3 axis CNC milling machine happen before the spindle ever touches metal. They come from a stale offset, an unmeasured tool, or a part that shifted in the vise overnight. A five-minute check on the offsets page and the tool table prevents nearly all of them.
Start with the machine state. Air pressure should sit at 0.5–0.6 MPa (85 psi). Way lube level should be above the low mark. The coolant tank should be full enough that the pump does not run dry during a long roughing pass. On a cold morning, run the spindle warm-up program for 15–20 minutes at 1,000, 3,000, and 6,000 rpm before any real cut.
Then check the part. Is the stock flat enough to sit on parallels without rocking? A 0.1 mm burr on the bottom face will lift the part and throw your Z depth off by that much. Deburr the stock before it goes in the vise.
Finally, confirm the program matches the setup. Same part number, same revision, same work offset. If the program calls G54 and you touched off in G55, the machine will drive to the wrong place at full speed. Read the first 20 lines of the program and the tool list before you start.
Workholding choices for a 3 axis mill
A 3 axis machine has no rotary table, so every feature that faces sideways needs either a second setup or a flip. That makes workholding the biggest lever on accuracy. A Kurt-style vise on a ground plate handles most block work up to 300 mm long. For thin plates, use soft jaws machined to the part profile so the stock cannot bow.
For a second-op flip, cut a pocket in soft jaws that locates on the finished face. This keeps the two setups aligned to within 0.02 mm. If you rely on the vise jaw corner, expect 0.05–0.1 mm shift between operations.
Vacuum plates suit thin aluminium and plastic panels where clamps would distort the part. Keep the vacuum area at least 60% of the part footprint, and use a 0.05 mm skin pass rather than cutting through in one go.
When a part is too tall for the vise, bolt it to a fixture plate. Dowel-pin the plate to the table so the fixture can come off and go back without re-indicating. Record the fixture position in G55 and leave G54 for the vise.
Setting work offsets and tool data on a Haas control
Touch off X and Y with an edge finder at 1,000 rpm. Move until the finder kicks, then offset by half the tip diameter. On a 10 mm tip, that is 5 mm. Lock the axis, enter the value in the Work Offset page, and repeat for the other axis. A 0.01 mm error here shows up directly on the part.
For Z, use a 50 mm gauge block or a tool setter. Jog down until the block drags slightly, then enter Z –50.0 mm in the offset. Never trust an old Z value from a previous job, even if the vise looks the same.
Tool length offsets go in the Tool Offset page. Measure each holder offline if you have a presetter, or touch each tool to the gauge block on the machine. Diameter offsets matter for cutter comp: enter the actual measured diameter, not the nominal one. A 12 mm end mill that measures 11.96 mm will leave a 0.02 mm step on a wall if you use the nominal number.
After setting, verify. Command G0 G54 X0 Y0 in MDI with Z at +50 mm and watch the readout. Then move to Z0 in 10 mm steps. If the tool tip does not land where you expect, stop and re-check before running the program.
Speeds, feeds, and stepover for common materials
A Haas 3 axis mill with a 40-taper spindle works best in aluminium at 6,000–8,000 rpm with a 12 mm 3-flute carbide end mill. Run 1,800–2,500 mm/min feed, 0.5–1.0 mm radial stepover, and 5–8 mm axial depth. Use air blast plus a light mist to clear chips. Aluminium welds to the cutter when chips recut.
For 1018 or 4140 steel, drop to 800–1,200 rpm with a 10 mm 4-flute coated cutter. Feed 300–600 mm/min, 0.3–0.5 mm radial stepover, and 2–4 mm axial depth. Flood coolant. Listen to the cut. A high-pitched squeal means the feed is too light and the cutter is rubbing.
In 304 stainless, reduce surface speed again. Use 500–800 rpm, 200–400 mm/min, and keep the cutter engaged. Stainless work-hardens if you dwell, so never let the tool sit in the cut.
For finishing, a 6 mm 3-flute cutter at 8,000 rpm and 1,200 mm/min with a 0.2 mm stepover will hold Ra 0.8–1.6 μm on aluminium. Measure the first part and adjust the diameter offset by half the measured error.
Mistakes that scrap parts on a 3 axis mill
The most common error is a work offset left from the previous job. Always re-touch X, Y, and Z when the vise moves, even by a few millimetres. A 5 mm shift in X is a broken cutter and a scrapped part.
The second is an unmeasured tool. If you load a holder and use the stored length offset without checking, a 0.1 mm difference in pull stud seating will cut 0.1 mm too deep. Measure every tool on the machine or a presetter.
The third is a program that assumes a 4th axis. A 3 axis post will not output the same retracts. Check the post processor and the setup sheet match. If the program has A-axis moves, it is not a 3 axis program.
Finally, do not skip the dry run because the part looks simple. Simple parts are exactly where the offset errors hide. Fifty seconds of dry run saves an hour of rework.
Step by step: run a Haas 3 axis CNC milling machine
Follow this order. Skipping a step is how parts get scrapped.
- 1Power up and home the machineTurn the main breaker on, wait for the control to boot, release the E-stop, and press Power Up Restart. Confirm all axes zero return. If an axis faults, clear the alarm and re-home before continuing.
- 2Run the spindle warm-upOn a cold machine, run the warm-up cycle for 15–20 minutes through 1,000, 3,000, and 6,000 rpm. This brings the spindle and ballscrews to a stable temperature so your first part matches the tenth.
- 3Clean and mount the workholdingStone the vise jaws and the table. Wipe the part and the parallels. Clamp the stock so it sits flat. Check with a 0.02 mm feeler gauge that there is no gap under the part.
- 4Touch off X, Y, and ZUse an edge finder at 1,000 rpm for X and Y, offsetting by half the tip diameter. Set Z with a 50 mm gauge block. Enter values in G54. Verify with an MDI move to X0 Y0 at Z +50 mm.
- 5Load and measure every toolEnter length and diameter offsets for each holder. Measure the actual cutter diameter with a micrometer. Update the diameter offset if it differs from nominal by more than 0.01 mm.
- 6Dry run the programSet rapid override to 5–10%, add a +50 mm Z offset in the work offset, and run the program with the spindle off. Watch for wrong retracts, tool changes near clamps, and any move that looks close to the fixture.
- 7Air cut then first cutRun once in the air at full speed. Then remove the Z offset and take a 0.2–0.5 mm cleanup pass. Stop, measure, and adjust the diameter offset before cutting to final size.
- 8Inspect and recordMeasure critical features with calipers or a micrometer. Record the offsets and any program edits so the next run starts from a known state. Log the tool life for the next job.
3 axis setup parameters by material
Starting points for a 40-taper Haas mill with carbide tooling.
| Material | Spindle speed | Feed rate | Radial stepover |
|---|---|---|---|
| Aluminium 6061 | 6,000–8,000 rpm | 1,800–2,500 mm/min | 0.5–1.0 mm |
| Steel 1018 | 800–1,200 rpm | 300–600 mm/min | 0.3–0.5 mm |
| Steel 4140 | 600–1,000 rpm | 250–500 mm/min | 0.3–0.5 mm |
| Stainless 304 | 500–800 rpm | 200–400 mm/min | 0.2–0.4 mm |
| Brass C36000 | 5,000–7,000 rpm | 1,200–2,000 mm/min | 0.5–1.0 mm |
| Titanium Ti-6Al-4V | 300–500 rpm | 100–250 mm/min | 0.2–0.3 mm |
When to run it in-house and when to outsource
If the part fits in a vise, needs three or fewer setups, and you have the offsets dialed in, a Haas 3 axis mill is the right machine. For parts with side features, tight tolerances below ±0.005 mm, or runs above 500 pieces, send the file out to a shop with 4 axis and 5 axis capacity. GreatLight runs 27 three-axis machines alongside 16 simultaneous 5-axis centers, so you can compare both routes on the same quote.
Frequently asked questions
How long does it take to set up a Haas 3 axis mill?
A simple vise job with three tools takes 20–40 minutes from power-up to first cut. That includes homing, warm-up, workholding, offsets, and tool measurement.
A fixture job with six tools and a flip takes 60–90 minutes. The extra time is in the second-op alignment and verifying the fixture position.
Can I run a 5 axis program on a 3 axis machine?
No. A 5 axis program contains simultaneous A, B, or C axis moves that a 3 axis machine cannot execute. You need to re-post the CAM file for a 3 axis setup.
You can still machine most parts by breaking them into two or three 3 axis setups. The trade-off is more workholding and more chances for alignment error.
What tolerance can a Haas 3 axis mill hold?
A well-maintained Haas 3 axis mill holds ±0.01 mm on a rigid setup with sharp tooling and a controlled shop temperature. With careful offsets and a finishing pass, ±0.005 mm is achievable on small features.
Tolerance depends more on the setup than the machine. A loose vise or a dull cutter will cost you more accuracy than the machine itself.
Why does my first part come out undersize?
The most likely cause is a diameter offset that uses the nominal cutter size instead of the measured size. A 12 mm cutter that measures 11.96 mm cuts a wall 0.04 mm undersize if you use the nominal number.
Check the Z work offset too. A chip under the part or a worn parallel will make the part thinner than the program expects.
Do I need coolant for aluminium on a 3 axis mill?
Air blast with a light mist is usually enough for aluminium. Flood coolant works too, but it makes chip evacuation messier on an open 3 axis machine.
The key is chip clearance. If chips recut, aluminium welds to the cutter and the finish fails. Use a high feed rate and a strong air blast.
How often should I check the machine geometry?
Check squareness and backlash every six months, or after any crash. A 0.02 mm squareness error shows up as a taper on tall parts.
Daily checks are simpler: air pressure, way lube, coolant level, and a quick MDI move to a known position. That catches most drift before it reaches a part.
Send us your 3 axis part file
Upload a STEP file and get a quotation plus free DFM analysis within 12 hours. No minimum order quantity, from one prototype to 10,000+ parts.
12-hour quote100% inspectionNo MOQNDA on request