Skip to main content Scroll Top
The Programming Pains of the Nomura NN-20J3
Prevent sub-spindle handoff crashes, front/back side errors, and XB B-axis mismatches on Nomura NN-20J3 Swiss machines with Eureka G-Code.

The hard part isn't the toolpath — it's orchestrating two spindles, front and back, static and live

The Nomura NN-20J3 is a sliding-headstock Swiss built for small, highly complex parts: a Ø20 mm bar, a main spindle and a sub-spindle each with a fine C-axis, and a dense tool layout — OD tools, static front/back drilling stations, and live cross drill/mill spindles on both spindles, up to around thirty tools. The XB variant adds a programmable 0–135° B-axis on the sub-spindle for angled machining. That density is what lets it finish intricate parts complete in one pass — and it’s what makes the programming hard. The problem isn’t drawing a toolpath. It’s the correct orchestration of operations across two spindles and multiple axes: which side, which station, which spindle, transferred at exactly the right moment and orientation, and returned cleanly.

So the mistakes on an NN-20J3 aren’t usually geometry. They’re sequence, side, synchronization, and configuration — and any one of them, on a machine with this many tools inches apart around a guide bushing, is a broken cycle or a collision.

Most frequent errors

  • Wrong main/sub-spindle handoff. If the part is transferred to the sub-spindle at the wrong moment or the wrong position, the cycle breaks — or the part is machined out of phase, with the back-side features rotated or positioned wrong relative to the front. The handoff has to align spindle position, orientation, and timing exactly.
  • Front-side / back-side confusion. The machine works both front and back, with static and live tools on each spindle. A wrong side, or the wrong tool station selected, is easy to program and hard to see in a listing — the code is valid, it just drives the wrong tool at the wrong place.
  • Inconsistent C-axis logic. Both spindles have a fine C-axis, so a small synchronization or orientation error puts cross-holes, flats, or indexed features in the wrong angular position — a mis-drilled or mis-indexed part that gauges wrong, not a crash you’d notice.
  • B-axis / XB configuration mismatch. On the 20J3XB the B-axis swivels 0–135°, so the post and the program have to match the real machine configuration. A program written for a different B setup (or a non-XB machine) angles the tool wrong — an out-of-position feature or a collision.
  • Tooling-layout / variant mismatch. The J3 and XB variants carry different tool configurations. If the program assumes a tool layout the physical machine doesn’t have — a station that isn’t there, a live tool where there’s a static one — the cycle doesn’t match the machine, and the mismatch is a wrong station or a collision.
  • Short-parts / long-parts logic. The machining length, the way the finished part is unloaded, and the transfer to the sub-spindle all need precise logic. Program a length or a transfer that doesn’t fit the part and you drop it, cut it wrong, or crash the handoff.

Why the NN-20J3 is delicate to program

The NN-20J3 is designed for small but very complex parts, with up to ~30 tools and turning, drilling, and milling on both spindles. That means the programmer has to manage a very tight sequence: position, orientation, working side, transfer, and return all have to be right, in the correct order, with the correct state at each step. And the control used (Mitsubishi Meldas or Fanuc) and the machine variant (J3 vs XB, and the specific tool layout) strongly affect how the real program behaves. The geometry of any one feature is usually simple. Keeping the whole orchestration — two spindles, two C-axes, a B-axis on the XB, front and back, static and live — consistent with the actual machine is what’s hard.

Why a listing and CAM simulation miss them

The failure is in the orchestration, not one operation. A handoff timed wrong, a back-side station selected instead of a front, a C-axis a few degrees off, a B-axis angled for a different variant — none of these are bad geometry. They’re the sequence, the side, the synchronization, and the machine configuration, which a read-through of one part of the program doesn’t reveal.

CAM simulates its own plan on an assumed machine. A CAM renders the toolpaths it generated with its assumptions about the spindles, the tool layout, and the transfer — not the real posted ISO across both systems, on the actual variant and tooling, with the real C-axis and B-axis behavior. If the program assumes a tooling layout or a B configuration the machine doesn’t have, the CAM won’t flag it, because it’s simulating the layout it assumed.

