Jump to content
Ultimaker Community of 3D Printing Experts

Extruder Docking in Multi-Extruder Configuration


Recommended Posts

Posted (edited) · Extruder Docking in Multi-Extruder Configuration

Dear Cura Users,

Please help if you can...


**Application Version**
Cura 3.6.0


Windows 10, 64 bit


Custom FDM multi-extruder.
Four extruders docked on the back wall. 


**Steps to Reproduce**
Print any multi-material model.


**Actual Results**
Last used "Extruder End G-code" is not executed.
Last used extruder remains attached to the tool holder.


**Expected results**
Last used "Extruder End G-code" should be executed.
Last used extruder would be properly docked to its' slot on the back wall.


**Additional Information**
On T[N] G-code command (where [N] is extruder index), N's "Extruder Start G-code" is executed and that code knows how to navigate to N's tool dock and attach it to the tool holder. At the end of the tool usage, N's "Extruder End G-code" is executed and it knows how to navigate to N's dock and disconnect it from the tool holder.


Cura should execute last used "Extruder End G-code", because only that code knows where the last extruder needs to be docked at.

I am a aware that Cura always executes "End G-code", but that code can not be conditioned on the docking location of the last used extruder. At least, I am not aware that such conditional statements exist.


I am also aware that in multi-extruder case, Cura also assumes T0 to always be the first and will not execute the T0's "Extruder Start G-code", but in that case I can at least inject T0's "Extruder Start G-code" into "Start G-code" knowing it is specific for T0.


I don't know why wouldn't it make sense to always execute "Extruder Start G-code" and "Extruder End G-code" even on single extruder printers. Developers could always leave those sections blank if no extruder specific action is required.


Thank you and kind regards.

Edited by UticaTechClub
To clarify
  • Link to post
    Share on other sites

    Posted · Extruder Docking in Multi-Extruder Configuration

    To fix my problem, one of two things needs to happen:
       a) Figure out if Cura could invoke "Extruder End G-Code" on the last used extruder. I am sure there is a good reason(s) as to why Cura doesn't do it.
       b) Figure out how to condition gcode invoked in "End G-Code" section. After much reading, I believe this is currently not possible in Cura.

  • Link to post
    Share on other sites

    Posted · Extruder Docking in Multi-Extruder Configuration

    Perhaps there is another way to make "End G-Code" conditional as found in


    The idea is to define value property in (.def.json) and embed Python expression to be evaluated like in the following example:

    "machine_end_gcode": { "value": "'G29 P' + str(int(machine_width/25))" },

    So in my case, I could pass proper X,Y offset to G1 based on {current_extruder} property.

    I think it should work... 

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    • Our picks

      • New here? Get ahead with a free onboarding course
        Often getting started is the most difficult part of any process. A good start sets you up for success and saves you time and energy that could be spent elsewhere. That is why we have a onboarding course ready for
        Ultimaker S5 Pro Bundle, Ultimaker S5, Ultimaker S3 Ultimaker 2+ Connect.   
        They're ready for you on the Ultimaker Academy platform. All you need to do to gain access is to register your product to gain free access. 
        Ready? Register your product here in just 60 seconds.
          • Like
        • 13 replies
    • Create New...