Postprocessing 3+2 Code for Spinner U-Series on SINUMERIK 840D sl

David Krause11 min read
Motion ControlSiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

Spinner Werkzeugmaschinenfabrik GmbH (Spinner WZM Germany) builds the U-series horizontal 5-axis machining centers used in lights-out production of prismatic parts, hydraulic manifolds, and aerospace fittings. The U 1520 and U 1530 typically ship with a Siemens SINUMERIK 840D sl controller, which means shop-floor code must be written in DIN/ISO or SINUMERIK high-level language rather than the Heidenhain Klartext dialect many job shops inherit from older tooling.

3+2 machining (also called multi-axis positioning or fixed-axis milling) is the dominant roughing and semi-finishing strategy on these machines because the Spinner U-series is a lighter-duty platform. Simultaneous 5-axis motion concentrates cutting load into the rotary axes; 3+2 keeps the spindle in a stable orientation while a 3-axis G-code block runs in the rotated plane. This document explains how to author a Tebis (or comparable CAM) post-processor that emits portable 3+2 code, with an A-axis-to-B-axis mapping trick that decouples part programming from the kinematic mount of the rotary table.

Spinner U-Series Kinematics

The Spinner U 1520 and U 1530 are horizontal-spindle 5-axis machining centers built around a swiveling B-axis head combined with a rotary A-axis table (or, on some configurations, a B-axis table with a fixed spindle — field verification of the actual machine card is mandatory before posting). Three linear axes (X, Y, Z) are paired with two rotary axes that orient the tool relative to the workpiece.

Parameter U 1520 U 1530 Notes
Controller SINUMERIK 840D sl SINUMERIK 840D sl Operator panel: OP 019 black / OP 020
Spindle taper HSK-A63 (typical) HSK-A63 / HSK-A100 (option) Verify on machine data sheet
Rotary axes 1 swiveling + 1 rotary 1 swiveling + 1 rotary Head vs table mount varies
Travel X / Y / Z Verify from machine card Verify from machine card Source does not specify
Max RPM 12,000 (typical) 12,000 – 18,000 (option) Check nameplate
Tool magazine Chain / disk Chain / disk Capacity 30–60 typical
Always pull the active machine data record from the SINUMERIK 840D sl before authoring code: navigate to Diagnostics > Axis diagnostics and record the configured axis names (A1, A2, B1, C1, etc.). The Spinner kinematic chain in $NK_NAME / $NK_TYPE determines whether TRAORI or ROT must be used; do not assume.

SINUMERIK 840D sl Programming Model for 3+2

The SINUMERIK 840D sl exposes 3+2 work through two cooperating mechanisms: tool orientation commands (TRAORI) and frame rotations (ROT / AROT / TRANS). For fixed-axis 3+2 work, the most common pattern is:

  1. Define a workpiece frame with the rotary axes oriented to the active feature.
  2. Program standard 3-axis G-code (G1, G2, G3) in the rotated frame.
  3. Re-orient the rotary axes between features by issuing a new AROT or ROT block.

The SINUMERIK 840D sl Programming Manual (Basics) lists the canonical orientation frames:

; Rotate the active workpiece frame 35 deg about Z
AROT Z35
; Rotate an additional 12 deg about the new X
AROT X12
; Subsequent linear moves are in the doubly-rotated frame
G1 X50 Y-20 Z-5 F800

For true 5-axis simultaneous contouring, TRAORI is enabled and the programmer supplies tool-direction vectors instead of fixed frame angles. The Spinner U-series uses TRAORI only when the part program genuinely needs the tool to move during cut; the lighter-duty platform and the source-discussion emphasis on "lighter roughing programs" both point to 3+2 as the dominant mode.

3+2 Versus Simultaneous 5-Axis

Criterion 3+2 (Multi-axis positioning) Simultaneous 5-axis
Rotary axis motion during cut None — locked during interpolation Continuous interpolation
Code complexity Standard 3-axis G-code + frame Vector / TRAORI programming
Postprocessor effort Low to moderate High; kinematic-model aware
Surface finish Step at face transitions Continuous; smoother
Spindle load on U-series Predictable; suitable for light roughing Risk of overloading rotary drives
Heidenhain translation difficulty Low — M128 / PLANE SPA equivalent High — vector math required

A-Axis vs B-Axis Mapping: The Portable-Post Trick

The field report notes that the working post-processor was authored to "convert from an A-Axis to a B-axis so we did not have to program machine specific." This is the most important practical insight in the workflow and deserves elaboration.

Most CAM systems let the programmer specify the tool axis as a vector (typically (0,0,1) along the spindle). When posting, the postprocessor must map that vector onto the machine's actual rotary axes. Two conventions exist:

  • A-axis convention: the rotary axis rotates about the table's longitudinal axis (tilts the part). Common on horizontal-spindle tables.
  • B-axis convention: the rotary axis rotates about an axis perpendicular to the spindle (tilts the head or the table in pitch). Common on tilting-head configurations.

The trick described in the source is to author the postprocessor so that the CAM system always emits a vector that the post then resolves against a configurable mapping. A typical Tebis post variable would look like:

