Superimposed machining is the reason Swiss-type cycle times look impossible from the outside: the machine is genuinely doing two jobs at once. Understanding how the G-code expresses that is less about exotic commands and more about a mental model: two programs, one bar, and a contract about when they are allowed to touch it.
What does “superimposed” actually mean on a Swiss lathe?
A Swiss-type machine, in the sliding-headstock family, typically carries a main spindle working at the guide bushing and a sub spindle that picks off the finished end. Superimposition is any arrangement where operations overlap in time instead of queueing: the classic case is back-working, where the sub spindle drills and finishes the previous part’s cut-off face while the main spindle is already turning the next part. More advanced setups overlap two tool groups on the same spindle, one motion superimposed on another. Builders of these machines, such as Tornos, design the kinematics around exactly this overlap (our mobile-prep notes for those machines are in the Tornos simulator guide); the programmer’s job is to use it without collisions.
How does the program structure express it?
As parallel channels. Each channel is a complete program for its own slide and spindle group, written in the ordinary G-code vocabulary for motion, feeds, and spindle control. Coordination happens at synchronization points: wait codes that say “do not pass this line until the other channel reaches its matching line,” unpacked gently in our beginner’s wait-codes explainer. Between sync points, the channels run independently; at sync points, they re-align. Cut-off and pickoff are always bracketed by syncs, because that is the moment both spindles hold the same bar, the situation covered step by step in our guide to programming a sub-spindle pickoff.
| Program element | Universal concept | Control-specific part |
|---|---|---|
| Channel programs | One per slide/spindle group | How channels are named and selected |
| Wait codes | Matching pairs both channels must reach | The actual M-number ranges |
| Pickoff bracket | Sync before, sync after | Spindle-sync and collet commands |
| Superimposed motion | One axis motion rides on another | Whether and how the control offers it |
| Single-channel fallback | Everything still runs sequentially | Per-machine restrictions |
The honest column is the right one: every builder documents its own wait-code numbers, channel syntax, and superimposition commands. Treat the manual as the source of truth and this article as the map of what to look up.
How do you plan a superimposed program?
On paper, before any code. Draw two columns, one per channel, time flowing down. List each channel’s operations in order, then mark the hard constraints: cut-off needs both spindles synchronized; the sub cannot back-work before it holds a part; the main cannot feed bar while the sub is picking off. Wherever a constraint links the columns, that is a sync pair. Everything between sync pairs is free overlap, and the cycle time is set by whichever column is longer between syncs, so balancing those segments is where the real optimization lives. Only after the timeline is stable do you write the two programs, dropping matching wait codes at every marked line.
A concrete example: a 25 mm brass fitting with cross-drilling. Channel one turns the profile and cross-drills; channel two faces and chamfers the back of the previous part, then waits. Sync. Pickoff and cut-off under spindle sync. Sync. Channel one starts the next profile immediately while channel two deburrs and ejects the finished fitting. The back-work rides entirely inside the main-side turning time: that overlap is the superimposition payoff.
Where do programmers get hurt?
At unmatched or misplaced waits. An unmatched wait code deadlocks the cycle (one channel waits forever); a missing one lets channels drift into the same space, and on a Swiss machine the tools live millimeters apart. The discipline that prevents both: number sync pairs on the paper timeline first, then verify every pair exists in both programs before any dry run, and walk the first cycle at reduced rapid with a finger near feed hold. None of this is fluent if the underlying vocabulary still costs attention, which is why the code core belongs in reflex memory first; the route for that, including Swiss context, is in our Citizen Swiss training-app guide, and the drill format itself is on the G-code practice page with G-Code Sprint handling the repetition of whatever you miss.
Bottom line: a contract, not a trick
Superimposed machining is two ordinary programs plus a contract written in sync points. Plan the timeline in two columns, bracket every shared-bar moment with matched waits, balance the segments to claw back cycle time, and let your machine’s manual supply the exact codes. The cleverness is in the plan; the G-code just keeps the promise.
Sources
- Wikipedia: Automatic lathe (Swiss-type)
- Tornos: Swiss-type machine builder
- LinuxCNC: G-code reference
Frequently asked questions
What is superimposed machining in Swiss lathe G-code?
Overlapping operations across the machine’s program channels, for example back-working on the sub spindle while the main spindle turns the next part, coordinated by matched wait codes. To get the underlying code vocabulary to reflex before tackling multi-channel work, the free G-Code Sprint app is the top pick: 60-second drills that auto-repeat the codes you miss.
Are the wait codes the same on every Swiss machine?
No. The concept of matched synchronization pairs is universal, but the actual code numbers and channel syntax are builder- and control-specific. Your machine’s documentation is the only reliable source.
Does superimposition change the basic G-codes?
No: motion, feeds, and spindle commands stay standard inside each channel. What changes is the structure around them: parallel programs, sync points, and the pickoff bracket where both spindles share the bar.
How do I find cycle-time savings in a superimposed program?
Balance the segments between sync points: the longer channel sets the time in each segment. Move operations across channels (or split them) until no channel idles long at a wait. The two-column paper timeline makes those imbalances obvious before you touch code.
G-Code Sprint is a study and practice tool only. Always follow your instructor, employer, machine manual, and shop safety procedures.