I’ve only recently (OK, so it’s been eight weeks) tinkered with the pause/unpause gcode scripts, and these are the ones that do serve the purpose on my TronXY X5S. Just throwing this out here, maybe someone has use for it or some suggestions how to improve / modify …
Begin Pause:
G91 ; Relative movement
G1 Z5 ; Move head away vertically
G1 E-6 F1000; Retraction move, take away filament pressure
G90 ; Absolute position ON
G1 X0 F2500 ; Move to left edge of print bed
G1 Y0 ; Move to front position (two moves to avoid risk of running into bed clamps)
G91; Relative movement
G1 E-80 F1000; retract filament into bowden for easier swap
G90; Absolute position ON
After this, the print head is at its 0/0 position, the filament can be pulled back easily and is out of the hotend.
Now the "before resume" script:
G91 ; Relative movement
G1 E80 F300; Reposition filament (or purge if new filament has been pushed in by hand)
G90 ; Absolute position
G1 Y50 F3000; Move past the front left clamp to be safe
As the gcode contains absolute values, the print head will return to the next position on the object and continue printing. There'll be a little cleanup involved at the stop/start, and there's the risk of losing one linear motion track, e.g. pausing a cube might cause one line of filament to go "missing" because the printer will continue from the next position in the GCode and not the one where it left off, I guess?
Like I said, just throwing it out there. I’ve tried it with this gear cube stand: