Inserting a pause using S3D and my Duet
-
Hey all!
Trying to kick out some multi-color TPU prints… I'm trying to pause inbetween colors at a certain layer, and move the head towards home so I can manually change filament and then resume.
I've tried a few scripts that dont' seem to work w/ the Duet's language, so I'm hoping for some input.
Script I found in the internet that doesn't work:
{REPLACE "; layer" "M117 Layer"}
{REPLACE " Z = " " Z="}
{REPLACE "\nM117 Layer 17, Z=" "\nG1 X10 Y10\nM0\nM117 Layer 17, Z="}
{REPLACE "\nM117 Layer 113, Z=" "\nG1 X10 Y10\nM0\nM117 Layer 113, Z="}I'm not a script wizard, so if anyone has any semblance of a working version of this, I'd really appreciate a copy of it!
Thanks,
VG -
You can use an S3D process and a macro, look at this thread: https://duet3d.com/forum/thread.php?id=4570#p40728
-
that's what I need! now.. any chance you can explain it so an idiot can get it? haha
Where does the macro exist? If I wanted a pause at layer 115, what exactly would my S3D Script look like?
Thanks for your help, I apologize for my stupidity haha
-VG
-
Ok, you need a macro on the duet which controls your filament change. You create this directly via DWC in the macro area. Take my macro out of the thread as inspiration. Name it eg. "ColorChange"
In S3D use the "Variable Settings Wizard" (Menue "Tools") to generate a second (third… and so on) processes depending on the layer height.
Rename this process to something like "Color2" (Color3, Color4...) (doubleclick on the process and change the name in the first line of the fff settings)In the postprocessing area insert:
{REPLACE "; process Color2" "M98 P/macros/ColorChange"}
{REPLACE "; process Color3" "M98 P/macros/ColorChange"}
{REPLACE "; process Color4" "M98 P/macros/ColorChange"}Color2 is the name of the process
M98 is the Gcode to call the macro
/macros/ is the path to the macro on the duet
ColorChange is the name of the macroThis is all you need, pretty simple. You can leave the Replace lines in the postprocessing also for single color prints, because they do nothing without a renamend process.
-
I'm using this to pause the print after layer 112 is done, and before it starts layer 113:
{REPLACE "\n; layer 113," "\nM226\n;layer 113,"}
-
I'm using this to pause the print after layer 112 is done, and before it starts layer 113:
{REPLACE "\n; layer 113," "\nM226\n;layer 113,"}
I was hoping for something simple like this! but for some reason it doesn't work… do you just put it in the post processing box? or somewhere else?
-
Ok, you need a macro on the duet which controls your filament change. You create this directly via DWC in the macro area. Take my macro out of the thread as inspiration. Name it eg. "ColorChange"
In S3D use the "Variable Settings Wizard" (Menue "Tools") to generate a second (third… and so on) processes depending on the layer height.
Rename this process to something like "Color2" (Color3, Color4...) (doubleclick on the process and change the name in the first line of the fff settings)In the postprocessing area insert:
{REPLACE "; process Color2" "M98 P/macros/ColorChange"}
{REPLACE "; process Color3" "M98 P/macros/ColorChange"}
{REPLACE "; process Color4" "M98 P/macros/ColorChange"}Color2 is the name of the process
M98 is the Gcode to call the macro
/macros/ is the path to the macro on the duet
ColorChange is the name of the macroThis is all you need, pretty simple. You can leave the Replace lines in the postprocessing also for single color prints, because they do nothing without a renamend process.
Thank you so much! I'm going to try and implement this right now!
-
Ok, you need a macro on the duet which controls your filament change. You create this directly via DWC in the macro area. Take my macro out of the thread as inspiration. Name it eg. "ColorChange"
In S3D use the "Variable Settings Wizard" (Menue "Tools") to generate a second (third… and so on) processes depending on the layer height.
Rename this process to something like "Color2" (Color3, Color4...) (doubleclick on the process and change the name in the first line of the fff settings)In the postprocessing area insert:
{REPLACE "; process Color2" "M98 P/macros/ColorChange"}
{REPLACE "; process Color3" "M98 P/macros/ColorChange"}
{REPLACE "; process Color4" "M98 P/macros/ColorChange"}Color2 is the name of the process
M98 is the Gcode to call the macro
/macros/ is the path to the macro on the duet
ColorChange is the name of the macroThis is all you need, pretty simple. You can leave the Replace lines in the postprocessing also for single color prints, because they do nothing without a renamend process.
Thank you so much! I'm going to try and implement this right now!
Quick question! Is it not possible to do this from ONE process (and just have multiple pauses?) or do I need to print using multiple processes to make this work? (whatever works is fine, just curious!)
-VG
-
nevermind, answered my own question, that's where it knows when to stop and start printing! got it!
-
First test print going now… I shall report my failures and or victories! Thanks guys!
-
M291
Error: unsupported command: M291 -
I guess you must be using old firmware. M291 was introduced at version 1.19 AFAIR.
-
1.18.1. Time to update!
-
gonna do it in the morning… want to finish this print I started =\
-
nevermind, answered my own question, that's where it knows when to stop and start printing! got it!
Right! I think that's the easiest way.
-
I guess you must be using old firmware. M291 was introduced at version 1.19 AFAIR.
I've used it with 1.20 and 1.21. Btw David, great work!
-
@mrac1 OKAY! Back to this.. Finally updated, and Calling the macro generates a popup window, but doesn't pause the print, or move the print head out of the way, etc. So, the Macro is calling, but it's not doing anything other than generating an OK button. Thoughts?
My Macro Script (Super simple):
M400 ; Wait for moves to complete
G1 X10 Y10 F3000 ; Move nozzle to the front
M291 P"Change Filament" ; Display message
G1 R1 ; go back to the last print move