Sinumerik POCKET3 and POCKET4 Milling Cycles: Siemens Guide
Master Siemens POCKET3 and POCKET4 pocket milling cycles. Learn parameters, avoid Alarm 61000 & Alarm 61105, and optimize toolpath insertion strategies.
Introduction to Sinumerik Pocket Milling
Forcing a non-center-cutting endmill vertically into solid material during a pocket cycle will instantly shatter the cutter, throwing sharp carbide fragments across the machine enclosure and scrapping the workpiece. In Siemens Sinumerik controllers, executing the POCKET3 or POCKET4 cycles without validating Z-axis clearances, retraction planes, and active tool radius compensation leads to rapid positioning crashes against clamping fixtures or immediate program termination with alarms such as 61000 or 61105. Operating these cycles safely requires a clear understanding of the parameter structure, entry options, and the kinematic behavior of the machine tool.
Technical Summary
| Technical Specification | Detail |
|---|---|
| Command Code | POCKET3 (Rectangular Pocket), POCKET4 (Circular Pocket) |
| Modal Group | Milling cycles (Non-modal cycle calls, or modal execution using MCALL) |
| Brands | Siemens |
| Critical Parameters | _VARI (Machining/Insertion Type), _MID (Max Depth Infeed), _CDIR (Milling Direction) |
| Main Constraint | Tool radius compensation must be active (D offset enabled) prior to calling the cycle (avoids Alarm 61000). |
Quick Read: Best Practices
- Activate Tool Compensation: Always program an active cutter compensation (like
D1) before callingPOCKET3orPOCKET4to prevent cycle abortion with Alarm 61000. - Verify Tool Radius: Ensure the active tool radius is smaller than the programmed pocket corner radius or circular pocket radius to prevent Alarm 61105.
- Check Clearance Heights: Set the retraction plane
_RTPand safety clearance_SDIShigh enough to clear vise jaws, clamps, and fixtures during rapid positioning to the pocket center. - Select Appropriate Insertion: Use helical or oscillating insertion (
_VARItens digit 2 or 3) when pocketing with standard indexable endmills to avoid tool breakage from vertical plunging. - Utilize Pre-Machining Parameters: Define casting or pre-drilled dimensions using
_AP1,_AP2, and_ADto skip cutting air and reduce cycle times. - Manage Modal Subroutines: Combine the pocket cycle with
MCALLwhen machining multiple identical pockets across a coordinate grid or position pattern.
Basic Concepts
The practical programming effect of the POCKET3 and POCKET4 cycles is the complete automation of roughing and finishing operations for standard geometric pockets. Rather than manually plotting extensive toolpaths block-by-block, programmers simply define the pocket's dimensions, the finishing allowances, and the maximum depth step-overs. The controller automatically calculates the toolpath to clear the material. For solid machining from a blank workpiece, the cycles provide highly dynamic insertion strategies. The tool can plunge vertically, ramp down along a continuous helical spiral to gently enter the material, or use an oscillating strategy where the cutter swings back and forth along the pocket's longitudinal axis until it achieves the required depth increment. This entirely eliminates the need for pre-drilled drop holes when using standard endmills that cannot cut directly across their center.
Command Structure
Siemens Sinumerik controllers utilize two distinct commands for pocket milling: POCKET3 for rectangular geometry and POCKET4 for circular pockets. These cycles are parameterized subroutines where the programmer passes specific numerical inputs directly in the cycle call block. Each argument defines a critical geometrical or technological aspect of the operation, such as reference heights, pocket dimensions, allowances, feedrates, and entry strategies.
The parameterization allows a G-code line to control everything from roughing down-cut passes to finishing depth infeeds. Because these cycles are non-modal by default, they execute only at the currently active tool position unless modal behavior is initiated using the MCALL statement. A key programming rule is ensuring that all required parameters are defined sequentially and separated by commas, leaving optional trailing fields empty if they are not utilized.
POCKET3(_RTP, _RFP, _SDIS, _DP, _LENG, _WID, _CRAD, _PA, _PO, _STA, _MID, _FAL, _FALD, _FFP1, _FFD, _CDIR, _VARI, _MIDA, _AP1, _AP2, _AD, _RAD1, _DP1, _UMODE, _FS, _ZFS, _GMODE, _DMODE, _AMODE)
POCKET4(_RTP, _RFP, _SDIS, _DP, _CDIAM, _PA, _PO, _MID, _FAL, _FALD, _FFP1, _FFD, _CDIR, _VARI, _MIDA, _AP1, _AD, _RAD1, _DP1, _UMODE, _FS, _ZFS, _GMODE, _DMODE, _AMODE)
| Parameter | Description | Data Type / Value Range |
|---|---|---|
_RTP | Retraction plane (absolute coordinate along tool axis) | REAL |
_RFP | Reference plane (absolute surface of workpiece) | REAL |
_SDIS | Safety clearance (distance from reference plane for rapid approach, enter without sign) | REAL |
_DP | Pocket depth (absolute or incremental) | REAL |
_LENG | Pocket length (incremental, with sign) [POCKET3 only] | REAL |
_WID | Pocket width (incremental, with sign) [POCKET3 only] | REAL |
_CRAD | Corner radius of rectangular pocket [POCKET3 only] | REAL |
_CDIAM | Pocket diameter or radius [POCKET4 only] | REAL |
_PA | Pocket reference / center point in 1st axis (absolute) | REAL |
_PO | Pocket reference / center point in 2nd axis (absolute) | REAL |
_STA | Angle of rotation between longitudinal axis and 1st axis (0° ≤ STA < 180°) [POCKET3 only] | REAL |
_MID | Maximum depth infeed per pass (plane-by-plane) or max helical pitch (incremental) | REAL |
_FAL | Finishing allowance at the pocket edge or plane (without sign) | REAL |
_FALD | Finishing allowance at the base or depth (without sign) | REAL |
_FFP1 | Feedrate for surface machining (plane feedrate) | REAL |
_FFD | Feedrate for depth infeed (depth feedrate) | REAL |
_CDIR | Milling direction (0 = Down-cut, 1 = Up-cut, 2 = with G2, 3 = with G3) | INT |
_VARI | Machining type (Units digit: 1=roughing, 2=finishing; Tens digit: 0=perp G0, 1=perp G1, 2=helical, 3=oscillating) | INT |
_MIDA | Maximum infeed width in the plane for solid machining | REAL |
_AP1 | Blank dimension of pocket length (POCKET3) / pocket radius blank dimension (POCKET4) | REAL |
_AP2 | Blank dimension of pocket width (POCKET3) | REAL |
_AD | Blank pocket depth dimension from reference plane | REAL |
_RAD1 | Radius of helical path on insertion | REAL |
_DP1 | Insertion depth per 360° helical revolution | REAL |
_UMODE | Under-cut mode / parameter | REAL / INT |
_FS | Chamfer width for chamfering | REAL |
_ZFS | Insertion depth of tool tip (absolute or incremental) | REAL |
_GMODE | Geometrical mode (evaluation of programmed geometrical data) | INT |
_DMODE | Display mode (plane G17/G18/G19, feedrate group, technology scaling) | INT |
_AMODE | Alternative mode (pocket depth absolute/incremental) | INT |
Brand Applications
Siemens
In Siemens Sinumerik setups, the pocket cycles are called as high-level commands, POCKET3 and POCKET4, which support complex pocket geometries directly from standard G-code. A key advantage in Siemens systems is the ability to modalize the cycle using MCALL. This allows the operator to define a grid or pattern of coordinates (for example, with HOLES2 or custom coordinates) and execute the pocket cycle at each location without writing redundant G-code blocks. Additionally, parameters such as _AP1, _AP2, and _AD can be set to represent a cast or pre-machined cavity, which instructs the control to skip dry passes and focus on removing remaining material.
Brand Comparison
| Feature / Parameter | Legacy Siemens Cycles (POCKET1 / POCKET2) | Modern Siemens Cycles (POCKET3 / POCKET4) | Conversational ShopMill Interface |
|---|---|---|---|
| Tool Requirements | Strictly required center-cutting endmills (DIN 844) with end tooth cutting across center. | Works with standard non-center-cutting indexable endmills due to helical/oscillating plunge. | Natively supports any qualified milling cutter registered in the tool list. |
| Insertion Strategies | Strictly vertical plunge (perpendicular entry), requiring pre-drilled holes for solid material. | Perpendicular (G0/G1), helical path, and oscillating centerline ramp entry methods. | Visual selection of ramping, helical, or straight plunge, linked directly to tool technology data. |
| Feedrate Programming | Programmed in standard units (mm/min or mm/rev) using parameters. | Programmed as depth feedrate (_FFD) and plane feedrate (_FFP1) in mm/min. | Allows depth infeed feedrate to be programmed as FZO in mm/tooth (standard is FZ). |
| Pre-machining Support | No native support; always assumes a solid block of material. | Supported via blank dimension parameters (_AP1, _AP2, _AD). | Conversational blank/pre-machined toggles that dynamically scale cycle parameters. |
Technical Analysis
Siemens uniquely distinguishes its handling of pocket milling from other control brands through several advanced built-in cycle behaviors. First, Siemens embeds a comprehensive "post-machining" logic directly inside the standard pocket cycles via parameters like _AP1, _AP2, and _AD (or AZ, W1, L1). Instead of treating every pocket as a completely solid block of material, the programmer can define the dimensions of a smaller, already-machined pocket or cast hole, allowing the cycle to efficiently enlarge the existing feature without wasting time cutting air. Second, Siemens offers a highly specialized oscillating insertion method for rectangular pockets (triggered by setting the _VARI tens digit to 3), which automatically calculates a reciprocating ramp path along the centerline of the pocket—a kinematic feature rarely found built-in on basic ISO macros. Finally, the Siemens ecosystem supports a dual-layer programming approach; these complex parameterized G-code cycles natively integrate with ShopMill's "Input simple" and "Input complete" graphical masks, allowing the interface to scale the technology parameters via the _DMODE variable so both conversational operators and standard G-code programmers utilize the exact same backend kinematic routines.
Program Examples
T1 D1 M6 ; Select tool 1 with active radius compensation D1
S2000 M3 ; Spindle start clockwise at 2000 RPM
G17 G90 G54 ; XY plane, absolute coordinates, work coordinate system
G0 X0 Y0 ; Rapid to pocket center
Z20 ; Rapid to safe clearance plane
; Execute POCKET3 rectangular cycle
POCKET3(20, 0, 2, -25, 70, 50, 15, 0, 0, 90, 2, 0, 0, 2000, 0.1, 0, 21, 60, 8, 3, 15, 6.5, 1, 0, 1, 2, 11100, 11, 110)
G0 Z100 M5 ; Retract Z-axis and stop spindle
M30 ; End of program
Dry Run Analysis:
- Block 1-5: The machine indexes the tool turret to tool 1, activates cutter compensation offset
D1, starts the spindle at 2000 RPM, selects theG17machining plane, setsG90absolute programming, and coordinates movement to the center point of the pocket atX0 Y0. The Z-axis rapid-positions to 20 mm. - Block 6 (POCKET3 Call): The cycle begins. The Z-axis rapids down to the retraction plane (
_RTP = 20) and then continues to the safety clearance height (_SDIS = 2mm above the reference plane_RFP = 0). - Entry & Machining: With
_VARI = 21(roughing with helical insertion), the tool begins a helical spiral entry path at radius_RAD1 = 6.5and pitch_DP1 = 1mm per turn, feeding at_FFD = 0.1(programmed as depth feed rate) until it reaches the first depth step-over defined by_MID = 2mm. - Pocket Clearing: The cycle uses concentric passes at feedrate
_FFP1 = 2000mm/min to rough out the 70 mm by 50 mm rectangular area, leaving a 0 mm edge allowance (_FAL = 0) and 0 mm floor allowance (_FALD = 0) since finishing is done concurrently or not requested in this block. The corner radius is machined to 15 mm. - Retraction: Upon reaching the final depth of −25 mm, the tool retracts back to the safety clearance and then to the retraction plane
_RTP = 20at rapid speed.
Error Analysis
| Alarm Code | Trigger Condition | Operator Symptom | Root Cause / Fix |
|---|---|---|---|
| Alarm 61000 | Tool compensation (D number) is not active before calling the cycle. | The machine execution halts immediately at the cycle call block; the control display shows Alarm 61000 "No tool compensation active". | Verify that a tool radius compensation offset (e.g., D1) is active in the G-code sequence (e.g., T1 D1 M6) before invoking the cycle. |
| Alarm 61105 | Programmed pocket radius (or corner radius _CRAD / circular radius _PRAD) is smaller than the active tool radius. | Cycle execution aborts instantly at the start of the block; the control display shows Alarm 61105 "Cutter radius too large". | Select a tool with a smaller diameter, or increase the programmed pocket dimensions/radius so that the tool can physically fit within the boundary. |
| Alarm 61101 | The retraction plane _RTP and reference plane _RFP coordinates are logically inconsistent (e.g., reference plane is located above the retraction plane along the Z-axis). | The controller refuses to start tool movement and interrupts program run, outputting Alarm 61101 "Reference plane defined incorrectly". | Adjust the Z-axis coordinate values so that the retraction plane _RTP is physically higher than the reference plane _RFP (for example, _RTP = 20 and _RFP = 0). |
Professional Application Note
Failing to verify physical Z-axis clearances before indexing the turret or positioning the spindle will lead to a rapid-traverse crash against clamping fixtures, resulting in costly machine downtime and spindle realignment. When calling the pocket cycles, the Sinumerik controller executes an automated rapid traverse straight to the pocket center at the retraction plane height before plunging to the safety clearance. If clamping fixtures or vise jaws occupy this path, a collision is guaranteed. Additionally, selecting a vertical insertion strategy with a non-center-cutting endmill causes immediate mechanical failure, as the solid material forces the tool's non-cutting center web to deflect, resulting in a shattered cutter. Programmers must ensure that either pre-drilled pilot holes exist at the pocket center or that a helical or oscillating ramp path is configured in the _VARI parameter to protect both tool and workpiece.
Related Command Network
CYCLE63: Used to mill contour pockets with free-form boundaries, acting as the complex contour counterpart to standard geometric pocket cycles.CYCLE64: Programmed to execute predrilling at the entry points of complex contours beforeCYCLE63clearing begins. For pre-drilling pocket entries, see the Siemens Cycle 81 Centering and Drilling Cycle guide.SLOT1: Standard slotting cycle for longitudinal slot machining, utilizing similar parameter structures for depth entry and allowances. For deep hole machining, reference the Cycle 83 Deep Hole Drilling instructions.CYCLE76: Executes rectangular spigot (boss) milling, representing the outer-boundary male equivalent of the femalePOCKET3cycle. For tapping operations within the pocket, see the Siemens Cycle 84 and Cycle 99 Threading Cycles.MCALL: Modal cycle call command used to repeat the pocket cycle at multiple coordinate positions defined in subsequent lines.
Practical Conclusions
Optimizing pocket milling on Sinumerik systems requires aligning the tool path strategy with the cutter's geometry and physical setups. Activating tool radius offset compensation, confirming that pocket boundaries exceed the cutter's physical width, and configuring helical or oscillating ramping strategies rather than vertical plunging are mandatory steps to prevent tool breakage and machine collisions. By integrating these parameterized cycles with ShopMill conversational templates, programmers can establish robust, error-free machining routines that maximize material removal rates and extend tool life.
Frequently Asked Questions
How do I resolve Alarm 61000 when starting the pocket cycle?
This alarm occurs because cutter radius compensation is inactive. To resolve this, ensure a tool offset number (such as D1) is programmed in the blocks immediately prior to calling the cycle, or ensure a tool call (T and D) is fully executed so the control system can calculate the tool path offset.
Can I use POCKET3 with an indexable endmill that does not cut across its center?
Yes, but you must avoid vertical entry. Configure the tens digit of the _VARI parameter to 2 (helical path) or 3 (oscillating ramp) so the tool enters the material at an angle, which prevents the non-center-cutting portion of the tool from slamming directly into solid stock.
What is the difference between ShopMill and standard G-code cycle parameter inputs?
The primary difference lies in feedrate unit scaling and entry interfaces. While standard G-code cycles require depth feedrate _FFD in mm/min, ShopMill allows conversational input of depth feedrate as FZO in mm/tooth, which the control system dynamically translates behind the scenes based on active spindle speed.
Still not resolved?
Ask our AI assistant about this topic in natural language. Grounded in verified sources, no hallucinations.

