I think I may have found an error in the GCode generator. When comparing the GCode generated for PrusaSlicer vs the others, I noticed that the Prusa GCode runs a "G91" after the M82, and prior to starting the filament extraction. That puts the printer (including the extruder) back in "relative mode", so the following G0 commands for the extruder move the filament out a total of 30mm and then back 1mm - which I don't think is the expectation - if compared to the Cura gcode.
; - 3D Chameleon Tool T{next_extruder} -
;begin switch from extruder {previous_extruder} to extruder #{next_extruder}
M117 Unloading Tool T[previous_extruder]
M82 ; turn absolute distances for the extruder
; unload extruder {previous_extruder}
G92 E0
; go to holding position to unload the stock extruder
G0 X145.5 Y291 F2000 ; <<----- EDIT THIS LINE TO SET THE INITIAL LOCATION OF THE BUTTON
; if this is the first load, then don't unload
G91 ; move to relative mode
{if previous_extruder>-1}
; cool (and size) in 1.8mm tube
G0 E-20 F4000 ; quickly retract the filament to shape it
G0 E-10 F600; slowly allow it to cool
G0 E1 F2000 ; blob elimination
After adding a "M82" after the G91, things started behaving as expected (I think) - and I feel like I have pretty good shape tip - but I cannot, for the life of me, get rid of this little string on the end of it. I have a BMG extruder on a MicroSwiss hotend.
Here is the gcode that delivered the picture above. This is PLA, which I'm printing at 205c. A feedrate of 3000 is about as fast as I can move the BMGs without terrible sounds coming from them. If I reduce the movement to the generated g-code (-20, -10 +1) I end up with a crazy amount of string (like 6 feet of super-fine wisp)
M117 Unloading Tool T[previous_extruder]
; unload extruder {previous_extruder}
G92 E0
G90 ; move to absolute mode
; go to holding position to unload the stock extruder
G0 Y292 F2000
G91 ; move to relative mode
M82 ; turn absolute distances for the extruder
{if previous_extruder>-1}
G92 E0
G0 E-50 F3000 ; quickly retract the filament to shape it
G0 E-80 F600; slowly allow it to cool
G0 E1 F2000 ; blob elimination
G0 E-50 F3000 ; quickly retract the filament to shape it
G0 E-80 F600; slowly allow it to cool
G0 E2 F2000 ; blob elimination
G0 E-10 F2000 ; quickly retract the filament to shape it
G0 E2 F2000 ; quickly ram the filament to shape it
G0 E-10 F2000 ; quickly retract the filament to shape it
G0 E2 F2000 ; quickly ram the filament to shape it
G0 E-50 F2000 ; quickly retract the filament to shape it
G0 E-80 F100; slowly allow it to cool
G92 E0
G0 E-26 F2000 <- Clears the BMG Extruder
G92 E0
I am looking for any suggestions that might make this work better. I've tried dozens of iterations at this point, and it doesn't seem to get any better (and usually worse).
Thanks!
Good catch on the PrusaSlicer gcode... I'll fix that. As for that long string... it's due to the temperature being too high. For that change, you need to lower it. (Long thin flat strings indicate a temp that is too low and a round smooth strings indicate it's too high.) You don't need to have the temperature during a change the same as during printing... you can use the M109 command with the R parameter to set the temp.
Bill