Hi Bill,
manhy thanks for taking the time to have a look, so here's the tool change code from my Prusaslicer.....as described previoulsy when doing a dry run with the 3Dchamleon floating and the final PTFE tube not connected to the sprite the filament - selection seems to work ok, but the length it pushes out past the end of the short piece of PTFE tubing is quite long (not good as the 3Dchamelon sits right on top of the 3Dclippy which sits right on top of the sprite just as yours was in the video link you shared in this thread).
When the filament retracts it seems quite good and just about passes past its Y split input position, so no clashes or jams there.
When I ran a dry run with this version of my tool change code the printer attempted to perform a filament almost immediately but it didn't get to the cut position fully (X=220 for me), nor did it reset properly ?
So in essence I need pretty much the same tool change code as you used in the video link you share in this thread, but with only the switch position and 3dclippy positions change and using the sprite as the main extruder and NOT the 3Dcahmeleon as the extruder......in MODE3....
Anyways, here's my code :-
; Auto generated 3D Chameleon Mk3 Mode 3 Tool Change GCode for PrusaSlicer
; - 3D Chameleon Mk3 Tool T{next_extruder} -
;begin switch from extruder {previous_extruder} to extruder #{next_extruder}
M117 Unloading Tool T[previous_extruder]
M83 ; turn relative distances for the extruder
; unload extruder {previous_extruder}
G92 E0
; go to holding position to unload the stock extruder
G0 Y216 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
M83
; load extruder #{next_extruder}
M117 Loading Tool T{next_extruder}
; back out the filament for cutting
;G0 E-20 F500 ; retract a bit, adjust this to tune waste
; 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 S2 ; wait for cutter to work
G0 X0 ; Pull the X axis home
G0 X220 ; Launch toward the cutter
G0 X0 ; Return to home to reset the cutter
; ok command selected - back out filament if needed after cut
{if previous_extruder>-1}
; retract it back out of the extruder
;G92 E0
;G0 E-5 F2000
;G92 E0
;G0 E-30 F2000
;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}
{if previous_extruder>-1}
G0 Y3 F2000 ;
G4 S4 ;
G0 Y-3;
G4 P400
{endif}
G0 Y3 F2000 ;
G4 S4 ;
G0 E25 F1500; <<<--- adjust this E value to tune extruder loading
G0 Y-3;
G4 P400
G92 E0
G90 ; move back to absolute mode
M83 ; but make sure the extruder stays in relative
; reload filament all the way into extruder
G92 E0
G0 E-20 F2000 ; <<<<<----------- EDIT THIS DISTANCE TO FINE TUNE THE FILAMENT LOADING TO STOP BLOBBING OR UNDEREXTRUSION
G92 E0
M83 ; turn relative distances for the extruder
M117 3D Chameleon Tool T{next_extruder}