Solved Tool Change retraction confusion
-
I am having a bit of a hard time understanding something that should be simple. I have a pebble wiper, that purges a pellet and whacks it with a servo after every tool grab. After the pebble is formed, I retract 4.8mm, before print resumes.
; prime.g G92 E0 ; Reset Extrusion G1 E-4.8 F1500 ; Retract
In my slicer settings, I am confused as to if the unretract will undo this retracted state, as in generated gcode, it looks like there is an additional retract after my tool is grabbed, and it undoes that retract obviously, but does the printer know about and undo the other 4.8mm retraction too?
; slicer code ; tool change T1 G1 E-4.8 F2400 G1 X137.29 Y76.988 F21000 G1 Z.2 G1 E4.8 F2400
I am confused as to if the printer knows about that extra retract in prime.g, and does it undo that when extrusion starts again?
- Does the G1 E commands undo the extra retraction I have in my prime.g?
- Do I use postX.g scripts retract 4.8mm or do I use PrusaSlicer per tool retraction when stowing tools? Does this make any difference? As I like to use PrusaSlicer's wipe and retract.
- When I grab a tool, I unretract, purge, then retract to stop drooling, but the first time any tool is used, it seems to not be unretracting the right amount before first line. So there is a initial underextrusion.
-
@marzubus the printer firmware only knows about retraction if you configure your slicer to use firmware retraction (G10 and G11 commands) and configure the amounts of retraction and reprime using M208. If you do not use firmware retraction then it is your slicer that is in control of retraction, apart from any manual retract and reprime commands that you use, for example in tool change files or pause.g and resume.g.
It may be that your slicer retracts filament from the old tool before doing a tool change, and primes the new tool after a tool change.
If you use firmware retraction then RRF tracks the retraction state and will ignore a G10 command if the filament is already retracted by a previous G10, or a G11 command if the filament is not retracted.
-
@dc42 Does that mean I can use G10 and G11 in the script g-codes, while the job uses normal G1 E extrusion?
-
@marzubus you could, but I don't see how that would help.
-
@dc42 I think I am just over thinking this, if I use
G1 R2
I can zip back to the print position rapidly with only minor retraction.prime.g
G91 ; relative pos G1 Z3 F1000 ; raise Z G90 ; back to absolute pos M106 S0 ; fan off M109 ; wait for temp M42 P0 S1 ; turn servo on M280 P0 S100 ; servo home 100 degrees G4 P100 ; wait 1 second ; move near pebble wiper, two movements to come in from ; the right edge so any tail hangs over the far edge. G0 X-35 Y160 F30000 G0 X-42 Y161 F24000 G0 X-39 Y153 F24000 ; move to pebble wiper purge spot ; make a pebble G1 E1.5 F200 ; purge reduce from 5 to 3 G4 P200 ; wait 200ms G1 E5 F300 G4 P200 ; wait 400ms; G1 E10 F500 ; purge G1 E5 F360 ; Pebble Purge M106 S1 ; fan 100%, cool and harden the pebble G1 E1 F240 ; Final Slow Pebble Purge G4 P14000 ; Dwell for 12s, a bit long, need to tune down this. ; do a minor retraction G92 E0 ; reset extrusion G1 E-0.4 F1500 ; Retract a bit ; servo wack the pebble away M280 P0 S0 ; whack! G4 P250 ; Dwell for milliseconds ; zip over the brush G0 X-35 Y123 F24000 ; move across brush G0 X-39 Y200 F24000 ; back over the brush G0 X-35 Y123 F24000 ; move across brush G0 X-39 Y200 F24000 ; back over the brush G0 X-35 Y200 F24000 ; back over the brush G0 X-25 Y131 F24000 ; back over the brush G0 X-40 Y131 F24000 ; back over the brush G0 X-25 Y131 F24000 ; back over the brush M106 R2 ; Cooling Fan Off M280 P0 S100 ; servo home M42 P0 S0 ; servo off ; restore Z before moving tool back G91 ; relative pos G1 Z-3 F1000 ; lower nozzle G90 ; back to absolute pos G29 S1 ; mesh levelling on ; return to position where toolchange was initiated from G1 R2 X0 Y0 Z2 F50000 ; Move to saved position at lightning speed G1 E0.4 F1500 ; Unretract G92 E0 ; reset extrusion
-