Making Sizing Adjustments

Instead of expensive tool life management systems, try using a custom macro.


Facebook Share Icon LinkedIn Share Icon Twitter Share Icon Share by EMail icon Print Icon

The primary function of a tool life management system is to extend unattended machine tool operation. One way to achieve this is through the use of multiple, identical cutting tools, which are stored in the machine’s automatic tool changing system or turret. The tool life management system will determine when a cutting tool is dull based on a specified time or number of parts. Then, it will automatically start using a fresh one. The system will also issue notification as to when a tool must be replaced.
An often-overlooked feature of any tool life management system is the ability to automatically make sizing adjustments to compensate for tool wear. As some tools dull, the workpiece attributes they machine will change. This is especially true with single-point cutting tools, such as turning tools and boring bars used on turning centers. It is most critical for finishing tools because they directly control workpiece sizes. A tool life management system provides some way to make sizing adjustments based upon the user’s understanding of how tools will wear during their lives.
Without automatic tool changing systems, CNC turning centers do not typically have enough tool stations to justify tool life management systems. The turrets for most turning centers can hold 12 tools or less if turret stations must be left empty due to interference problems. For this reason, turning centers that have tool life management systems are pretty scarce.
While tool life management systems may not be practical for turning centers, the sizing-adjustment aspect is. Due to the nature of how single-point finishing tools wear, almost every turning center user has probably wished at one time or another that he or she could automatically make offset sizing adjustments, especially for longer production runs.
For example, a CNC lathe (fixed or sliding headstock) equipped with a multi-bar feeder could run for days if cutting tools didn’t dull. While users may not be able to automate dull tool replacement, they can automate sizing adjustments if they know what happens to a cutting tool during its life.
Most CNC users will not purchase an expensive tool life management system just for the sizing adjustment feature. Fortunately, they don’t have to. A simple custom macro can handle a sizing adjustment as long as the user knows when sizing is needed and how much adjustment is required.
Here is the skeleton of a main program that uses the custom macro:
O0001(Machining program)



N075 T0202 (Finish turning tool)



T0505 (Finish boring bar)



N335 G65 P1000 T2.0 C500.0 A-0.0001 F5000.0 S1.0 (Finish turning tool sizing)

N340 G65 P1000 T5.0 C60.0 A0.0002 F700.0 S2.0 (Finish boring bar sizing)

N345 M30 (End of program)
At the end of the program, the two G65 commands call the sizing custom macro. T is the tool station number, and C is the number of workpieces machined before an adjustment is required. A is the amount and polarity of adjustment. F is the total number of workpieces the cutting tool can machine before it dulls, and S sets the counter number (two permanent common variables will be used for counting—this example uses #501 and #502). 
Line N335 specifies that the finish turning tool is in station two and will last for 500 parts
before a 0.0001-inch sizing adjustment must be made. This will continue until the machine has machined 5,000 parts, at which time the cutting tool is dull and must be replaced. Something similar is happening for the finish boring bar in line N340.
Local variable representations in the custom macro:
T: #20, C: #3, A: #1, F: #9 S#19
Here is the custom macro. Note that it even stops the machine and resets the wear offset (to zero) when a tool is dull.
O1000 (Offset adjusting program)

#[500+#19] = #[500+#19] + 1 (Dull tool counter)

#[510+#19] = #[510+#19] + 1 (Adjustment counter)

IF[#[500+#19] LT #9] GOTO 5 (Is the tool dull? No: go to N5)

#[500+#19]=0 (Reset dull tool counter)

#[510+#19] = 0 (Reset adjustment counter)

#100 = #20 (Operator can check #100 to see which tool is dull)

G10 P[#20] X0 (Reset wear offset to zero)

#3000 = 100 (CHANGE INSERT)

N5IF[#[510+#19] LT #3]GOTO 10 (Is an adjustment needed? No: go to N10)

#[510+#19] = 0 (Reset adjustment counter)

G10 P#20 U#1 (Make sizing adjustment in wear offset)

N10 M99