This isn't that major, but I encountered this while helping someone get their autoclippy setup on their ender-3.
The problem was that the cutter servo activated after the filament had retracted from the extruder. This works fine for direct drive setups, where the cutter is on top of the extruder, but makes a bowden setup work incorrectly since the cutter is on the hotend. You can rearrange a few things in the gcode, but that may be inconvenient for some users who do not fully understand the code.
Here is an excerpt from the generated code:
; load extruder #{next_extruder}
M117 Loading Tool T{next_extruder}
{if previous_extruder>-1}
; back out the filament for cutting
G0 E-10 F500 ; retract a bit, adjust this to tune waste
; <<<< insert mechanical cutter code here! >>>>
; we skipped to here if it was extruder -1
{endif}
{if previous_extruder>-1}
; retract it back out of the extruder
G92 E0
G0 E-100 F2000
G92 E0
G0 E-100 F2000
G92 E0
G0 E-100 F2000
G92 E0
G0 E-75 F2000
G92 E0
G0 E-20 F2000 ; <<<---- if mechanical cutter, change to a positive value of at least 5mm
G92 E0
; ok - out of extruder - press button to remove it all the way
G91 ; move to relative mode
M82
; we skipped to here if it was extruder -1
{endif}
; press the button to select the new extruder
G0 Y3 F2000
{if next_extruder==0}
G4 P500 ; dwell for .5 seconds - adjust this to match your machines single pulse time
{endif}
{if next_extruder==1}
G4 P1000 ; dwell for 1.0 seconds - adjust this to match your machines two pulse time
{endif}
{if next_extruder==2}
G4 P1500 ; dwell for 1.5 seconds - adjust this to match your machines three pulse time
{endif}
{if next_extruder==3}
G4 P2000 ; dwell for 2.0 seconds - adjust this to match your machines four pulse time
{endif}
G0 Y-3
G4 P2000 ; wait for cutter to work
And here is the rearranged excerpt (changed parts are highlighted):
; load extruder #{next_extruder}
M117 Loading Tool T{next_extruder}
{if previous_extruder>-1}
; back out the filament for cutting
G0 E-10 F500 ; retract a bit, adjust this to tune waste
; <<<< insert mechanical cutter code here! >>>>
; we skipped to here if it was extruder -1
{endif}
{if previous_extruder>-1}
<retraction code was previously here>
G0 E-20 F2000
G92 E0
; ok - start tool selection
G91 ; move to relative mode
M82
; we skipped to here if it was extruder -1
{endif}
; press the button to select the new extruder
G0 Y3 F2000
{if next_extruder==0}
G4 P500 ; dwell for .5 seconds - adjust this to match your machines single pulse time
{endif}
{if next_extruder==1}
G4 P1000 ; dwell for 1.0 seconds - adjust this to match your machines two pulse time
{endif}
{if next_extruder==2}
G4 P1500 ; dwell for 1.5 seconds - adjust this to match your machines three pulse time
{endif}
{if next_extruder==3}
G4 P2000 ; dwell for 2.0 seconds - adjust this to match your machines four pulse time
{endif}
G0 Y-3
G4 P2000 ; wait for cutter to work
; retract it out of the extruder
G92 E0
G0 E-100 F2000
G92 E0
G0 E-100 F2000
G92 E0
G0 E-100 F2000
G92 E0
G0 E-75 F2000
G92 E0
The easiest solution is probably just to have the generator put the code where I rearranged it. I just thought I would mention this for ease of use :)
Liam