View Full Version : Cutter accuracy

07-03-2017, 07:32 PM
Been trying out my new CNC router with a few simple jobs. Trying to cut slots in thin ply, I found that my cutter seemed to cut consistently under size. 3mm single-flute cutter gave 2.6mm slot, or equivalent result cutting opposite sides of plain block (I.e. block was oversize after cutting by same amount). Tried a couple of other single-flute cutters (4mm and 6mm) which also seem to cut about 0.4mm undersize. Difficult to directly measure diameter of these cutters, but putting the 6mm cutter along a straightedge, the tip does sit slightly below the line of the shank. Is this normal? Do I need to, in effect, calibrate the diameter of a cutter before using? Are 2-flute cutters more accurate?

07-03-2017, 08:49 PM
Which software are you using and in which mode do you see the error? I mean constant velocity or exact stop mode or both consistently? New cutter with 0.4mm error in 3mm is a lot, but I have received cutters with that much error from the factory, brand new. Of course, cheap eBay stuff but I complained and the seller sent me a batch of new ones and those were good. I don't know if 2-flute cutters are more accurate than single flute, but I guess they are easier to make and to measure, so I prefer using 2-flute or more, but I don't cut ply or any other wood.

07-03-2017, 09:44 PM
I was using Mach3 via my CSMIO IP/M. However, CV or exact stop was not relevant here because for my test pieces I was typing gcode directly into the MDI window and just taking straight cuts. For testing, I fixed a blank to the spoil board and took a straight cut down each side. I moved the cutter sideways by a standard amount (54mm in this case) between cuts. I was taking very light cuts so do not believe that cutter deflection was an issue. What I expected to measure between the cut faces was 54mm minus cutter diameter. I actually measure 54mm minus cutter diameter plus about 0.4mm.

I do not believe that it is machine calibration error as I did these tests immediately after doing a gantry squaring test. This involved drilling 4 holes at the corners of a 100mm square, putting the shanks of new drills in the holes, and measuring diagonals. However, as a cross-check I also measured the sides of the square (all four sides) and saw consistent and accurate measurements to generally better than 0.1mm.

