Shop Doc – Compensate for Brush Wear

Today’s Machining World Archives March 2011 Volume 07 Issue 02

Dear Shop Doc,

We need to make multiple passes back and forth to clean a part, but we need to compensate for brush wear. Cutter compensation has so many stops and starts and weird movement limitations regarding rotation direction and feed direction. There has to a better way.

Done Compensating

Dear Done,
I too have experienced irritation when dealing with cutter compensation. There may be another way, but it depends on your machine.

Some machines have what are called “common variables.” They are variables you can use for part counting, tool life tracking, or other uses. How the machine uses these variables is defined by the program.

I used variables in a similar situation on a RoboDrill machine with a Fanuc control.

My repetitious move was to be along the X axis, so I needed to define the location of the surface on the Y axis. This was programmed in a G57. If I called up the G57 and Y zero, the machine would bring the wheel to a location where the edge of a new wheel would lightly touch the part surface if moved across the part. When the brush wears, it no longer performs adequately.

To compensate for the change in wheel diameter we need to modify the Y position. I chose to use variable 514 for the wear compensation. In the following program excerpt, the program calls up the work shift, subtracts wear value 514 from the Y zero position, stores the result in 524, then moves the part to the new Y location stored in 524. Using the variable in this manner allows the machine to move in both the X+ and X- directions without stopping the spindle. This method can be used for any side of the part with minor changes to the program and math.

G1X100.0 F250.0

There are some risks involved with this method. For example, if a mistake is made when entering the value into the variable cell, a machine crash could result. An easy solution to this problem is to have the program check the value of the variable against a predetermined min/max value before making any tool move.
In the program example below, the value in cell 514 is checked to make sure it is between zero and 7.01. If the variable check is false, the program jumps to block 778, which stops the program and prints the following message to the screen: #514 OUT OF RANGE

Locate near top of program:

Locate after the M30:
N778#3006=1(#514 OUT OF RANGE)

The method as detailed above requires the machine operator to maintain the proper amount of variable value required for acceptable performance results. An automatic method is also possible, but only if the tool wear is predictable and consistent. In the example below, the value in cell 514 is incremented by 8 microns each time the program runs. The increment value can be whatever the expected wear-value per part is. This method also allows the machine operator to override this value by changing the 514 value manually.


The common variables and math functions can be used for many things. Read your machine manual or contact your machine service company for more information on your machine.

A longer more detailed version of this “Shop Doc” can be found at

Mark Bos
Robert Bosch Fuel Systems

Mark Bos is a manufacturing process engineer with Robert Bosch Fuel Systems in Grand Rapids, Mich.

Share this post