CNC Machining: Programming the Appropriate Rates for Your Tool
A bit of math is involved in programming the appropriate rates for a particular tool.
Share




Machining center programmers specify spindle speed in revolutions per minute (rpm). Many also specify feed rate in per-minute fashion, either inches per minute (ipm) or millimeters per minute (mmpm). With cutting tools used on machining centers, tool diameter does not vary during the machining operation, so for most machining operations, this means one speed (in rpm) and one feed rate (in ipm or mmpm) is determined and used per cutting tool.
An exception may be a milling cutter that can both plunge and side mill. In such a case, one feed rate is commonly required for plunging and another for side milling. Even so, compared to varying diameters machined on turning centers, which require the use of constant surface speed, cutting-condition variation internal to a given cutting tool is relatively minimal in machining center applications.
Consider a 0.5-inch-diameter carbide drill. Based on the material to be machined, the cutting tool manufacturer may recommend a speed of 250 surface feet per minute (sfm) and a feed rate of 0.004 inch per revolution (ipr). Using these recommendations, the programmer will apply this formula:
rpm = 3.82 * sfm / cutting tool diameter
The speed result, 1,910 rpm (3.82 * 250 / 0.5), will be programmed as S1910.
After determining spindle speed, feed rate in ipm is calculated with this formula:
ipm = rpm * ipr
Using a speed of 1,910 rpm and a feed rate of 0.004 ipr, the feed rate will be 7.64 ipm. Again, only one speed word (S1910) and one feed rate word (F7.64) will be required in the program for this drill, regardless of how many holes must be drilled.
Everything stated here so far is pretty conventional for machining center programming. The only exception may be that feed rate is often programmed directly in per-revolution fashion, which eliminates the feed rate calculation.
Now consider the feature cutter radius compensation. It allows a range of cutter sizes (diameters) to be used. A programmer may plan on using a 1.0-inch-diameter cutter, but in reality—at the machine—a 0.75- or 1.25-inch-diameter cutter is actually used. If the programmer specifies spindle speed and feed rate based on the planned cutter size, actual cutting conditions used in the program will be incorrect if a different cutter is used. Machining will either be too slow or overly aggressive.
This problem can be easily overcome with a custom macro since it is possible to access the value stored in the cutter radius compensation offset register from within a CNC program. We can determine the actual cutter size (diameter) being used as the program is run and then calculate, right in the program, the exact rpm and ipm values.
There are two ways to use cutter radius compensation: 1) program the work-surface path, which requires the cutter size to be placed in the offset register, or 2) program the cutter’s center-line path, which requires the deviation from a planned cutter size to be place in the offset register. Additionally, the value placed in the cutter radius compensation offset register could be a radial or diameter value, so you must, of course, know what the offset register value represents if you want to use this technique.
For our example, we’ll say the programmer specifies the work-surface path and the value in the offset register is the cutter’s actual radius (a very common method).
For current-model FANUC CNCs, system variables starting with #2401 commonly provide access to geometry registers for cutter radius compensation (you must confirm this in the documentation that came with your machine). In this case, system variable #2403 provides access to offset number 3’s cutter radius compensation geometry register value, which in our example, will be the milling cutter’s radius.
Consider these commands that specify the speed and feed rate for a milling cutter running at 240 sfm and 0.005 ipr:
N340 T03 M06 (1.0 carbide end mill)
#1 = 3.82 * 240 / [#2403*2] (Store appropriate rpm in local variable #1)
N345 G54 G94 G90 S#1 M03 (Work offset, feed rate mode, absolute mode, start spindle)
N350 G00 X-0.75 Y-0.75 (First XY move)
N355 G43 H03 Z-0.6 M08 (Instate tool-length compensation, first Z move, coolant)
N360 G42 D03 Y0.125 (Instate cutter radius compensation)
N365 G01 X2.5 F[#1*0.005] (Begin milling, use appropriate feed rate)
With this program segment, the speed and feed rate will be based on the cutter size that is currently being used. If the setup person stores a value of 0.4375 in geometry offset register number 3 for cutter radius compensation (again, the cutter radius), speed and feed rate will be based on using a 0.875-inch-diameter cutter.
Note that feed rate is also a function of cutter diameter. The bigger the cutter, the more aggressive the feed rate should be. If you have a large range of potential cutter sizes, you can easily incorporate feed-rate-calculating logic statements into the program segment as well:
N360 G42 D03 Y0.125 (Instate cutter radius compensation)
IF[#2403 GT 1.0] THEN #2=0.006
IF[#2404 LE 1.0] THEN #2=0.005
N365 G01 X2.5 F[#1*#2] (Begin milling, use appropriate feed rate)
Related Content
4 Reasons to Use Safety Commands
Safety commands help safeguard CNC applications from common programming or operation errors.
Read More5 Reasons Why You Should Know How to Write Custom Macros
Custom macros enhance what can be done in G-code programs, giving users the ability to code operations that were previously not possible.
Read MoreHelp Operators Understand Sizing Adjustments
Even when CNCs are equipped with automatic post-process gaging systems, there are always a few important adjustments that must be done manually. Don’t take operators understanding these adjustments for granted.
Read More6 Variations That Kill Productivity
The act of qualifying CNC programs is largely related to eliminating variations, which can be a daunting task when you consider how many things can change from one time a job is run to the next.
Read MoreRead Next
Registration Now Open for the Precision Machining Technology Show (PMTS) 2025
The precision machining industry’s premier event returns to Cleveland, OH, April 1-3.
Read MoreShop Tour Video: You've Never Seen a Manufacturing Facility Like This
In the latest installment of our “View From My Shop” series, explore Marathon Precision’s multi-process approach to manufacturing, where blacksmiths and hand-forged dies meet state-of-the-art CNC machining. Discover how restoring classic muscle cars and building custom art projects creates a dynamic shop culture — and draws top talent to this unique and innovative metalworking facility.
Read MoreWhy We Ask Machine Shop Leaders to Speak at TASC – The Automated Shop Conference
TASC is our industry’s premier peer-to-peer automation stage where America’s shop leaders refine the art of metalworking and CNC machining. For conference speakers, it's also an opportunity to showcase your skills and gain exposure for your business. Here are five why stepping into the spotlight at TASC could be your smartest move toward elevating your shop.
Read More