; Tebis / generic post variable
string RotaryAxisStyle = "B"  ; "A" or "B" — set per machine

Inside the post, the orientation block branches on this flag:

; Pseudo-code
if RotaryAxisStyle == "B"
  ; B-axis primary, A-axis secondary
  AROT B[bAngle] A[aAngle]
else
  ; A-axis primary, B-axis secondary
  AROT A[aAngle] B[bAngle]
endif

Because Tebis computes the tool vector in the CAM kernel, swapping the projection at post time does not require re-cutting the part. The same Tebis project can drive a Spinner U 1520 with B-axis table and a Spinner U 1530 with A-axis table — only the post is duplicated.

If the Spinner machine card shows the axes named A1 and B1, treat A1 as the rotary table and B1 as the swivel head (or vice versa). The default SINUMERIK kinematic mapping is configured in $NT_ROT_AX_NAME and $NT_TRAFO_NAME blocks. Modifying these requires OEM password access.

Heidenhain Klartext to SINUMERIK Translation

Many European job shops accumulate Heidenhain Klartext programs from older TNC 530 / TNC 640 controls. Migrating them to a Spinner on SINUMERIK 840D sl requires three transformations:

  1. Conversational blocks — Heidenhain's L BLK FORM 0.1 Z X+0 Y+0 Z-50 becomes SINUMERIK WORKPIECE(,,,"CYLINDER",0,0,-50,100) or a comparable G-code blank definition.
  2. Cycle callsCALL LBL "CYCLE_DEF_POCKET" translates to SINUMERIK cycles such as POCKET3, CYCLE76, or CYCLE77 depending on the operation.
  3. Plane changes (L Z+... R0 FMAX M3) — the Heidenhain M128-equivalent is the SINUMERIK PLANE SPATIAL command, which accepts Euler / vector angles and produces the equivalent AROT / ROT chain.

The Heidenhain-to-SINUMERIK translation can be performed by:

  • A purpose-built converter utility (the source notes the Spinner importer checked "with the builder and Siemens"); availability varies by region.
  • A custom Tebis / CAM post that re-emits the part from a neutral APT-CL or STEP-NC source.
  • Hand re-write for one-off parts; impractical for production runs.
Avoid a blind text-substitution script. Heidenhain conversational cycles use Q-parameters with implicit numeric ordering that does not map 1:1 onto SINUMERIK cycles. Even when block names look similar, the parameter semantics differ (e.g. Heidenhain Q206 = plunge feed; SINUMERIK CYCLE81 uses FFR). Validate every cycle on a test part before running production.

Tebis Post-Processor Strategy

Tebis is a CAM system commonly used in the European mould and aerospace job-shop market. Its post-processor language is template-driven: each NC function (rapid, linear, circle, cycle, orientation change) maps to a template that emits NC output. The field report notes that with the "latest version of Tebis," bulk posting without an on-the-floor utility was feasible — implying a stable, machine-specific post rather than a per-job translation script.

Recommended Tebis post layout for Spinner U-series + SINUMERIK 840D sl:

; Header
%_N_U1530_MPF
;$PATH=/_N_MPF_DIR
; Spinner U1530 / SINUMERIK 840D sl / 3+2 post
; Tebis version: X.Y
; Post date: YYYY-MM-DD

; === Program preamble ===
G17 G90 G54 G94
;$TC_DP1[1,1]=120  ; end mill
;$TC_DP2[1,1]=0    ; nose radius 0
;$TC_DPC[1,1]=6    ; diameter 6 mm

; === Approach / orient ===
TRAFOOF                    ; ensure no active 5-axis transform
PLANE SPATIAL SPA 0 B0 A0 STAY
ROT                         ; clear any rotation

; === Cut feature 1: 35 deg tilted face ===
AROT Z35
G1 X0 Y0 Z50 FMAX
G1 Z2 F300 M8
G1 X40 Y-15 F800
G1 X80 Y0
G1 X40 Y15
G1 X0 Y0
G0 Z50 M9
AROT                        ; clear rotation

; === Cut feature 2: 110 deg compound tilt ===
AROT Z110 A12
G1 X0 Y0 Z50 FMAX
G1 Z2 F300 M8
G1 X-25 Y-20 F800
G1 X-50 Y0
G1 X-25 Y20
G1 X0 Y0
G0 Z50 M9
ROT

M30

Key template decisions:

  • Emit TRAFOOF at every tool change to guarantee the next cut starts from a known orientation state.
  • Prefer AROT (additive rotation) over ROT (absolute rotation) so nested features inherit the parent frame.
  • Emit ROT with no arguments at the end of each feature to clear the frame; relying on the controller to "remember" state across tools is a frequent source of crashes.
  • Use PLANE SPATIAL ... STAY only when the machine truly supports it (it does on 840D sl with active TRAORI); otherwise pre-rotate with AROT chains.

Light-Duty Roughing Strategy

The field report explicitly notes that "the Spinner is a lighter duty machine and needs lighter roughing programs made anyway." Treat this as a hard engineering constraint, not a stylistic suggestion. Recommended rules:

Parameter Light-duty rule of thumb Source of limit
Radial engagement (ae) ≤ 25 % of cutter diameter for roughing Spindle / drive thermal
Axial engagement (ap) ≤ 1× D for roughing, ≤ 0.5× D for finishing Z-axis spindle bearing
Feed per tooth (fz) Conservative HSS lookup for chosen carbide grade Cutter manufacturer
Ramp angle ≤ 5 deg for solid carbide, ≤ 10 deg for indexable Rotary axis drive torque
Spindle ramp-up Use spindle ramp from cycle, not M3 in air Coupling shock

When the post emits orientation changes, never position the rotary axes while the spindle is engaged with the workpiece. Insert G0 Z[clearance] before every AROT to retract, then plunge back at the new orientation.

Verification Procedure

Before running a post-processed program on a Spinner U-series, execute the following verification sequence. Each step is mandatory.

  1. Static simulation. Run the G-code through a SINUMERIK-aware simulator (e.g., Siemens SINUMERIK Operate virtual machine). Verify no axis exceeds soft limits.
  2. Dry run at 0 % feed override. Load the program, single-block on, rapid override 25 %, feed override 0 %. Watch for collisions in spindle-to-fixture reach.
  3. Single-block first cut. Engage the spindle at low RPM (e.g., 500 RPM) and verify chip formation before ramping to programmed values.
  4. Frame state verification. At the end of each feature, query the active frame on the controller: $P_UIFR[1] = ROT X0 Y0 Z0. A non-zero residual frame indicates the post leaked state.
  5. Tool offset sanity. Confirm $TC_DP6 / $TC_DP15 (length 1 / 2) reflect the measured tool, not the catalog value. A wrong tool length on a 5-axis machine can drive the spindle into the table.
  6. Rotary axis drive temperature. After 30 minutes of production, check $AA_LOAD[Ax] on the rotary drives. Sustained load above 80 % rated indicates the post is too aggressive for the U-series duty cycle.

Common Post-Processor Pitfalls

Symptom Likely cause Fix
Tilted feature ends up at wrong angle ROT used instead of AROT between nested frames Switch to additive rotation; emit ROT (no args) at frame boundaries
Spindle moves during orientation change Post did not retract Z before AROT Add G0 Z[clearance] template before every orientation block
Tool length offset wrong after orientation Length offset applied in machine frame, not in tilted frame Verify $TC_CARR1..14 or use frame-aware length compensation
Post works on U 1520, fails on U 1530 Hard-coded axis name A1/B1 in post Pull axis names from machine data record; parameterize post
Cycle drill depths misinterpreted Heidenhain Q-param order assumed Map each cycle parameter explicitly in the post
Spindle overload alarm 25050 Engagement too aggressive for U-series duty Reduce ae/ap, re-post

Spare Capacity and Throughput Notes

Because the U-series is intentionally light-duty, throughput gains on a Spinner come from cycle-time reduction, not from pushing the spindle harder. Typical 3+2 strategies that improve cycle time without overloading the spindle:

  • Indexing in rapid: position rotary axes while the spindle is in a cleared Z-plane, never while cutting.
  • Consolidating tilted features: combine multiple features at the same orientation into one cut to minimize AROT blocks.
  • Rest-machining: leave 0.3–0.5 mm stock for a separate finishing pass with a ball end mill at low ae, then a third pass with a parallel-to-curve strategy for surface finish.

Operator Handoff Checklist

  • Post file version, Tebis version, and post date printed at top of NC file.
  • Active workpiece frame and G-code group state at program start documented.
  • Tool list with measured lengths, not catalog lengths.
  • Fixture coordinate system referenced in program header.
  • First-cut operator instruction sheet attached.

What controller do Spinner U 1520 and U 1530 machines use?

Both ship with the Siemens SINUMERIK 840D sl. Always confirm by reading the machine data record on the controller rather than assuming from the model number, since Spinner offers retrofit kits.

Should I use TRAORI or ROT for 3+2 work on a Spinner?

For pure 3+2 (fixed-axis) roughing, use AROT / ROT frames and disable any active TRAORI. Enable TRAORI only when the operation requires simultaneous tool-tip / tool-vector motion during cut.

Why does the postprocessor convert A-axis output to B-axis output?

It decouples part programming from the kinematic mount of the rotary table. The CAM kernel emits a tool vector; the post then projects that vector onto whichever rotary axis naming the target machine uses, so the same Tebis project can drive a B-axis-table U 1520 and an A-axis-table U 1530 without re-cutting.

Can Heidenhain Klartext code be translated automatically to SINUMERIK?

There is no fully automatic, lossless converter. Heidenhain Q-parameter ordering does not map 1:1 onto SINUMERIK cycle parameters, so any text-substitution approach must be validated against each cycle. Practical workflows either re-cut from STEP-NC / neutral geometry or use a Tebis post that re-emits the part on a clean toolpath.

What is the safe radial engagement for roughing on a Spinner U-series?

Stay at or below 25 % of cutter diameter for radial engagement (ae) and 1× D for axial depth (ap). Push these limits only after measuring rotary-drive load on a representative cut; sustained load above 80 % rated on the A or B drive indicates the program is too aggressive for the platform.

Back to blog