Murray State University School of Engineering CourseWiki

CNC Turning Spindle and Feed Modes

Calculate constant-surface-speed RPM, apply an RPM ceiling, and distinguish feed per revolution from feed per minute.

G96 changes RPM with diameter; G97 holds a requested RPM; Practice

G96 changes RPM with diameter; G97 holds a requested RPM

In the Fanuc-style lathe convention used here, G96 selects constant surface speed (CSS). S gives cutting speed: surface feet per minute with inch units, or metres per minute with metric units. G97 cancels CSS and makes S an RPM value. Confirm the actual control's units and code meanings.

Use the work diameter at the cutting point, not the insert size. From Feeds and Speeds:

  • Inch: RPM = SFM × 12 / (π × diameter in inches).
  • Metric: RPM = cutting speed in m/min × 1000 / (π × diameter in mm).

At 180 SFM on a 1.5 in diameter, RPM = 180 × 12 / (π × 1.5) = 458 RPM, rounded to a whole RPM. At 90 m/min on a 30 mm diameter, the result is 955 RPM. These are arithmetic examples, not recommended cutting data.

Practice CSS calculations

Set the maximum RPM before enabling constant surface speed; Interactive; Practice

Set the maximum RPM before enabling constant surface speed

Establish an appropriate spindle-speed ceiling for the actual setup before G96. On the Fanuc-style lathe convention here, G50 S1800 limits requested speed to 1800 RPM. The number is only an illustration; determine the permissible limit from the machine, workholding, tooling and setup documentation. Other controls use different commands or parameters.

G50 S1800 (ILLUSTRATIVE RPM CEILING)
G96 S90   (METRIC CSS: 90 METRES PER MINUTE)
G97 S600  (LEAVE CSS: REQUEST 600 RPM)

As diameter approaches zero during facing, CSS requests increasing RPM. Once the clamp is reached, RPM stays limited and surface speed falls. At the centre, a nonzero surface speed cannot be maintained at any finite RPM. Use CNC Programming and Prove-Out and the Safety collection for the required operating checks.

Calculate where a speed ceiling starts to matter

With 90 m/min and a ceiling of 1800 RPM, the crossover diameter is 90 × 1000 / (π × 1800) = 15.92 mm. At 10 mm, unrestricted CSS would request 2865 RPM, so the simplified steady-state result is 1800 RPM. Acceleration and other machine limits can reduce actual speed further. See Haas's spindle-speed commands workbook for its G50/G96/G97 implementation.

Worked example: 240 SFM, 2 in stock outside diameter (OD), and a 1000 RPM clamp. These are teaching values, not cutting recommendations. D* = 240 × 12 / (π × 1000) = 0.917 in.

Spindle RPM002Diameter (in)1000 clampD*
The dashed horizontal line is the RPM ceiling. The dot shows D = 0.5 in.
Surface speed (SFM)002Diameter (in)240 setpointD*
Below D*, RPM stays at 1000 and surface speed falls linearly toward zero.
One setpoint, three cutting diameters
D (in)RPMSFMClamped?
2458.37240No
0.51000130.9Yes
010000Yes

At 2 in: 240 × 12 / (π × 2) = 458.37 RPM. At 0.5 in, CSS would request 1833.46 RPM; the clamp gives 1000 RPM and π × 0.5 × 1000 / 12 = 130.90 SFM. At D = 0, the model commands the clamp RPM and surface speed is zero.

This ideal steady-state model uses π without rounding in the calculations. Displays round RPM and surface speed to two decimal places, diameters to three; trailing zeros are omitted. It assumes the commanded RPM is reached immediately and omits acceleration and other machine limits. Unit changes load a fresh teaching preset. For operating checks, see CNC Programming and Prove-Out and the Safety collection.

Explain the RPM clamp

Read the feed mode before interpreting F; Practice

Read the feed mode before interpreting F

In this common Fanuc-style lathe convention, G99 means feed per spindle revolution and G98 means feed per minute. With inch units, G99 F0.006 means 0.006 in/rev; G98 F0.006 means 0.006 in/min. With metric units, the corresponding lengths are millimetres. Codes vary: the milling return-level meanings of G98/G99 do not apply here.

Feed per minute = feed per revolution × RPM. At 800 RPM, 0.006 in/rev gives 4.8 in/min. If CSS increases RPM while G99 holds F constant, the feed per minute increases too. If G98 holds feed per minute constant, feed per revolution changes with RPM.

Set the intended feed mode explicitly. See CNC Program Structure for modal behavior and CNC Turning Program Walkthrough for a commented turning example.

Reference for the code convention used here

The G96–G99 entries in the Haas lathe manual describe S in CSS versus RPM and F per minute versus per revolution. Consult the manual for your own control before transferring these meanings.

Practice feed conversion

Appears in