G95 CNC Code | Feed per Revolution | Milling

G95 CNC Code: Understanding Feed Per Revolution in Machining Centers

Introduction:

In CNC machining precise control over the feed rate (the speed at which the cutting tool moves relative to the workpiece) is essential for achieving accuracy, optimal surface finish, and extended tool life. While the G94 Feed Per Minute command is the most common feed mode in machining centers, the G95 Feed Per Revolution command offers significant advantages in specific operations, particularly those involving hole-making (drilling, tapping, reaming, boring). This article will cover G95 in detail, including syntax, differences between G94 and G93, implementation on various CNC control units (Fanuc, Siemens, Haas, Mazatrol, Mitsubishi, Heidenhain, and others), best practices and programming examples. The focus will be on machining center applications, though connections to turning will be mentioned where relevant.

1. What is the G95 (Feed Per Revolution) G-code?

G95 is a G-code that sets the CNC control to feed per revolution mode. Instead of specifying the feed rate as a linear speed (distance per minute, as in G94), G95 defines the feed rate as the distance the tool advances for each revolution of the spindle.

  • Metric: Millimeters per revolution (mm/rev)
  • Imperial: Inches per revolution (in/rev)

When G95 is active, the machine will move the tool the specified distance for every full rotation of the spindle. This is fundamentally different from G94, where the feed rate is independent of spindle speed.

Key Concepts:

  • Feed Rate (F-word): The numerical value following the F in a G-code block. In G95 mode, this value represents the distance per revolution.
  • Spindle Speed Dependent: The actual linear feed rate (in mm/min or in/min) will change if the spindle speed changes.
  • Modal Command: G95 is modal. It remains active until canceled by another feed rate command (G93, G94) or a machine reset.
  • Units: The interpretation of mm/rev or in/rev depends on the machine’s unit setting (G20 for inches, G21 for millimeters).
  • Chip Load: The key advantage of using G95 is that it allows for constant chip load and consistent cutting

Example:

G95 F0.1 ; Set feed rate to 0.1 mm/rev (or inches/rev)
G01 Z-20.0 ; Drill a hole 20mm deep at 0.1 mm/rev

2. G95 vs. G94 (Feed Per Minute) and G93 (Inverse Time Feed)

  • G94 (Feed Per Minute):
    • Specifies the feed rate in distance units per minute (mm/min or in/min).
    • The most common feed mode for general milling operations on machining centers.
    • Independent of spindle speed. Changing the spindle speed will not change the linear feed rate.
    • The Chip load will change.
  • G93 (Inverse Time Feed):
    • Specifies the feed rate as the reciprocal of the time (in minutes) to complete the move.
    • Primarily used for complex contouring and multi-axis machining.
    • Requires more complex calculations.
  • G95 (Feed Per Revolution):
    • Feed is directly proportional to Spindle Speed.
    • Most useful feed mode for operations where the tool rotates, like drilling, tapping.

Choosing the Right Feed Mode (Machining Centers):

Application Recommended Feed Mode
General milling G94
Facing (milling) G94
Contour milling G94
Drilling G95
Tapping (rigid tapping) G95 (often implicit)
Reaming G95
Boring G95
5-axis machining G94 or G93

E-Tablolar’a aktar

Why G95 for Hole-Making?

  • Consistent Chip Load: The key advantage of G95 in hole-making is that it maintains a consistent chip load. Chip load is the amount of material removed by each cutting edge (tooth) of the tool per revolution. A consistent chip load is crucial for:
    • Tool Life: Avoiding excessive chip loads prevents premature tool wear and breakage.
    • Surface Finish: Consistent chip formation leads to a better surface finish.
    • Hole Accuracy: Consistent cutting forces help maintain hole size and straightness.
    • Chip Evacuation: Proper chip formation helps prevent chip packing, especially in deep holes.
  • Tapping: In rigid tapping (where the spindle and feed are precisely synchronized), G95 is essential. The feed rate must be equal to the thread pitch, which is inherently a distance-per-revolution value. Most modern controls handle the G95 requirement implicitly within the tapping cycle (G84 or G74), but the underlying principle is feed per revolution.