I was using cutters from a couple of UK sources. The own-brand 3mm cutter from CNCRouterShop (http://www.cncroutershop.com/uk_en/router-bits.html/)is quite old now but my old router had so much play in every joint that I could never work to this kind of accuracy, so can't tell if it was like it from new. The 4mm and 6mm cutters are own-brand from Regal (http://www.regaltools.co.uk/)and are brand new.

08-03-2017, 07:51 AM
Hi Neale,

Just to check, if you plunge down and just drill a hole, then drop the shank end of a 3mm drill in does it fit? If not does a 2.5mm one fit? That would tell you the diameter of the cutter. If that is off then you will just tell the CAM software the true diameter of the tool (i.e. 2.6mm) and all will be well again.

12-03-2017, 11:13 PM
Thanks for the suggestion. Checked 3/4/6mm cutters and all make accurate size holes. Checked backlash with dial gauge - approx 0.05mm on X axis. Accuracy otherwise better than 0.01mm over 10mm (dial gauge range). Also used 6mm cutter to make two holes 150mm apart, push drills into holes and measure with vernier calipers - around 0.05mm errors. Tried moving gantry to include/exclude backlash just to make sure - no obvious issues. So happy with Mach3 "steps per" settings. Clamped block of MDF to bed and machined both sides and measured. Light cuts (1mm or so, DOC 4mm, 6mm cutter, so no cutter deflection expected). Comes out approx 0.3mm oversize.

So, not much backlash, spindle positioning good, cutters make true size holes. But machine does not make accurate cuts. Baffled.

Boyan Silyavski
12-03-2017, 11:23 PM
Normally cutters when new are spot on. Even Chinese. Check size though before inputting in CAM.

next step is 30mm circle in say 50mm square. 1mm depth, best i use Phenolic sheet as its very precise and holds incredible detail, same time not affected by temperature or humidity. As MDf is not right even 1 min after the cut/ i live near the sea.

If problems like in your case, then i go even simpler and do pure straight lines. dig 1mm deep and tell mach3 or controller to move 20mm. Then line will be 20+d of bit, easily measured with caliper. So its easy to figure whats happening and where.

13-03-2017, 07:29 AM
Normally cutters when new are spot on. Even Chinese. Check size though before inputting in CAM.

next step is 30mm circle in say 50mm square. 1mm depth, best i use Phenolic sheet as its very precise and holds incredible detail, same time not affected by temperature or humidity. As MDf is not right even 1 min after the cut/ i live near the sea.

If problems like in your case, then i go even simpler and do pure straight lines. dig 1mm deep and tell mach3 or controller to move 20mm. Then line will be 20+d of bit, easily measured with caliper. So its easy to figure whats happening and where.


Cutting oversize ? If I read and understand correctly.
I would have a go at the step per given movement in Mach3.
Having said that i would also suggest that you do it over 85-90 % of axis travel
The quick and dirty way is the 3 4 5 triangle ( some maths involved to be within the limits of the shortest axis travel) but as big as you can get.
we mark out on a 3mm mdf fixed to the table and pin in tool on the spindle. does not have to be in the spindle , I have used darning needles fixed to the z axis. as long as it is constant position. Align the MDF to the long axis, errors will be the the diagonal and y axis
the test here is to see how close the DRO is to the measured distance marks. any variance in the x and y units will show up in the diagonal.
Regarding tool dia. Mach will let you put anything into the tool library for a tool dia. To me this this is the width of cut, the end of the day when of the all run-outs have had the effect. ( now having said, that I assume that the z axis is true perpendicular to both x and y .. it will effect the cut profile). I use off-cuts of corian I get it from the off cuts bin at the kitchen counter top factory. The bits they cut out for the sinks.
When swinging the z axis the bigger the radius the better. At this stage one can see if the x axis (for the purpose of this chat .. the long axis) are running parallel and flat to the bed. just move it to the corners of the bed at a fixed z height. If its out try jacking up the corner of the frame and leave it for a day. the colder the slower it beds it self in. A machinist level is the tool here level the x axis rails then the Y axis.
Sorry for the ramble, Public holiday afternoon here with a kit shelving job in progress lubricated with a very nice single malt.


13-03-2017, 09:29 AM

Most solid carbide cutters I have used are undersized by a little bit. The deviation you describe, I agree is a bit large.

Assuming that your machine is set up correctly:

You need to learn to use the cutter compensation function to be able to tweak the final finishing pass. Remember to set the tool table up and also tell you CAM program to set compensation in the controller and not computer.

Kind regards

13-03-2017, 09:34 AM
Paul, Boyan - thanks for the comments.

To clarify:

Steps per in Mach3 is set to the correct calculated value for the ballscrew lead and microstep settings on my machine. Assuming that the ballscrew is to spec (and it is only C7), any significant error is due to a mechanical fault, which is what I am trying to find. However, over a short distance (up to 10mm, the range of my dial gauge) travel error is down around the 0.01mm region. Over 150mm, measured using two holes plunged with a 6mm single-flute cutter and measuring across two drill shanks pushed into these holes, travel error is around 0.03mm but this is measured with a vernier caliper so not as accurate as the dial gauge. All movements are designed to allow for backlash. If I repeat any of these checks with gantry movements arranged to maximise backlash, I see around 0.05mm error. I'm reasonably happy with these numbers for the moment.

I can plunge-cut holes with a number of different cutters and check hole diameter using drill shanks. All cutters seem to give correct sizes.

If I now take cuts on opposite sides of a (roughly 50mm) block to produce two parallel faces and measure them, there is a consistent error of about 0.3mm. Even though I have checked machine movement and cutter diameter.

All movements are single axis move and are done using manual gcode typed into MDI window, so CV etc corrections are not relevant. All movements are done at G1 rather than full rapid feed rate to avoid any possible missed steps.

Gantry squaring is not an issue here as I am just using movement in x axis (gantry move, the long axis, on my machine). However, I have set up squaring using the "4 holes in a square and measure diagonals" method and it's as close as I can get using vernier caliper to measure. It would have to be a long way off to generate the errors I see in the parallel-cut test.

If I put a dial gauge fixed to bed against the shank of a cutter held in the spindle and pull and push the gantry, I see a range of about 0.04mm - lost movement/backlash in overall system. There's a bit of flex as well if I lean on it hard enough, of course, but that's the figure for light loads. Dial gauge on shank and rotate spindle shows about 0.03mm TIR - collet error, probably.

So, I'm seeing reasonably accurate machine movements. I'm using cutters which appear to cut to size. When I combine these two, there is a significant error. I'm missing something really obvious here.

Overnight musing came up with the idea of positioning for my parallel cuts as above and trying to measure gantry movement to double-check this value under the same conditions as the parallel cut test. I'm trying to systematically narrow down the fault here, but running out of ideas.

13-03-2017, 12:48 PM
If I now take cuts on opposite sides of a (roughly 50mm) block to produce two parallel faces and measure them, there is a consistent error of about 0.3mm. Even though I have checked machine movement and cutter diameter.

Try that with machinable wax or another material not strong enough to flex your machine's structure, there is a strong possibility that your machine is flexing under the forces applied by the test cuts.

13-03-2017, 01:13 PM
I take your point, but I am taking light cuts off MDF (a 1mm pass, 4mm depth of cut, 6mm cutter). I'm not saying I'm right, but I can't see how I can take cuts much lighter than that! I'm only removing dust at this point.

13-03-2017, 01:42 PM
If your cut errors are consistent then you can use cutter compensation to correct for the mysterious error you are encountering.
If you want to locate the error and the cutters are not under size by the error you are seeing then something on your machine is flexing by close to the error amount, there is no magic by which a cutting edge can temporarily shift into another dimension to allow the edge to dodge the material ;-)

