Tilting the Working Plane (PLANE)

A feature is designed at an angle — a bore on a ramp, a pocket on a canted face — and you would rather write the program in that feature’s own flat plane than resolve every move into machine XYZ. On a HEIDENHAIN TNC that is what the PLANE function does: it tilts the working plane so the rest of the program runs as if the tilted face were the machine table. The thing that trips people up is that a PLANE block is really two instructions welded together — it defines the tilted plane’s geometry, and it commands a mandatory positioning behavior (MOVE, TURN or STAY) in the same line. Leave the positioning word off and the control alarms. This page is derived from HEIDENHAIN’s TNC 640 Klartext Programming User’s Manual (892903-29, 01/2021), §11.2 “The PLANE function: Tilting the working plane (option 8)”, p. 427.

Requirements

The PLANE function needs software option 8 (Advanced Function Set 1 — machining with rotary tables). The spindle axis must be Z, and the machine needs at least two rotary axes — with one exception: PLANE AXIAL, which commands axis angles directly and works on a machine with a single rotary axis. Every PLANE function except PLANE AXIAL tilts the plane in the mathematically correct way regardless of which physical axes (head, table or combined) carry the motion; the machine kinematics are the tool builder’s concern, not yours.

1 · Geometry PLANE SPATIAL SPA SPB SPC 2 · Positioning MOVE / TURN / STAY Rotary axes tilt Working plane active
Every PLANE block joins a geometry definition to a mandatory positioning behavior. The control tilts the rotary axes as the positioning word dictates, then the tilted working plane stays active until PLANE RESET. After HEIDENHAIN 892903-29 §11.2.

Part One: Seven Ways to Define the Plane

The geometry half of the block picks how you describe the tilted plane. The math is identical; the input differs so you can use whatever numbers your drawing or CAD system hands you.

FunctionInputsDefines the plane by…
PLANE SPATIALSPA SPB SPCThree spatial angles — rotations about the non-tilted WCS axes: SPA about X, SPB about Y, SPC about Z. The everyday choice, and the same angles Cycle 19 used.
PLANE PROJECTEDPROPR PROMIN ROTTwo projection angles (principal plane and minor plane) plus a rotation angle of the tilted plane.
PLANE EULEREULPR EULNU EULROTThree Euler angles: precession (about Z), nutation (tool-axis tilt) and rotation of the tilted plane.
PLANE VECTORbase BX BY BZ + normal NX NY NZA base vector (X′ direction) and a surface-normal vector — the natural output of a CAD/CAM post.
PLANE POINTSP1X/Y/Z P2X/Y/Z P3X/Y/ZThree points that lie in the tilted plane (origin, X′ direction, and a point on the plane).
PLANE RELATIVa single incremental angle (e.g. SPB-45)One incremental spatial angle applied relative to the currently active plane. Chainable; if no plane is active it acts on the untilted system.
PLANE AXIALaxis angles A B CThe rotary-axis positions directly — not a plane orientation. Works with a single rotary axis. Ignores basic rotation, and SYM/SEQ, COORD ROT and TABLE ROT have no effect on it.
PLANE RESET(none)Cancels the tilt and clears the PLANE function. Always use PLANE RESET to end tilting — not a bare SPA0 SPB0 SPC0.

A worked spatial example from the manual: PLANE SPATIAL SPA+27 SPB+0 SPC+45. A vector example: PLANE VECTOR BX0.8 BY-0.4 BZ-0.42 NX0.2 NY0.2 NZ0.92. A three-point example: PLANE POINTS P1X+0 P1Y+0 P1Z+20 P2X+30 P2Y+31 P2Z+20 P3X+0 P3Y+41 P3Z+32.5. Each still needs a positioning word appended before it will run.

Part Two: The Mandatory Positioning Behavior

The second half of the block tells the control what to do with the rotary axes when the plane is activated. One of three words is required (except that PLANE RESET can also take one):

WordExtra inputBehavior
MOVEDIST, FAutomatically tilts the rotary axes and makes a compensating linear move so the tool stays a set distance from the pivot. DIST sets that distance (the rotation center relative to the tool tip); F the feed rate.
TURNF (optional DIST)Tilts the rotary axes only — no compensating linear move. The linear axes hold; you handle clearance yourself.
STAY(none)The control calculates the rotary-axis angles but does not move. It stores them in Q120 (A axis), Q121 (B axis) and Q122 (C axis) so you position the rotaries in a following block, e.g. L A+Q120 C+Q122 F2000.

The canonical full line, geometry + positioning together:

PLANE SPATIAL SPA+27 SPB+0 SPC+45 MOVE DIST50 F1000

— define the plane by spatial angles, tilt into it automatically keeping the tool 50 mm off the pivot, at 1000 mm/min. Other real forms from the manual: PLANE SPATIAL SPA-90 SPB+20 SPC+0 TURN F5000 and PLANE SPATIAL SPA+0 SPB-45 SPC+0 MOVE DIST50.

Choosing the Solution: SYM / SEQ and COORD ROT / TABLE ROT

