What features would you add to gcode?
I’d love to be able to target parts of the g-code for modification while printing…
From my previous ‘Build Plate Murder Suicide’ thread:
(stop printing object 9),
But thinking about that, I also came up with:
flow changes for perimeter and infill as separate values.
Jog layer while printing - for those times where Z is just a little bit off, but stopping and adjusting will be a major hassle…adding 0.2mm to Z would be awesome.
Pause-move-to-dump would be great for a clogged nozzle, where Resume from dump would let you re-home and restart where you left off.
Scale c-gode by X, for when your sample print is just a bit off.
‘This is zero’ - manually jog the build plate/nozzle/Z gantry, then hit this to zero everything out, AND engage the motors to positively maintain the system at that point. (for those of us who’s beds and/or nozzles fight gravity)
Most of these could be variables that were preprocessed before execution and wouldn’t add a lot of overhead to anything…but g-code is an ancient thing, and is used by lots of bigger pieces of equipment.
So what would you add?
I think that tagging sections would be great (is there a way to do that now with non-executable lines?). That would get you all kinds of variable execution. Almost everything else on this list sounds either like additional bits of g-code we’d like our front-ends to send (and then eliminate some of the standard prologue g-code that resets everything) or examples of something that I think some front-ends have, namely “pass every line through this function”. The function just has to be easy to generate.
Maybe I only do relatively simple stuff; I’ve never really felt too bad about changing the scale factor in the front end and reslicing.
Different fill % for areas. Structural areas at say 50% and non at 10% how I work around it now is with more outer layers and lower infill, or adding solid holes that trigger a shell while solid.
Are these g-code features or just slicing tricks that haven’t been widely implemented? I just realized I’d love to see some kind of g-code subroutine – imagine, for example, doing you fill by a bunch of repeated relative moves that require very little in the way of file space or planner resources (because once you’ve done it…). Then you could switch back to absolute (which you had somehow been keeping track of) and go on with the main shape.
yeah, there’d have to be some minor interpretation in the firmware, but I could see variables at the front of the g-code…
=""
=""
Then the g-code for each part would be prefaced with:
$object1 G1 X3.2 Y32.6 E3.200
Then, if you request 'don’t print object1, object1 gets set to “;” effectively commenting out all g-code for ‘object1’
I guess the question would be: what would you want to adjust during print, if you could?