I do a lot of production and using Pause to change color was always a pain and no use for large productions or non casual prints so this week started to test the idea of using the nice pause.g and resume.g to make the process as painless as possible.
For this, first I had to find the perfect momento to pause on the gcode. I use Skirt with 12 layers (the same amount of layers for the Pause layer) with 5mm distance and 2 Skirt Outlines (but I suppose for really tall prints it might be better to use 3).
Then I do a search on the gcode (mind I use S3D) of the last "; skirt" Then I find something like this:
; skirt
G1 X98.056 Y59.801 F10800
G1 Z2.480 F1500
G1 E0.0000 F1500
G92 E0
G1 X99.094 Y59.554 E0.0355 F4200
G1 X99.106 Y59.551 E0.0359
Being that last G1 the beginning of the Skirt Print
So I ADD the M25 to do a Pause
; skirt
G1 X98.056 Y59.801 F10800
G1 Z2.480 F1500
G1 E0.0000 F1500
G92 E0
G1 X99.094 Y59.554 E0.0355 F4200
M25 ; Pause REPEAT Speed of previous line on next so it knows what speed to resume
G1 X99.106 Y59.551 E0.0359 F4200 ; ADDED F4200 HERE
Doing this I can be sure that the extruder was on top of the Skirt before doing the pause, so if the filament Strings it won't dirt my print.
Then the rest it's on the Duet3D macros.
I edited my pause.g to work like this:
; pause.g
; called when a print from SD card is paused
M83 ; relative extruder moves
G1 E-3 F3600 ; retract 10mm of filament
G91 ; relative positioning
G1 Z5 F360 ; lift Z by 5mm
G90 ; absolute positioning
G1 X15 Y15 F10000 ; go to X=15 Y=15
M104 S120 T0 ; Sets to a generic LOW TEMP before calling PLAColdpull Macro
G1 E5 F1600 ; Keeps pressure FAST Initial recovers from retract also
M98 Preversecowmilking.g ; Calls the COLDPULL macro
This is what I do on Resume.g
; resume.g
; called before a print from SD card is resumed
M104 S225 T0 ; Sets general Print temp for PLA
M109 S225 T0 ; Waits until it reaches 225 for PLA
M83 ; relative extruder moves
G1 E5 F100 ; Purgues 5mm where it was paused slow to realign gears
G1 E5 F300 ; Purgues 5mm where it was paused normal
G1 E-1 F2000 ; retracts 1mm before moving to resumed position
G1 R1 Z1 F6000 ; go to 5mm above position of the last print move
G1 R1 ; go back to the last print move
M83 ; relative extruder moves
And This is my ReverseCowMilking Macro (automated Coldpull) I add this macro on the SYSTEM area, otherwise I wasn't able to call it but I'm using an old 1.20RC3 version of the firmware so probably just an old bug
;reversecowmilking.g
; Semi automated coldpull for PLA
M106 S200 ; SET FANS UP
G10 P0 R70 S70
G4 S35 ; Wait 35 secs so the temperature reaches 160-170 if was a 225
M302 P1 ; ALLOW COLD EXTRUSIONS just in case
G1 E2 F15 ; Push 2mm slow to keep pressure at semi able temperature
M116 ; WAIT FOR TEMPERATURES SET TO ARRIVE before continuing
M106 S0 ; SET FANS OFF
G4 S5 ; wait for internal temperature to stabilize along filament
; starts milking the cow movement
G1 E-0.3 F100 ; retracts 0.3mm
G1 E0.1 F2000 ; reajusts 0.1mm - total 0.2
M18 E0 ; Unlocks feeder
G4 P500 ; half a sec to allow filament tension to recover & avoid grinding
G1 E-0.3 F100 ; retracts 0.3mm
G1 E0.1 F2000 ; reajusts 0.1mm - total 0.4
M18 E0 ; Unlocks feeder
G4 P500 ; half a sec to allow filament tension to recover & avoid grinding
G1 E-0.3 F100 ; retracts 0.3mm
G1 E0.1 F2000 ; reajusts 0.1mm - total 0.6
M18 E0 ; Unlocks feeder
G4 P500 ; half a sec to allow filament tension to recover & avoid grinding
G1 E-0.3 F100 ; retracts 0.3mm
G1 E0.1 F2000 ; reajusts 0.1mm - total 0.8 - Enough to dislock filament from hotend
M18 E0 ; Unlocks feeder
G4 P500 ; half a sec to allow filament tension to recover & avoid grinding
G1 E-10 F50 ; retracts 10mm SLOW - To avoid breaking if bond if weak
M18 E0 ; Unlocks feeder
G4 P500 ; half a sec to allow filament tension to recover
G1 E-20 F800 ; retracts 20mm medium speed - Should keep integrity
M18 E0 ; Unlocks feeder
G4 P500 ; half a sec to allow filament tension to recover
G1 E-30 F2000 ; retracts 30mm fast - Should be able
M18 E0 ; Unlocks feeder
G4 P500 ; half a sec to allow filament tension to recover
;G1 E-30 F2000 ; retracts 30mm
;M18 E0 ; Unlocks feeder
;G4 P500 ; half a sec to allow filament tension to recover
M302 P0 ; DONT ALLOW COLD EXTRUSIONS
M106 R1 ; RESTORE FAN SPEED BEFORE THE PAUSE
NOTES
I use directdrive with zge extruder, so the force, speed of the coldpull and timing should be totally different for bowden.
I release the feeder constantly to allow the filament natural elasticity to go back so I can avoid grinding the filament
I use Bondtech drivegears, so the filament grip it's perfect at all times.
Macro comments might not be accurate because I been adjusting this many times until I was able to achieve enough repeatability on my 3 printers.