A given plane orientation is usually reachable by two combinations of rotary-axis positions (the classic “wrist flip”). The optional SYM / SEQ keyword picks which one. SYM is the standard variant and is symmetric about the master axis’s zero; SEQ assumes the master axis is at its home position (0°). You append SYM+/SYM- or SEQ+/SEQ- to steer around a singular posture or a travel-limit collision. On PLANE AXIAL the keyword has no effect (you already gave explicit axis angles).

The optional COORD ROT / TABLE ROT keyword selects the transformation type — how a residual rotation about the tool axis is realized. With COORD ROT the control positions the free rotary axis to 0 and orients the plane by a coordinate rotation. With TABLE ROT the control turns the rotary table to carry that rotation. Which is appropriate depends on whether SPA/SPB are zero (pure C-rotation) or not; the manual gives the case table. Like SYM/SEQ, these have no effect on PLANE AXIAL.

PLANE vs. Fanuc G68.2 — Same Idea, Different Grammar

HEIDENHAIN’s PLANE function is the direct counterpart of Fanuc’s G68.2 tilted working plane. Both let you program a feature in its own tilted frame. The big structural difference: on Fanuc, defining the plane (G68.2) and orienting the tool to it (G53.1) are separate blocks; on HEIDENHAIN the positioning word (MOVE/TURN/STAY) folds that decision into the same block. And where G68.2 defaults to Z-Y-X Euler angles, PLANE SPATIAL uses spatial angles about the non-tilted axes — convertible, but not identical numbers. To keep the tool tip on the contour during the tilt (rather than only after it), pair PLANE with FUNCTION TCPM / M128, the analog of Fanuc’s TCP.

Kinematics, Options & Machine Parameters

Unlike Fanuc — where you can point at numbered kinematics vectors — Heidenhain keeps the actual machine geometry (which axes are head vs. table, the link and pivot offsets, the axis directions) inside the manufacturer’s kinematic model. You don’t set it, you inherit it. What the manuals do expose to a programmer is the head-vs-table behaviour, a few gating machine parameters, and the axis-selection words.

Head vs. table — what actually changes for you (TNC7 Setup manual 1358774-24, §10.3.1):

  • Table rotary axes: the table tilts, so the workpiece’s position in the work envelope moves — your clearance and collision picture moves with it.
  • Head rotary axes: the head tilts, the workpiece stays put, but at least two linear axes no longer run parallel to the untilted base coordinate system.
  • Mixed: PLANE (except PLANE AXIAL) resolves the orientation regardless of which physical axes carry the motion — which is exactly why you program spatial angles, not axis angles, on odd kinematics like a 45°-B head.
Option / parameterWhat it does
Option 8 — Advanced Function Set 1 (#8 / #1-01-1)The PLANE / tilted-working-plane function and rotary-table machining. Required.
Option 9 — Advanced Function Set 2 (#9 / #4-01-1)Needed to hold the tool tip on path in the tilted plane (FUNCTION TCPM / M128). Travels with option 8 on real 5-axis work.
rotateWorkPlane (MP 201201)The MTB parameter that decides whether tilting the working plane is allowed on the machine at all.
planeOrientation (MP 201202)Whether legacy Cycle 19 WORKING PLANE input is read as spatial angles or axis angles.
M138Selects which rotary axes take part in the spatial-angle solution. On a machine with three rotary axes (or a mixed head+table you want to constrain), PLANE SPATIAL can throw a “too many solutions” error without it.
3D-ROT window (manual mode)Restores/holds a tilt in manual mode. If the rotary-axis positions don’t match its angles you get “Working plane is inconsistent” and manual moves/probing alarm. Its “Tool axis” item is relevant only for head rotary axes.
Spindle axis = Z; ≥ 2 rotary axesPrerequisite for every PLANE variant except PLANE AXIAL (which allows a single rotary axis).

Options from 892903-29 “Software options”; head/table behaviour and MPs from TNC7 Setup manual 1358774-24 §10.3 (TNC 640 Setup 1261174-25 carries the same); M138 from 1358773-24 §19.4.13.

See also: FUNCTION TCPM / M128 (keep the tool tip on path while the plane tilts) and 3D basic rotation & preset from probing (true the setup before you tilt into it). The Fanuc equivalents are G68.2 tilted working plane and TCP (G43.4/G43.5); on Siemens the same job is done by CYCLE800 (swivel plane) with TRAORI for tool-tip control. For the concept across all three controls, start with the 5-axis TWP & TCPM cross-control primer.

Source: HEIDENHAIN TNC 640 Klartext Programming User’s Manual, 892903-29 (01/2021) — §11.2 The PLANE function: Tilting the working plane (option 8), p. 427 (variants pp. 432–444, positioning MOVE/TURN/STAY p. 447, SYM/SEQ p. 450, transformation type p. 453). Equivalent content in the TNC7 Klartext manual (1358773-24).

Have a question or want to contribute?

Contact us with corrections, additions, or topics you'd like covered.

Get in Touch