Notifications
Clear all

Tool change gcode  

  RSS
Gauthier
(@gauthier)
Eminent Member
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.

Posted : 17/06/2022 11:30 am
Share: