Tool change gcode
I have trouble understanding the gcode generated by PrusaSlicer at tool change:
;WIDTH:0.395287 G1 X192.533 Y120.739 E10.10279 ; infill G1 E.10279 F3000 ; retract for toolchange G92 E0 ; reset extrusion distance ; Filament-specific end gcode ;END gcode for filament M0 T0 ; change extruder G92 E0 ; reset extrusion distance ; Filament gcode G1 X180.502 Y119.103 F9000 ; move to first perimeter point G1 E10 F3000 ; ; unretract ;TYPE:Perimeter ;WIDTH:0.45 G1 F3600 G1 X193.541 Y119.103 E10.16641 ; perimeter
There is retraction 10 mm before the END gcode for filament (which has no actual code).
Then the printer gcode does `M0`, nothing else (it's what I put in the printer gcode for tool change).
Then there is other code which I cannot control, `T0`, reset extrusion distance, move to the print and unretract.
Here is what I don't understand: PrusaSlicer seems to assume that the filament in the _new tool_ also is unretracted 10 mm. What if my tool change procedure results in the filament being retracted 20 mm, or not at all? How can I control the unretract distance after tool change?
The reason I'm asking is that I'm trying to use virtual extruders for my Ultimaker 2+. There is no M600 i FW, so I need to pause the print (M0), do the filament change manually from the machine's interface. The machine's FW leaves the filament unretracted (by an amount, of which I'm not sure of yet). Therefore, I need to control the unretract.