Automated print cycles
-
Hello everybody
I have a system of automatic printer emptying under development and The mechanics are looking solid while the way of actually getting the printer to start working on next file in the DWC or the SD card is somewhat blurry for me. I can´t see DWC offering "Cueing" neither have I seen anything towards that in any Duet related sites.
Have I just missed those or is it so that there is no way now to queue prints and launch them by some trigger activated macros?
Thanks!
-
Currently there is no print queueing facility in either RRF or DWC. But it could be added. What would trigger the start of a new print?
-
Hi David
I was hoping you to answer
Mechanical switch would be practical. That would be hit when the ejecting cycle finishes and the machine is ready for the new round.
-
If the firmware was to do this, then I think the following additions would be needed:
1. A print queue maintained on the SD card.
2. A means to edit that print queue. Probably the easiest approach is to edit it in in DWC. If the print queue file was held in a single file in /sys then you could even do this in the present DWC, although adding print queue editing functions to DWC would be preferable.
3. A new gcode command meaning "Start printing the next file in the print queue", with implicit removal of that file from the queue when the print completes.
Then the existing trigger feature could be used to kick off the next print. Does that sound sufficient to you?
-
Sounds great.
Just few more questions:
Could DWC queue just show with a "tick" the files that are printed so that when wanting a new round of a part you would not have to find it again in the computer (or phone) for dropping in the queue?When needing several copies of a part would there have to be as many times the file in the queue or could there be an indicator for the amount of the copies in DWC to be made?
-
Can you run sub routines on a Duet like regular CNC machines do? If so the you would have a main program that would call up the sub program and run it as many times as you ask for.
An example I use all the time is this,
%(O1221)
G0G90G54 (Any necessary movements)M98 P(Program Name) L(loop how many times) So it would read like this M98 P1000 L20. This would call up program named 1000 and run it 20 times. After the last time the program runs then the main program would move onto the next line.
The only difference in the sub program (in my example program 1000) is at the end of the sub it has an M99 which tells the controller to jump back to the main program.
So you could have a main program that prepares the printer, Prints the part with the sub program, have the part ejection routine at the end of the sub program, then the main program would just keep looping the sub program how every many times you you program in with the L and then follow whatever print end things you program at the end of the main program.
With this kind of arrangement you can decide how many parts to run and easily edit the main to run them.
-
Looks like an interesting and working way to do it but surely the visible queue would be more user firendly.
-
Tim you can run macros (named sub programs, stored on the SD card) using a gcode (M98 PMacroname.g)
https://duet3d.com/wiki/G-code#M98:_Call_Macro.2FSubprogram
sub programs end at end of file or M99
macros call call a file anywhere in the SD card with absolute paths so its viable to write a macro file that prints a /gcodes/file.g as many times as you want.I think a dedicated print queue is nicer but it could be a gcode file that is stored on the SD card that looks to all intents and purposes like a macro.