Skip to content

06 post process

Christophe Barlieb edited this page May 5, 2026 · 2 revisions

6. Post-process to KUKA

After Send, RoboDK has the program — but it's still in RoboDK's intermediate representation. The final step inside RoboDK is to post-process that program through the bundled KUKA CNC ISG post-processor, producing the actual G-code file the controller will run.

📷 RoboDK window with the Generate Robot Program output: the .nc file in the file picker, post-processor name visible.

How the post is invoked

The plugin's Send-to-RoboDK call assigns the post-processor to the robot programmatically — you don't pick it from a menu each run. The assignment uses the filename KUKA_CNC_2_1_ISG_CCL_3DP_WIP_MS_S_INT_HSC_WAIT_S_DELAY which must exist in C:\RoboDK\Posts\ (see Install — step 3).

To generate the actual file:

  1. In RoboDK, right-click the generated program in the station tree.
  2. Choose Generate robot program (F6) — or press F6 with the program selected.
  3. RoboDK saves the .nc file (the post writes KUKA CNC ISG G-code) to a path RoboDK reports in the status bar.

📷 Right-click context menu showing "Generate robot program" highlighted, with the keyboard shortcut visible.

What the post does

The bundled post is a modification of RoboDK Inc.'s original KUKA CNC 2.1 ISG Kernel post (Apache-2.0). CCL modifications:

  • #HSC BSPLINE smoothing — emits the high-speed cutting BSPLINE block so the controller can blend tool motion across frames continuously, no path stops at frame boundaries.
  • T<N> M6 tool change — derives the active tool from the reference frame (T10 / T11 / T12) and emits the tool-change command.
  • Extruder lead compensation — inserts a timing offset between motion and SPD command, accounting for the latency between commanding the extruder and clay actually arriving at the nozzle.
  • G4 X<seconds> dwell — converts RoboDK's G4 P<ms> to KUKA's G4 X<seconds> (divides by 1000). See G-code conventions for the unit-conversion rule.

The CCL modifications are listed in the post's file header and in the NOTICE at the repo root.

Verifying the output

Before transferring to the controller, always read the generated .nc:

  • Confirm S1 appears at the end of every path (extruder off — see G-code conventions)
  • Confirm T10 M6 (or T11 / T12) appears at the start, matching the nozzle in your settings
  • Confirm G4 X<sec> dwell values are in the expected magnitude (seconds, not milliseconds)
  • Confirm #HSC smoothing block opens before the BSPLINE motion and closes after

📷 Annotated excerpt of a generated .nc file showing the key markers (T10 M6, S1, G4 X, #HSC ON/OFF) highlighted.

If any of these are wrong, the post-processor file in C:\RoboDK\Posts\ may be the wrong version or modified — re-copy from the release bundle.

Where the file goes

By default RoboDK saves to a path it reports in the status bar (often C:\Users\<user>\Documents\<station name>.nc or similar). For the lab's transfer-to-controller workflow, copy to the lab USB stick or shared folder per Pipeline 7 — Run.

Next: 7. Run on the robot.

Clone this wiki locally