Master Sinumerik G94: 5 Essential Tips to Optimize Your CNC Feed Rate Programming
G94 sets feed in mm/min, so the control holds a constant linear speed no matter what the spindle does. This guide shows where that helps, where it hurts, and how to pick numbers that survive real cutting conditions. Written for programmers and process engineers running Sinumerik 840D or 828D mills and mill-turn centers.

In this article
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Key takeaways
What G94 actually does on a Sinumerik control
G94 is a modal feed rate mode. Every F value after it is read as millimeters per minute (or inches per minute with G70 active). The control moves the tool along the programmed path at that linear speed and does not adjust when spindle speed changes. That is the whole difference from G95, where F is read as feed per spindle revolution.
On a Sinumerik 840D, G94 is usually the power-on default in the channel. If a program opens with G95 for a drilling cycle and never returns to G94, the next milling block inherits G95. The machine still runs. The chip load just changed without anyone deciding it should. Most feed-related scrapped parts start here, not in the CAM output.
The mode also interacts with G96 and G97 on turning and mill-turn work. G96 constant surface speed plus G95 gives feed per revolution at a surface speed that rises as the tool approaches center. G94 plus G97 gives a fixed rpm and a fixed linear feed. For a facing pass on a Ø400 mm rotary table part, the second combination is often the one that keeps the insert alive.
One more boundary: G94 does not set the feed for rigid tapping, G84, or G86 boring cycles. Those cycles define their own feed from the programmed pitch or the spindle encoder. Writing F in mm/min inside a tapping cycle will alarm out or, worse, strip the thread. Keep those cycles on G95 and switch back afterward.
- 1G94F in mm/min. Constant linear speed.
- 2G95F in mm/rev. Feed follows spindle speed.
- 3DefaultMost Sinumerik mill channels power up in G94.
- 4Watch cyclesTapping and boring cycles need G95 and a pitch.
Tip 1: Switch modes deliberately, not by habit
The first habit to break is leaving the mode to chance. Put a G94 or G95 in every operation header, and put it again after any cycle that changes it. A single line of housekeeping saves the debugging time later. In practice, we see shops lose more hours to an inherited G95 than to any CAM post error.
Switch points matter more than the mode itself. Use G94 for contour milling, pocket clearing, and any path where the tool stays in cut for more than a few seconds. Use G95 for drilling, reaming, tapping, and any operation where chip load should scale with spindle speed. The switch costs one block. The wrong choice costs a tool.
Mill-turn work needs the clearest rules. On our 16 mill-turn centers, the turning side usually runs G95 with G96 constant surface speed, and the milling side runs G94. A program that mixes the two without a mode line at each transfer will feed a Ø6 mm end mill at whatever the last turning block left behind.
A useful check: search the program for every F address and confirm which mode is active one block earlier. If you cannot answer that from reading the code, the operator cannot either at 2 a.m. on a lights-out run.
- 1Header ruleEvery operation starts with an explicit mode line.
- 2Mill-turn ruleTurning side G95, milling side G94, restate at each transfer.
- 3Audit ruleTrace the active mode for every F address before release.
Tip 2: Set G94 feed for five-axis simultaneous moves
In a simultaneous five-axis move, the rotary axes change the tool orientation while the linear axes follow the surface. The programmed path length is measured at the tool tip, but the machine must also accelerate the rotary tables and the part mass. A feed that looks reasonable in a three-axis pocket becomes aggressive the moment two rotary axes join the move.
Sinumerik handles this with feed rate types such as FGROUP and with feedforward and jerk limits in the drive. FGROUP lets you decide which axes the programmed feed applies to. If rotary axes are excluded from the group, the control no longer tries to hold a linear speed across them, and the move becomes smoother. Programmers who never touch FGROUP often fight chatter they blame on the tool.
The practical number: keep tool tip feed in the 600–1,200 mm/min band for finishing aluminum with a Ø10 mm three-flute cutter at 12,000 rpm. On a five-axis finishing pass with two rotary axes moving at once, start near the low end and raise it only after the first article checks out. For titanium and Inconel, drop to 150–400 mm/min and expect to trade cycle time for tool life.
Rotary axis limits are the other constraint. A Ø400 mm rotary table with a heavy fixture cannot follow the same angular acceleration as a small trunnion. When the tool path asks for more than the table can deliver, the control slows the whole move and the surface finish shows it as a mark or a dwell. Split the pass into shorter segments with lower feed rather than letting the control fight the limits.
- 1FGROUPDecide which axes the programmed feed applies to.
- 2Start lowLow end of the finishing band on the first five-axis article.
- 3Table limitsHeavy fixtures reach angular limits before the tool does.
Tip 3: Calculate feed from cutting data, not from habit
Default feeds are the quiet killer. A post processor that writes 1,500 mm/min into every contour block is telling you nothing about the material, the cutter, or the engagement. Feed should come from chip load: feed per tooth × number of teeth × spindle rpm. Everything else is a correction on top of that starting point.
For a Ø10 mm three-flute carbide cutter in 6061 aluminum, a chip load of 0.05–0.10 mm per tooth at 12,000 rpm gives 1,800–3,600 mm/min. That is a roughing number at shallow radial engagement. In a full-width slot it will break the tool. The same cutter taking a 0.5 mm radial stepover can run at the high end; at full width, back off to 30–40 percent of the calculated value.
Stainless 304 and 17-4PH behave differently. Chip load drops to 0.02–0.05 mm per tooth and surface speed to 60–120 m/min. Inconel and Ti-6Al-4V sit lower again, and the feed has to stay high enough to avoid rubbing. Too slow is as damaging as too fast in these alloys, because the edge work-hardens the material instead of cutting it.
Tip 4 is where the numbers stop being static. Adaptive feed control on Sinumerik reads the drive load or spindle current and modulates the feed inside a programmed window. On castings and near-net forgings, the stock varies from part to part. A fixed G94 feed that is right for nominal stock will overload the tool on the thick side. Set a feed override band, let the control do the adjusting, and keep an eye on the load trace.
- 1Starting pointFeed = chip load × teeth × rpm, then correct for engagement.
- 2Aluminum0.05–0.10 mm/tooth, 12,000 rpm, Ø10 mm three-flute.
- 3Stainless0.02–0.05 mm/tooth, 60–120 m/min surface speed.
- 4Variable stockUse a load window instead of one fixed feed value.
Tip 5: Validate feed rates with in-process data
A feed rate is a hypothesis until the machine runs it. The quickest validation is the drive load display on the control and the spindle current meter. A stable cut holds load within a narrow band. A climbing trace means the feed is too high for the engagement, or the tool is wearing. A trace that drops to near zero mid-pass means the tool broke or lifted out of the cut.
Log the numbers on the first article. Record spindle load, axis load on the dominant axis, and surface finish at three or four points along the path. Then compare the last part of the run to the first. If load rose more than about 15 percent across a batch, the tool is dulling faster than planned and the feed or the tool grade needs a second look.
Finish tells the same story from the other side. Ra 0.8–1.6 μm is a normal machined finish on aluminum and mild steel with a sharp cutter. If a pass that measured Ra 0.8 μm in the morning reads Ra 1.6 μm by the afternoon with the same program, the change is tool wear, coolant, or chip evacuation, not the feed number alone. Measure before you change the program.
We run this loop on every new process. Setup parts get the full record, then the data goes into the job folder so the next run starts from evidence rather than from memory. It is slower on the first article and much faster on the tenth.
- 1Load traceStable band is good; a climb means back off.
- 2Batch driftOver 15 percent load rise signals tool wear.
- 3FinishRa 0.8–1.6 μm is the normal machined range.
Step by step: setting G94 feed on a new job
Use this order for mills and mill-turn cells.
- 11. Confirm the modeRead the operation header. Write G94 for milling and G95 for tapping or drilling. Never leave the mode to the previous operation.
- 22. Pick the chip loadFrom the cutter catalog for the workpiece material. Aluminum 6061: 0.05–0.10 mm/tooth. Stainless 304: 0.02–0.05 mm/tooth. Ti-6Al-4V: 0.02–0.04 mm/tooth.
- 33. Calculate the base feedChip load × number of teeth × rpm. Write the result into the first block of the operation, then correct for radial engagement.
- 44. Correct for engagementFull-width cuts run at 30–40 percent of the calculated value. Light stepovers can run at the top of the band.
- 55. Group the axesOn simultaneous five-axis moves, set FGROUP so the rotary axes are not forced to hold the linear feed. Lower the tip feed 20–30 percent for the first article.
- 66. Set the adaptive windowOn castings and forgings, enable load-based feed override. Set the upper load limit near 80 percent of the drive rating and let the control modulate.
- 77. Cut the first articleWatch the load trace at the heaviest engagement. Note spindle load, axis load, and chip shape. Long thin chips mean the feed is close; powdery chips mean it is too low.
- 88. Record and releaseLog load, finish, and tool number. Release the program only after the numbers repeat on a second part.
G94 feed starting points by material and cutter
Roughing values at shallow radial engagement; correct for full-width cuts.
| Material | Cutter | Chip load (mm/tooth) | Feed at 12,000 rpm |
|---|---|---|---|
| Aluminum 6061 | Ø10 mm 3-flute | 0.05–0.10 | 1,800–3,600 mm/min |
| Stainless 304 | Ø10 mm 4-flute | 0.02–0.05 | 960–2,400 mm/min |
| Steel 4140 | Ø12 mm 4-flute | 0.03–0.06 | 1,440–2,880 mm/min |
| Ti-6Al-4V | Ø10 mm 4-flute | 0.02–0.04 | 960–1,920 mm/min |
| Inconel 718 | Ø10 mm 4-flute | 0.02–0.03 | 960–1,440 mm/min |
| POM / PEEK | Ø10 mm 2-flute | 0.05–0.12 | 1,200–2,880 mm/min |
The rule that matters most
If you only change one habit, make it this: state the feed mode in every operation header, and recalculate the feed whenever spindle speed or engagement changes. Everything else in this article follows from that.
Common questions about G94 feed rate programming
Is G94 the default on every Sinumerik control?
On most 840D and 828D mill channels, G94 is the power-on default, but this depends on the machine builder's PLC and initialization file. Never assume it. Put the mode line in the program header and check the active G code screen on the control before the first cut.
Why did the surface finish change when I only edited the spindle speed?
Because G94 holds a fixed linear feed. Raising the spindle speed at the same feed reduces chip load per tooth, so the edge rubs instead of cutting. If you change spindle speed, recalculate the feed from chip load and update the F value in the same edit.
Can I use G94 for rigid tapping?
No. Tapping cycles need feed per revolution, which is G95, along with the correct pitch value. A G94 feed inside a G84 block will produce either an alarm or a torn thread. Switch to G94 after the cycle ends, not before.
How do I know the feed is too high on a five-axis pass?
Watch the axis load on the rotary axes and listen for a change in pitch through the move. If the control is slowing the path to stay inside its limits, the load trace will show a plateau. Reduce the tip feed by 20 percent and split long rotary moves into shorter segments.
Does adaptive feed control replace good cutting data?
No. It corrects for stock variation and tool wear inside a window you define. If the base feed is wrong for the material, the control will simply modulate around a bad number. Set the cutting data first, then let adaptive control handle the part-to-part variation.
What tolerance and finish can we expect from this process?
Our standard machining tolerance is ±0.005 mm, and typical machined finishes run Ra 0.8–1.6 μm, with fine finishing down to Ra 0.2–0.8 μm when the drawing calls for it. Feed strategy is one input among several, so we confirm numbers at the first article rather than promising them from the program alone.
Send us your part and the drawing
We review the geometry, pick the feed strategy, and come back with a quotation and a free DFM analysis within 12 hours.
12-hour quote±0.005 mm tolerance100% inspection