Change print speed
-
usually, this takes a post-processor script. The details vary by slicer.
OR, you can hand-edit the Gcode. Most slicers leave comments where a layer changes. You can change all the speeds in the next block, up to the next layer change comment.
-
You can do that very easily in Prusaslicer.
https://help.prusa3d.com/en/article/insert-pause-or-custom-g-code-at-layer_120490 -
I've wanted to ask this for some time now: is it possible to define different acceleration/jerk limits with conditional gcode?
I'd prefer to do it on the firmware level rather than the slicer, basically just for the first layer (or X mm Z height).
I'm running rather high accelerations and jerk settings when protoyping as the prints still come out fine with 9k acc and 2k jerk, but I'm having trouble on tight edges on the first layer with that.
If I do that in the slicer I'm killing the possibility to tune settings on the fly as it always resets to the slicer defined values.
-
@Danal if u change the speed editing the gcode....
If u change the speed un layer 5... This new speed last until the print finish.... Ir turn default speed when layer finish?Another idea its insert the gcode for change the speed factor in Dwc...
-
@bberger said in Change print speed:
I've wanted to ask this for some time now: is it possible to define different acceleration/jerk limits with conditional gcode?
I'd prefer to do it on the firmware level rather than the slicer, basically just for the first layer (or X mm Z height).
I'm running rather high accelerations and jerk settings when protoyping as the prints still come out fine with 9k acc and 2k jerk, but I'm having trouble on tight edges on the first layer with that.
If I do that in the slicer I'm killing the possibility to tune settings on the fly as it always resets to the slicer defined values.
It doesn't take conditional gcode. Just put a definition like you would put in config.g, put that in your print job where you want the new values to take effect. Duet executes configuration at the moment they are encountered.
-
@peirof said in Change print speed:
@Danal if u change the speed editing the gcode....
If u change the speed un layer 5... This new speed last until the print finish.... Ir turn default speed when layer finish?Another idea its insert the gcode for change the speed factor in Dwc...
Depends entirely on the G-Code. For example, most slicers put the speed at the start of each layer. And more. The file I am printing at the moment has about 175,000 lines and about 6700 feedrate specifications.
-
@Danal said in Change print speed:
@bberger said in Change print speed:
I've wanted to ask this for some time now: is it possible to define different acceleration/jerk limits with conditional gcode?
I'd prefer to do it on the firmware level rather than the slicer, basically just for the first layer (or X mm Z height).
I'm running rather high accelerations and jerk settings when protoyping as the prints still come out fine with 9k acc and 2k jerk, but I'm having trouble on tight edges on the first layer with that.
If I do that in the slicer I'm killing the possibility to tune settings on the fly as it always resets to the slicer defined values.
It doesn't take conditional gcode. Just put a definition like you would put in config.g, put that in your print job where you want the new values to take effect. Duet executes configuration at the moment they are encountered.
I may have been not clear enough on this. I do not want that in my gcode file. I know I could do that, but my target would be to make that tweakable specifically in the firmware.
I don't want to re-slice parts for tuning the first layer. That way one could adjust those settings depending on the filament loaded / the surface installed.
Don't want to derail the thread further though, from my quick view I thought the OP and me were after the same thing. I'll dig into the docs.
-
@bberger said in Change print speed:
Don't want to derail the thread further though
I think they are strongly related... so if you did change accel/jerk for layer 1 via conditional G-Code, where would that G-Code go?
-
@Danal said in Change print speed:
@bberger said in Change print speed:
Don't want to derail the thread further though
I think they are strongly related... so if you did change accel/jerk for layer 1 via conditional G-Code, where would that G-Code go?
deamon.g
The thing that I'm actually most concerned with is resource consumption (cpu, ram) in that case as the file gets periodically and constantly called.
I know you can add a G4 timeout, bit it still gets called pretty frequently and you can't have different timeouts for different daemon tasks.
So in the end my question is: is there a better way / more efficient way to solve this on the Duet side of things? Maybe a callback that gets triggered a specific Z height or maybe Z change.
-
@bberger said in Change print speed:
The thing that I'm actually most concerned with is resource consumption (cpu, ram) in that case as the file gets periodically and constantly called.
The overhead would be pretty low to decide your not on the first layer, and skip the rest of the macro.
Having said that, an asynchronous task periodically polling to change a setting in another asynchronous task is is very poor design. The changes will 'lag' an average of 1/2 the cycle time of the daemon, as vs where they 'should' occur. (In any system, not just Duet.)
I know you already said you don't want to put the commands in the job via the slicer... but... when doing things that affect specific layers, that is the correct way to do it. That is literally the reason slicers offer the feature of inserting arbitrary gcode at layer changes.
If you want to be able to change something on the printer itself to "tune" this, define macro 'layer0.g' and 'layerx.g' with the settings you want for each, and then have the slicer insert M98 P"/macros/layer-.g" at the appropriate points (I believe only two places). That "abstracts" or if you prefer "indirects" the actual settings into the macro files, so you can change them at the printer, without re-slicing.