-
Notifications
You must be signed in to change notification settings - Fork 0
05 send
Click 3. Send to RoboDK in the panel. The plugin launches RoboDK (or attaches to a running instance), loads the bundled 3DP_v0.4.rdk station, adds the toolpath as a Curve Follow object, binds it to the 3DP_Template machining project, and triggers program regeneration — all via a Python subprocess that talks to RoboDK over its API.
📷 RoboDK window after Send: station loaded, toolpath curve visible under BasePlate02, the generated program highlighted in the tree.
If the previous slice's post-slice build-volume check armed the overflow flag, Send is hard-blocked. A popup explains that the robot would crash, and the click is refused. Re-slice with the issue resolved (move the part, lower shrinkage %, expand build volume) and the flag clears on the next successful slice.
📷 The "robot would crash, Send blocked" popup.
- Combine frames — skirt + base + part frames concatenated into one continuous stream.
-
Serialize to JSON —
FrameSerializerwrites the frames + RoboDK paths to a temp file. -
Spawn Python subprocess —
cmd.exelaunchespython <generated script>with the JSON path; stdout/stderr redirected to%TEMP%/ccl_clay3dp_<TIMESTAMP>.log. -
Python connects to RoboDK —
Robolink()auto-launches RoboDK if not running. If RoboDK is already running with a different station, you get a "replace session?" confirmation. -
Load station —
setParam Unsaved=0(suppress save-prompt),CloseStation,AddFile station_template.rdk. -
Add curve —
AddCurvewith the combined skirt+spiral+part curve. -
Bind — find the
3DP_Templatemachining project, callsetMachiningParameterswith the curve. - Hand off — Python keeps running while RoboDK regenerates the program. C# returns after a 5 s wait that catches fast failures.
For the full diagram with every gate and call, see ARCHITECTURE.md § 4.
| Plugin setting | RoboDK parameter | Effect |
|---|---|---|
FeedRate |
SpeedOperation |
Operation speed along the curve |
TravelSpeed |
SpeedRapid |
Approach / retract speed |
SpindleSpeed |
CallPathStart event |
S<value> inserted before first curve point |
NozzleTool |
PoseFrame |
T10 / T11 / T12 frame becomes the active reference |
| (always 0) | ApproachRetractAll |
Disabled — skirt + part are one continuous path |
(always S1) |
CallPathFinish event |
Extruder off after last curve point — see G-code conventions |
| (always 0) |
Rounding / RoundingOn
|
No blending — KUKA CNC handles via #HSC
|
The Python script's stdout / stderr is captured to %TEMP%/ccl_clay3dp_<TIMESTAMP>.log. The path is logged by the plugin on each Send. If RoboDK opens but no program appears, this log is your first stop — it'll show exactly which API call hung or errored.
📷 Example log file content showing a successful Send sequence.
For first-send issues specifically, see Troubleshooting on the Install page.
Next: 6. Post-process to KUKA.