Die milling asks for three things at once
A die program out of CAM contains hundreds of thousands of very short linear blocks. The control is expected to run them at high feedrate, to micron accuracy, with a good surface finish.
Those three fight each other. Push the speed and accuracy drops; force the accuracy and the machine slows down and leaves marks. CYCLE832 exists to manage exactly that triangle: it brings together the G codes and programming commands needed for HSC machining into one cycle.
The logic is simple: in roughing the aim is speed and surface quality does not matter. In finishing the aim is accuracy and surface quality. In both cases setting a tolerance value is what makes the contour be taken into account — and as a rule the roughing tolerance is set higher than the finishing tolerance.
Three ways to call the cycle
| Form | Meaning |
|---|---|
CYCLE832(_TOL,_TOLM) | Full call: tolerance value and tolerance mode given together |
CYCLE832() | Shortened call. Corresponds to selecting “Deselect machining” on the input screen. |
CYCLE832(0.01) | Shortened call with the tolerance only. The active G commands are not changed by the cycle. |
The third form is very useful in practice: after a block search, or from the Overstore window, you write CYCLE832(0.02) to change only the tolerance and leave everything else in the program as it is.
The tolerance parameter (_TOL)
This parameter is the machining tolerance of the axes during machining; the unit is mm or inch on linear axes and degrees on rotary axes.
- The tolerance value applies to G642 and COMPCAD.
- If G641 is used, the tolerance value corresponds to the ADIS value.
- If the machining axis is a rotary axis, the tolerance is written to
MD33100with a factor (default factor = 8):COMPRESS_POS_TOLon the rotary axis.
Default tolerance values on first entry
| Machining type | Linear axes | Rotary axes |
|---|---|---|
| 0 — Deselect | 0.1 mm | 0.1° |
| 1 — Finishing | 0.01 mm | 0.08° |
| 2 — Pre-finishing | 0.05 mm | 0.4° |
| 3 — Roughing | 0.1 mm | 0.8° |
The digits of the tolerance mode (_TOLM)
The second parameter is an integer, and each of its digits stands for a separate setting.
Machining type
- 0 Deselect · 1 Finishing (default) · 2 Pre-finishing · 3 Roughing
Continuous-path (look-ahead) mode
| Value | Command | Behaviour |
|---|---|---|
| 0 | G64 | Default. Continuous-path mode; look-ahead only considers corner chamfering. |
| 1 | G641 | Corner rounding with ADIS / ADISPOS |
| 2 | G642 | Corner rounding with axial tolerance. This is the recommended one for die surfaces. |
With an NC block compressor using COMPCAD, G642 is always permanently selected.
Feedforward and acceleration
- 0 →
FFWON SOFT— feedforward on, acceleration limitation on - 1 →
FFWOF SOFT— feedforward off, acceleration limitation on - 2 →
FFWOF BRISK— both off
Compressor
- 0 → none (
COMPOF, default) · 1 →COMPCAD· 3 → B-spline
FFWON) and acceleration limitation (SOFT) to be selectable, the machine manufacturer must have optimised the control or the machining axes. Turning these on unoptimised produces vibration and marks. More generally, every function listed here assumes the OEM has optimised the machine correctly.Compressors: COMPON, COMPCURV, COMPCAD, COMPOF
To describe a complex contour, CAD/CAM systems generate a large number of linear and circular blocks, partly with very short path lengths. These blocks limit the maximum processing speed you can reach.
The compressor functions replace them with a few polynomial blocks with the greatest possible path lengths, while maintaining the required contour accuracy. The gains:
- Higher maximum path velocities
- Fewer traversing blocks
- Continuous block transitions
| Command | What it does |
|---|---|
COMPON | Generates one polynomial block from up to ten consecutive linear blocks of the form G01 X… Y… Z… F…. Block transitions have continuous velocity. |
COMPCURV | Same up-to-ten linear blocks; block transitions have continuous velocity and acceleration. |
COMPCAD | Can generate one polynomial block from theoretically any number of linear and circular blocks. Velocity and acceleration are constant at the block transitions, and corners that are desirable are identified as such and taken into account. |
COMPOF | Deactivates the currently active compressor function. |
All four are modal — once written they stay in force until cancelled.
G642 and the jerk limitation SOFT achieve further improvements in surface quality, and that these commands must be written at the beginning of the program. A compressor switched on halfway through has no effect on the blocks before it.The source training document additionally states a maximum path length of 5 mm for COMPCAD. That figure is not repeated in this form in the current programming manual; this point could not be independently verified and may vary with the control version.
G642 and ADIS: the corner rounding tolerance
If the continuous-path mode is called inside CYCLE832, the ADIS tolerance for G641 corresponds to _TOL. If you are not using CYCLE832 you have to specify the ADIS value yourself.
ADIS— corner rounding distance for the path functions G1, G2, G3.ADISPOS— blending clearance for rapid traverse G0. Not suitable for die surfaces.
There are two ways of specifying the tolerance for G642: set the individual axes through machine data, or program the retraction distance with ADIS.
What if CYCLE832 is not available?
If your machine does not have the CYCLE832 option you can do the same job by programming it by hand. The subprogram example from the source document looks like this — the tolerance is defined as a variable and passed in when the subprogram is called:
In the main program you call this subprogram with a large tolerance for roughing and a small one for finishing. NEWCONF activates the changed machine data.
$MA_COMPRESS_POS_TOL machine data from inside a program. That requires the right access level, directly affects the machine’s dynamic behaviour and calls for a backup beforehand. Do not copy and run it as is; it has to be adapted to your own machine’s axis names and configuration and verified against the machine builder’s manual.Common mistakes
Using the same tolerance for roughing and finishing
A tight tolerance in roughing slows the machine for nothing; a loose one in finishing ruins the surface. Write a separate CYCLE832 call for each operation.
Confusing this tolerance with the part tolerance
This value is how much the contour may be simplified. Giving it the whole part tolerance leaves no margin for anything else.
Putting COMPCAD in every program
It costs a great deal of CPU time and memory. Try the CAM-side fix first.
Switching the compressor on halfway through the program
G642 and SOFT must be written at the beginning of the program.
Selecting FFWON/SOFT on an unoptimised machine
Whether these work depends on the OEM’s axis optimisation.
Expecting rotary axis tolerance on a 3-axis machine
Rotary axis tolerance needs the 5-axis transformation set up by the OEM.
Relying on ADISPOS for die surfaces
ADISPOS is for rapid traverse and is not suitable for die surfaces.
Frequently asked questions
What tolerance should I use for finishing?
The cycle’s default on linear axes is 0.01 mm. The real value follows from the part tolerance, the machine’s dynamics and the point density in the CAM program; there is no single right number.
Is writing CYCLE832(0.02) enough?
Yes — that is the shortened call and it does not change the active G commands. Use it when you only want to update the tolerance.
How do I deselect the cycle?
A call with no parameters, CYCLE832(), corresponds to “Deselect machining” on the input screen.
What is the difference between COMPON and COMPCAD?
COMPON and COMPCURV generate one polynomial from up to ten linear blocks; COMPCAD can do it from theoretically any number of linear and circular blocks and identifies corners that should be preserved. In exchange it uses far more processor time and memory.
There are marks on the surface — will tightening the tolerance fix it?
Not always. Marks can come from the machine’s dynamic behaviour (backlash, friction, quadrant error), from the point distribution in the CAM program or from the tool holding. Tightening the tolerance lengthens the cycle time and will not solve the problem if the cause is elsewhere.
Sources
- Siemens AG — SINUMERIK 840D sl / 828D Job Planning, Programming Manual, 01/2015, document no. 6FC5398-2BP40-5BA2: Section 5.4 NC block compression — COMPON, COMPCURV, COMPCAD, COMPOF (p.237): how the compressors work, the ten-block limit, the CPU and memory cost of COMPCAD, the note that G642 and SOFT must be written at the beginning of the program, modal effect
- Siemens AG — SINUMERIK Advanced CNC Operation and Programming, 05/2010: Sections 2.9 and 3.5 High Speed Settings — CYCLE832 (call forms, the _TOL and _TOLM parameters, default tolerance values, MD33100 and the rotary axis factor, the G64/G641/G642 and FFWON/SOFT/BRISK options, ADIS and ADISPOS, the COMPCAD subprogram example)