- CNC CARE Co-Founder (May 2025 - Present)
- Mitsubishi Electric NC Sales & Service Section Manager (2008 - 2025)
- Reis CNC Service Engineer (2003 - 2005)
- Ören Kalıp CNC Mold Line Team Leader (1999 - 2002)
With over 25 years of experience working in all areas of the CNC machine industry, I continue my activities as a co-founder of CNC CARE, where we offer brand-independent consulting, engineering, and original spare parts services.
Related Articles
Other articles on this topic
Siemens CYCLE800 G-Code: Swivel Planes & Tool Alignment
Master Siemens CYCLE800 for 3+2 axis machining. Learn plane swiveling, tool alignment, parameter setup, and how to troubleshoot Alarm 61190 and 61153.
Siemens CYCLE72 Contour Milling: Guide to Sinumerik Path Milling
Master Siemens CYCLE72 for contour milling on Sinumerik CNC controls. Learn parameter setup, avoid simulation alarm 61123, and prevent machine collisions.
Siemens CYCLE952 Contour Turning Cycle Programming Guide
Master Siemens CYCLE952 contour turning on Sinumerik CNC controls. Learn parameter lists, resolve Alarm 61051, and configure balance cutting.
Siemens SLOT1 and SLOT2 Slot Milling Cycles Programming Guide
Master slot milling on Siemens Sinumerik controls using SLOT1 and SLOT2 cycles. Learn parameter configurations, alarm 61000 prevention, and optimal tool paths.