I have a Zonestar Z5FM2 running Marlin 1.1.8 with a mixing extruder.

That is, 2 extruder stepper motors feeding a 2-in 1-out hotend (similar to the E3D cyclops).

I'm slicing with Simplify3D and I have set up:

  • T0 set to the first extruder;
  • T1 set to the second extruder;
  • T2 set to a virtual extruder consisting of a 50/50 mix of extruder 1 and 2(made by having M163 S0 P50 followed by M164 S2 in the start code)

I was wondering how you handle the retraction. Currently only the active tool (e.g. extruder motor 1 when using T1) retracts, which leads to a lot of oozing since the filament in the unused half is still applying some pressure.

I read that for a setup like mine it is necessary to get both extruders to retract. How do I do that?

I've seen the documentation for programming G10/G11 firmware retract with M207 but there does not seem to be a way to specify the tool to use.

I could make a find-and-replace post processing script in Simplify3D to replace retracts of T0 or T1 with retracts of T2 (so both motors retract), but then how would I get it to switch back to the proper original tool when resuming printing?

Is there a way to address an extruder directly in G1 commands (so I could force both to retract), or temporarily switch a tool for just one command (so I could switch tool for the retract command only and it would go back to printing with the previous tool afterwards)?

  • $\begingroup$ In Slic3r and Prusa Slicer 2.0, you can set a seperate retract value for when the extruder is inactive. $\endgroup$
    – towe
    Jul 2, 2019 at 11:01

1 Answer 1


I found this post on the S3D Forums that seem to have some interesting information on custom scripting within Simplify3D. While this doesn't seem to SPECIFICALLY address the question you've got, it looks like there's a "Retraction Scripts" tab that you could probably leverage your T2 tool inside of, using "OLDTOOL" instead of "NEWTOOL".

For additional information on what variables are available, I found a different forum post here that seems to have some documentation on Simplify3D's built-in script variables. Additionally, from the GCode in the first link's example scripts, it appears that you should be able to actually address M-commands to individual extruders (such as T2 in your case) simply by adding "T(x)" as a parameter to the individual command. I just ran a quick test on my own Marlin-based printer with a 2in-1out hotend, and I was not able to get it to address G1 commands to specific E motors without switching tools.

All in all I think you should be able to use the custom scripts available in S3D to accomplish what you want by switching tools in the layer change script, but aside from that, I don't know what options you have available with that specific software chain.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .