Retaining ring groove on a CNC lathe: DIN 471/472 groove sizes and G-code
· ~7 min read
A groove for a retaining ring (also called a circlip or snap ring) is one of the most common lathe jobs: a bearing on a shaft, a gear, a bushing in a housing. The groove itself is simple, but its dimensions are tight: too shallow or too wide, and the ring rattles or does not hold the axial load. Here is where to take the sizes from, what tool to use and how to get the G-code for a LinuxCNC lathe.
Contents
- Types of retaining rings
- Groove dimensions: what matters
- Table: shaft grooves (DIN 471)
- Table: bore grooves (DIN 472)
- Tooling and cutting data
- LinuxCNC G-code example
- Grooves in Turn G-code
- Common mistakes
Types of retaining rings
- External rings go on a shaft. The common metric standard is DIN 471 (inch rings follow ANSI/ASME standards with their own groove tables).
- Internal rings go into a bore. The metric standard is DIN 472.
Besides the usual tapered-section rings there are wire rings and E-clips (DIN 6799) that are pushed on from the side. Below we stick to the most common ones, DIN 471 and DIN 472.
Groove dimensions: what matters
A retaining ring groove has three sizes:
| Symbol | What it is |
|---|---|
| d2 | Groove bottom diameter |
| m | Groove width (slightly more than the ring thickness s) |
| n | Minimum distance from the groove to the end of the part |
The groove depth per side is (d1 - d2) / 2 for a shaft and (d2 - d1) / 2 for a bore, where d1 is the nominal shaft or bore diameter. The width m is always a little more than the ring thickness so the ring fits without force.
Table: shaft grooves (DIN 471)
Sizes for the most common diameters. Check them against your ring supplier’s table before cutting: tolerances and some sizes may differ between suppliers and editions of the standard.
| Shaft d1, mm | Ring thickness s | Groove bottom d2 | Groove width m | Depth per side |
|---|---|---|---|---|
| 10 | 1.0 | 9.6 | 1.1 | 0.2 |
| 12 | 1.0 | 11.5 | 1.1 | 0.25 |
| 15 | 1.0 | 14.3 | 1.1 | 0.35 |
| 17 | 1.0 | 16.2 | 1.1 | 0.4 |
| 20 | 1.2 | 19.0 | 1.3 | 0.5 |
| 25 | 1.2 | 23.9 | 1.3 | 0.55 |
| 30 | 1.5 | 28.6 | 1.6 | 0.7 |
| 35 | 1.5 | 33.0 | 1.6 | 1.0 |
| 40 | 1.75 | 37.5 | 1.85 | 1.25 |
Table: bore grooves (DIN 472)
| Bore d1, mm | Ring thickness s | Groove bottom d2 | Groove width m | Depth per side |
|---|---|---|---|---|
| 20 | 1.0 | 21.0 | 1.1 | 0.5 |
| 25 | 1.2 | 26.2 | 1.3 | 0.6 |
| 30 | 1.2 | 31.4 | 1.3 | 0.7 |
| 35 | 1.5 | 37.0 | 1.6 | 1.0 |
| 40 | 1.75 | 42.5 | 1.85 | 1.25 |
| 47 | 1.75 | 49.5 | 1.85 | 1.25 |
Tooling and cutting data
Insert. The easiest option is a grooving insert exactly m wide: the groove is done in one plunge. Inserts for retaining ring grooves come in 1.1, 1.3, 1.6 and 1.85 mm widths. If the insert is narrower than the groove, the groove is cut in several plunges stepped along Z. If it is wider, that tool cannot make the groove.
Feed. The plunge in X uses a small feed, usually 0.02-0.08 mm/rev depending on the material and insert width (check the insert maker’s catalogue). In gummy materials a peck plunge helps: the insert backs off, the chip breaks and does not pack the groove.
Spindle speed. Use G97, constant RPM: the diameter hardly changes, so G96 gains nothing here (see G96 vs G97).
Bottom. A short dwell at the bottom (G4 P0.2 in LinuxCNC, 0.2 seconds)
cleans up the groove bottom after the plunge.
Internal grooves are cut with an internal grooving bar rated for the minimum bore diameter. Make sure the bar fits the bore and clears the wall when it retracts.
LinuxCNC G-code example
A groove on a Ø20 mm shaft for a DIN 471 ring: bottom d2 = 19.0, width m = 1.3, groove from Z-10 to Z-11.3. A 1.3 mm insert, with the tool reference point at the left (chuck-side) corner of the insert. This is an illustration, not Turn G-code output:
G21 G18 G7 G90 G95 (mm, XZ plane, X as diameter, feed per rev)
G54
G97 S600 M3
G0 X22 Z2
G0 Z-11.3 (left insert corner at the groove edge)
G0 X20.4
G1 X19.5 F0.04 (first plunge)
G0 X20.4 (peck back, break the chip)
G1 X19.0 F0.04 (plunge to the bottom d2)
G4 P0.2 (dwell at the bottom)
G0 X22 (retract)
G0 Z2
M5
M30
Before running it, check the program in the LinuxCNC preview and make sure the tool reference point in your tool table is the same insert corner the program assumes.
Grooves in Turn G-code
Turn G-code has a Groove cycle for this, external on a shaft or internal in a bore. You do not write the program by hand, you fill in a form:
- the shaft or bore diameter;
- the groove start Z;
- the groove width, m from the table;
- the tool width: if the insert is narrower than the groove, the cycle works out several plunges stepped along Z;
- the depth per side, (d1 - d2) / 2 from the table;
- depth per pass, finishing allowance, plunge and finishing feeds.
The built-in 2D simulator shows the toolpath before the file reaches the machine. To see what a finished program looks like, the cycle page has a real example of an internal groove, with no hand edits.
Common mistakes
- An insert wider than the groove. The ring will float axially. The insert width must not exceed m.
- Depth on diameter instead of per side. For a Ø20 shaft and d2 = 19.0 the depth per side is 0.5 mm. Enter 1.0 and the groove goes down to Ø18 and weakens the shaft.
- The wrong reference corner. If the program is written for the left insert corner and the tool table uses the right one, the groove shifts by the insert width.
- Too much plunge feed. Chips pack the narrow groove and the insert breaks. Use a small feed and peck.
- A groove too close to the end of the part. If the distance to the end is less than the allowed n, the shoulder deforms under load.
The full G- and M-code table is in the LinuxCNC G-code and M-code reference for lathes. Try it yourself: download Turn G-code - 15 days free, no key needed.