3. Control System Variations

While the basic function of G95 is consistent, there are differences in how it’s implemented and used across various CNC controls.

  • Fanuc and Similar (Haas, Mitsubishi):

    • Syntax: G95 F[feed rate value]; (e.g., G95 F0.15;)
    • Modal: Remains active until canceled.
    • Rigid Tapping: In rigid tapping cycles (G84/G74), the G95 feed rate is usually implied and doesn’t need to be explicitly programmed within the cycle. The control automatically calculates the correct feed rate based on the spindle speed and the thread pitch. However, it’s good practice to have G95 active before calling the tapping cycle.
    • Drilling Cycles: In drilling cycles (G81, G83, etc.), you do typically program the F value with G95 active.
    • Example:
    G95 ; Feed per revolution
    G81 Z-25.0 R2.0 F0.1 ; Drill to Z-25 at 0.1 mm/rev
    
  • Siemens (SINUMERIK):

    • Syntax: G95 F[feed rate value];
    • G63 (Tapping without a Compensating Chuck): Siemens uses G63 for tapping without a compensating chuck (which is essentially rigid tapping). The feed rate is calculated automatically based on spindle speed and thread pitch. G95 is often used in conjunction with G63.
    • FFWON / FFWOF: Feed Forward Control.
  • Mazatrol (Mazak):

    • Conversational Programming: In Mazatrol, you would typically select “Feed Per Revolution” as the feed rate mode within the appropriate machining unit (e.g., DRILL, TAP). The system handles the G95 internally.
    • EIA/ISO (G-code): Mazak machines can run standard G-code, and G95 functions as expected.
  • Heidenhain:

    • Syntax: G95 F[feed rate value]; or within specific cycles.
    • F AUTO: Heidenhain often uses F AUTO within canned cycles (like drilling and tapping) to automatically calculate the feed rate based on the programmed parameters and the spindle speed. This is implicitly using feed per revolution.
  • Other Controls: Always refer to the programming manual.

4. Syntax and Parameters

The basic syntax is straightforward:

G95 F[feed rate value];
  • G95: Activates feed per revolution mode.
  • F[feed rate value]: The desired feed rate, in mm/rev or inches/rev.

Example (Fanuc, Metric):

G21 ; Set metric units
G90 ; Absolute positioning
G95 ; Activate feed per revolution mode
G00 X50.0 Y50.0 S1000 M03; Rapid to position, Spindle at 1000 RPM
G81 Z-20.0 R2.0 F0.15 ; Drill a hole at X50 Y50, depth Z-20, retract to R2, feed 0.15 mm/rev
G80 ; Cancel drilling cycle

Explanation:

  1. G21, G90: Set metric units and absolute positioning.
  2. G95: Activates feed per revolution.
  3. G00 X50.0 Y50.0 S1000 M03: Rapids to the hole location and starts the spindle at 1000 RPM.
  4. G81 Z-20.0 R2.0 F0.15: Executes a drilling cycle (G81). The tool will feed down to Z-20.0 at a rate of 0.15 mm for every revolution of the spindle. Since the spindle is running at 1000 RPM, the actual linear feed rate will be 0.15 mm/rev * 1000 RPM = 150 mm/min.
  5. G80: Cancels the drilling cycle.

Important Note: If you change the spindle speed (using an S word) while G95 is active, the linear feed rate will also change to maintain the programmed feed per revolution. This is a key difference from G94.

5. Programming Examples

Example 1: Drilling with G95 (Fanuc)

O0001 (Drilling with G95)
G21 G90 G40 G80 ; Safety line
T01 M06 ; Select drill (Tool 1)
G54 ; Select Work Coordinate System
G00 X25.0 Y25.0 S1500 M03; Rapid to position, spindle on at 1500 RPM