22-03-2017, 11:47 PM
To draw a line under this one (at least, until something else makes me get out the worry beads)...

After doing a lot of checking, measuring everything I could, including duplicating measurements I had already done, I have concluded:

my X ballscrews (2005, C7) appear to have a pitch error of about 0.1mm in 100mm. This is somewhat greater than the nominal C7 accuracy of 50um in 300mm, and I would put it down to measuring error except that...

my Y ballscrew (1605, C7) appears to have a similar error but in the opposite direction. I would like to measure travel over a longer distance but I'm limited by the measuring tools I have available (Mitutoyo 200mm vernier caliper, in this case).

Both these errors could be compensated by tweaking "steps per" in Mach3 although I'm a little reluctant to do this without being able to check errors over a larger range.

All ballscrews seem to have about 50um backlash. I have not been able to find a spec for this for a C7 ballscrew, but it's a bit more than I would have hoped. However, for a machine intended for mainly woodworking, this is perfectly adequate, and even for making things like profiled aluminium plates isn't an issue. However, I might consider carefully doing things like machining a bearing housing and that might still have to be done on the milling machine with a boring head or suchlike.

Rechecking cutter diameters, I think that my original problem was that my single-flute cutters are cutting a tad undersize and I shall need to go through and carefully check and record actual cutting sizes so that I can include these in my CAM tool library. I note comments about tool tables, but on the whole I prefer to work with a "calibrated" tool library in CAM and not bother with tool tables in Mach3. I might change my preference in time (I have used tool tables with LinuxCNC in the past - I'm happy with the principle) but the net effect is the same. I have control of the whole CAD/CAM/CNC cycle and I'm not in a production environment where a machine operator will update tool tables locally due to wear/tool change or whatever without needing to re-CAM the part.

Thanks for all the comments, guys, but I have been suffering from my usual position that I don't quite trust anything that I have built while placing too much confidence in bought-in components!

23-03-2017, 09:49 AM
I would like to measure travel over a longer distance but I'm limited by the measuring tools I have available (Mitutoyo 200mm vernier caliper, in this case).

Get a good brand and quality steel rule, use your digital caliper to make a little brass vernier and you can read to a 0.1mm or better over the length of the rule.
Measure at 20 degrees C though ;-)

- Nick

Boyan Silyavski
23-03-2017, 05:13 PM
I dont believe the ball screws have errors. More likely it will be that they are not parallel to rails a bit.

Hence when i designed my machines and in general my practice is to align as much as i can one rail in all directions using straight edge and so on. Then next in same axis. Using mounted-bolted plate what makes me sure all the way they are parallel to each other. Then i mount the ball screws or whatever and move axis to one end. Tighten ball screw by hand , move another end, tighten by hand, then repeat that a couple of times till all is tightened. And as the ball screw was guided by the rail, that means they always have same travel and are perfectly parallel. So no Mach3 compensation is needed. In short i dont see any other way to do it properly, except if all is machined to fit, even then doing it so will be better and easier.

Same is valid for belts, where i make perfectly sure all possible is parallel and square.

23-03-2017, 08:10 PM
For a 1mm linear travel error in an axis over 1000mm you'd have to have the ball screw misaligned by around 2.5 degrees, a misalignment with the axis of movement of around 44mm end to end.

With the misalignment with the axis of movement at 10mm the total travel error over 1000mm would be 0.050mm

- Nick

23-03-2017, 09:02 PM
Thanks, Nick - you got there first! I did some quick back of envelope trigonometry earlier and reckoned that any misalignment that gave that linear error would be so great that even with my eyesight I would see it. My ballscrews are about 1700mm which I reckon would put one end about 76mm out of line.

I'm also using Hiwin rails as well as ballscrews; you either use accurately machined mounting surfaces (just not possible without access to some pretty big kit) or you build in adjustment. I was surprised just how unforgiving of misalignment the Hiwin rails are. I have adjustments available at all key points and, not surprisingly, used the method described by Boyan (although I suspect that it has been described many times before). However, I have been using a vernier caliper (not digital, unfortunately) and although still in good nick and a reasonable brand, it's not really to be relied on at this level of resolution. I've no idea what the realistic accuracy of a vernier caliper is as I've only found mention of reading resolution which is not quite the same thing. Maybe the Easter bunny will bring me a decent digital caliper, by which time my garage temperature might even be approaching the nominal 20degC required :smile:

01-09-2017, 09:43 AM
Neale, I have exactly the same problem, did you manage to resolve it?

I don't have stiffness problems on the machine, to test I am only cutting 3mm deep slots 1mm at a time, i have tried 0.5mm at a time.
I have set the steps in mach3 and can run the machine up and down the x and y axis all day at 3m/min and still go accurately back to the start point.
Not losing steps have dial gauges set on the x and y axis at the home, so i would see and changes.
I have measured the bits and they are spot on.
I am using aspire to generate the gcode

I have also setup Uccnc to see if its a Mach3 problem, still the same

2005mm ballscrews (not out of align)

I have tried cutting a few lines 25mm, 50mm, 75mm long using profile cut and 100mm, 50mm and 25mm square using pocket cut, all out by 0.2mm to 0.4mm

I tried 4 slots (for a guitar fretboard) that should have been
35.64 measured 35.98
33.64 33.86
31.75 32.00

Any ideas?

01-09-2017, 12:01 PM
I have the same problem, the cut is always out between .2 and .4 mm

The steps have been set, there is no steps being dropped.
I set the steps with a 900mm rule, and checked the settings by moving the x axis about 10 times while holding it back with all my strength. still spot on.

I have checked the 6mm bit and I use aspire for the code.
I have made 25mm, 50mm and 100mm square pockets, 25mm 50mm 75mm slots, they are all out 0.2 to 0.4mm

I have tried Mach3 and Uccnc, both the same.

UC300-lpt5 motion controller and HG08 Breakout card
Stepper motors are direct drive, onto 2005 ballscrews (2 on x axis linked not slave), with dial gauges at the x and y homes (just to check)

Any ideas?

01-09-2017, 09:26 PM
My apologies - you've reminded me that I never really described my conclusion. After a lot of testing, I came to believe that apart from a very small amount of backlash there were no significant errors in my machine (and bearing in mind that this is a primarily woodworking CNC router and not a toolroom machining centre). In other words, it was working as well as my cheap C7 ballscrews, etc, allowed.

What I did conclude was that for whatever reason, my cutters did not cut to their nominal size. What I do now with a new cutter before using it for anything critical is to use it to cut a test piece - two parallel cuts along each edge of a small block a known distance apart as defined in gcode. I then measure the actual width of the material between the cuts and compare it with what I expected. That gives me the effective cutter diameter. For instance, my 4mm single-flute cutter cuts as if it were 3.80mm or somesuch. I just plug this number into the tool library in Fusion 360 and just carry on. Recently I have been cutting 3.5mm ply panels which use a tab and slot arrangement to make up shallow trays. Once calibrated, I get very repeatable and predictable dimensions so that tabs fit slots very nicely whether slots are horizontal or vertical, even when dimensions are changed to make other size boxes.

So, conclusion - my cutters do not cut to their nominal size, but once the effective cutting diameter is measured (by actual cuts, not by measuring the tool) that dimension is very repeatable.

Maybe I should just buy better quality cutters!

Hope this helps - I've stopped worrying about it now.

02-09-2017, 06:16 AM
I I may add these two links to the conversation:
Not withstanding that back lash and tramming is at its best ( minimum )

02-09-2017, 04:23 PM
There is also probably an additional error .. I would expect 95% or more likely to exist.

If You have std BK/BF mounts .. they are one source of your error.
Std import mounts have no preload, and do not have AC bearings in them.

This type of errors are hard to detect, because they can appear randomly, depending on lots of factors.
Put dti on free end of screw.
Use some kind lever to push/pull screw at either end by 10-50-100 kgf force as appropriate.

Does it move ?
Almost certainly yes.
Does it return to zero in all 4 scenarios both push and pull from either end ?
Almost certainly no.

Evaluate, report back, how big is the error in slop and lack of repeatability.
A pair of std size ac bearings, and a simple shim, will likely fix it.

You can probably use very thin "silk" type craft paper, cut with scissors, on inner ring of bearings.

A more pro solution is 2 thin metal spacers between bearings, and slightly sanding the outer one on a surface plate with 800 grit si/c sandaper and liquid.
Use a micrometer to measure, aim for 4-5 microns difference.
+/- 1-2 microns wont matter, and neither will slight edge rounding from the sanding (it is not lapping).
Adjusting the shims is a 5-10 minute job.
It is better to start with flat shims.
You just want an offset, the nut compresses them to each other.

If you dont have a lathe, buy shimstock, cut to size, use 2 different thicknesses or sand the outer one a bit thinner.