Jump to content
Ultimaker Community of 3D Printing Experts
  • Sign Up

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

Share this post

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.

Share this post

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... 

Share this post

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

  • Create New...