G95 ; Activate feed per revolution
G81 Z-15.0 R2.0 F0.08 ; Drill to Z-15 at 0.08 mm/rev
G81 X50.0 Y50.0 ; Drill another hole
G80 ; Cancel drilling cycle

G00 Z100.0 M05; Rapid retract, spindle off
M30 ; Program end

Example 2: Rigid Tapping (Fanuc - G95 often implicit)

O0002 (Rigid Tapping)
G21 G90 G40 G80
T02 M06 ; Select tap (Tool 2)
G54
G00 X10.0 Y10.0 S500 M03 ; Rapid to position, spindle on at 500 RPM

G95 ; Activate feed per revolution (often good practice, even if implicit)
G84 Z-20.0 R2.0 F1.0 ; Tap a hole (M6 x 1.0 thread - pitch = 1.0 mm)
G84 X30.0 Y30.0 ; Tap another hole
G80 ; Cancel tapping cycle

G00 Z100.0 M05
M30

Explanation:

  • G84: The rigid tapping cycle. The control automatically synchronizes the spindle rotation and the Z-axis feed to create the correct thread pitch. The F value must be equal to the thread pitch (in this case, 1.0 mm for an M6 x 1.0 thread). Even if you don’t explicitly program G95 before G84, the control operates in a feed-per-revolution manner within the cycle.

Example 3: Reaming (Fanuc)

O0003 (Reaming)
G21 G90 G40 G80
T03 M06 ; Select reamer (Tool 3)
G54
G00 X40.0 Y40.0 S300 M03

G95 ; Activate feed per revolution
G85 Z-18.0 R2.0 F0.05 ; Ream a hole at 0.05 mm/rev (G85 is feed in, feed out)
G80 ; Cancel reaming cycle

G00 Z100.0 M05
M30

6. Best Practices

  • Calculate Feed Rate Correctly: The most important aspect of using G95 is calculating the correct feed rate (F value) based on the desired chip load and the tool manufacturer’s recommendations. Tool catalogs usually provide chip load recommendations in mm/tooth (or inches/tooth).
  • Use Recommended Cutting Data: Always start with the tool manufacturer’s recommendations.
  • Consider Spindle Speed Limitations: Be mindful of the maximum spindle speed of your machine. At very high spindle speeds, even a small feed-per-revolution value can result in a very high linear feed rate.
  • Use Rigid Tapping Cycles: For tapping, always use the appropriate rigid tapping cycle (G84/G74 on Fanuc, G63 on Siemens, etc.). This ensures proper synchronization.
  • Check Machine’s Manual: Consult it.

7. Troubleshooting

  • Broken Taps:
    • Cause: Incorrect feed rate (not matching the thread pitch), dull tap, insufficient coolant, or chip packing.
    • Solution: Verify that the F value in the tapping cycle exactly matches the thread pitch. Check the tap’s condition and replace it if necessary. Ensure adequate coolant flow. Consider using a pecking tapping cycle (G74/G84 with a Q value) for deep holes.
  • Poor Hole Quality (Drilling/Reaming):
    • Cause: Incorrect feed rate, dull tool, insufficient coolant, or runout.
    • Solution: Adjust the feed rate (usually reduce it for better finish). Replace the tool. Ensure adequate coolant. Check for tool runout and correct it.
  • Inconsistent Feed:
    • Cause: Spindle speed fluctuations, a problem in machine.

8. Conclusion

The G95 Feed Per Revolution command is a powerful tool for CNC machining centers, particularly for hole-making operations like drilling, tapping, reaming, and boring. By synchronizing the feed rate with the spindle rotation, G95 ensures a consistent chip load, which is essential for tool life, surface finish, and hole accuracy. Understanding the differences between G95, G94, and G93, knowing how G95 is implemented on different controls, and following best practices are crucial for successful CNC machining. G95 is a fundamental concept for any CNC machinist or programmer working with hole-making operations on machining centers.