Catching these needs the real ISO executed across both systems the way the control coordinates them, on a twin of the actual NN-20J3 variant and tool layout.

Where Eureka G-Code fits

Eureka G-Code builds a digital twin of your specific NN-20J3 or NN-20J3XB — main and sub spindle, both C-axes, the actual static and live front/back tool layout, the XB’s 0–135° B-axis, the guide bushing — and executes the real ISO across both systems the way the control (Mitsubishi or Fanuc) runs it. Because the twin is built to the real variant and tooling and runs the code that reaches the control, the NN-20J3 pains surface where you can fix them at a desk:

  • A wrong main/sub handoff shows up as a transfer colliding or the part picked up out of phase, in its real timing and position, before the bar runs.
  • A front/back side or wrong-station error shows up as the wrong tool driving at the wrong place on the twin — a collision or a feature in the wrong spot.
  • A C-axis synchronization or orientation error shows up as a cross-hole or indexed feature in the wrong angular position, checked against the model.
  • A B-axis / XB mismatch shows up as the tool angled wrong — an out-of-position feature or a collision — because the twin has the real B configuration.
  • A tooling-layout / variant mismatch shows up immediately, because the twin is the actual machine’s tool layout: a program assuming a station that isn’t there, or the wrong tool type, collides or selects wrong on the twin.
  • Short/long-parts and transfer logic run on the twin with the real geometry, so a length or transfer that doesn’t fit is caught before the part drops or crashes.

Because it reproduces the control and reads the real ISO regardless of origin — posted or hand-edited — the NN-20J3 program is verified as your machine will run it, across both spindles and all axes, with collision, near-miss, overtravel, and part-vs-model in one pass. On a machine that runs bar unattended, that’s what makes lights-out safe to leave.

> Take an NN-20J3 program that works front and back and transfers to the sub-spindle — the part where the handoff, the side/station choices, and the C- or B-axis orientation all have to be exactly right — and run the real ISO across both systems on a twin of your machine in Eureka G-Code. Watching the two spindles orchestrate, the transfer land, and the tools work the right side the way the control will, before the machine does, is how a handoff crash or an out-of-phase part gets caught at a desk.

FAQ

What are the most common programming errors on a Nomura NN-20J3?

A wrong main/sub-spindle handoff (transfer at the wrong moment or position), front-side/back-side and tool-station confusion, inconsistent C-axis synchronization or orientation, a B-axis/XB configuration mismatch, a tooling-layout mismatch between the program and the physical variant, and imprecise short-parts/long-parts and transfer logic.

Why does a wrong handoff machine the part out of phase?

 Because the transfer has to align the sub-spindle’s position, orientation, and timing with the main. If the part is picked up at the wrong moment or angle, the back-side features come out rotated or positioned wrong relative to the front — or the cycle breaks at the handoff.

How do front/back side and station errors happen?

 The NN-20J3 has static and live tools working both front and back on both spindles. Selecting the wrong side or the wrong station is easy and produces valid code that drives the wrong tool at the wrong place — which a listing doesn’t reveal but a run on the twin does.

Does the machine variant (J3 vs XB) matter for the program?

 Yes. The XB adds a 0–135° B-axis on the sub-spindle and the variants carry different tool layouts, so the post and program must match the real configuration. A program written for a different variant angles the tool wrong or assumes tooling the machine doesn’t have. Eureka G-Code builds the twin to the actual variant and layout, so a mismatch is caught.

Can Eureka G-Code verify the sub-spindle transfer and both C-axes?

 Yes. It executes both systems on a twin of the machine, reproducing the main and sub spindles, both C-axes, and the XB’s B-axis, so a mistimed handoff, a C-axis orientation error, or a B-axis mismatch shows up as a collision, near-miss, or a part that doesn’t match the model before the bar runs.

Next step

Eureka G-Code — request a demonstration on a digital twin of your own machine and controller.

Run the real ISO across both spindles on a twin of your NN-20J3 — and watch the handoff, the sides, and the C/B orientation resolve the way the control will, before the machine does.

Related Articles