Realtime Gcode Editing
-
Hi,
i'm just wondering, if it is already possible or intended to launch in the future to implement a realtime gcode editer into the RRF.
Right now, mostly an external post processor is used to change the gcode to the specific needs.
But would it be possible to let's say, impement a certain script which applies a modification to the gcode in future. So that the script is always about 200 lines ahead of the executed gcode and prepares it as to defined in the script.
This would eliminate the need of additional external software/postprocessors. Also it could take different actions for different tools without the need of the interaction of a user. All implemented in one Machine.
I would love to hear about wether if this feature would be useful or not?
-
@Philipp-R this would be most easily be implemented as a plugin running on the SBC when the Duet is running in SBC mode.
-
@dc42 thank you for the answer. Make sense to approach it in SBC mode.
But also if i don't want to introduce additional hardware, is or will it be possible to do such changes in standalone mode too.
I'm thinking of timing the preheating process for toolchanger machines with tools in standbay mode. Or simular applications. -
@dc42 I too would be interested in this as I'm experimenting with implementing different amounts of pressure advance depending on feature type. Any word on a real-time gcode editor? Or at least an option to pause a program, update the gcode, and resume?
Thanks.
-
@p8blr you can already pause the print, change the pressure advance (or input shaping, or accelerations, or almost any other machine parameter) and resume.
-
@dc42 This is true, but it was a long print and I want to define the pressure advance by feature without a few thousand human interactions. I ended up noting the layer height, stopping the program, doing a find/replace in a text editor, deleting all the lines up to the layer I left off on, and starting a new print. It would be useful if we could pause a program and edit the gcode that's yet to be printed.
This is what I was testing:
{REPLACE "; feature inner perimeter" "; feature inner perimeter\nM572 D0 S0"} {REPLACE "; feature outer perimeter" "; feature outer perimeter\nM572 D0 S0.85"} {REPLACE "; feature solid layer" "; feature solid layer\nM572 D0 S0.85"} {REPLACE "; feature infill" "; feature infill\nM572 D0 S0"} {REPLACE "; feature dense infill" "; feature dense infill\nM572 D0 S0"} {REPLACE "; feature gap fill" "; feature gap fill\nM572 D0 S0"} {REPLACE "; feature external single extrusion" "; feature external single extrusion\nM572 D0 S0.85"} {REPLACE "; feature skirt" "; feature skirt\nM572 D0 S0"}