So maybe I should clarify a little.
There are a number of issues with the Sovol code (at least when using stock Cura); one of which relates to the initial temperature when there are different materials in use.
I'm actually working against a modified version of the Marlin 2.1.x port which I'm hoping to, among other things, avoid the drain bramage of having to manually choose the mode on the printer. Marlin 2.1 already has commands for controlling the IDEX mode, so it is mostly an issue of configuring them properly.
Cura *does* provide gcode commands for tool changes, but it can't seem to be made conditional on the first or last use of said tool.
I'm being overly "fragile" with the level of integration, because I would like to be able to push this upstream.
Recommended Posts
GregValiant 1,455
The bottom line to all of this is that UM Cura does not support IDEX printers. You can get it to work well with IDEX machines, but it's all on you (and Sovol).
I have the Sovol fork of Cura installed. Looking through the gcodes in Copy, Duplicate, Mirror, 01 and 02 modes the only thing I see where the "mode" is being called out is in the second line of the Gcode in the printer name...
;TARGET_MACHINE.NAME:SV04 Copy Mode
If that is correct then you cannot change the "name" of a printer because it's actually a setting.
In a UM Cura gcode the line is a bit further down, but it's the same line.
;TARGET_MACHINE.NAME:SV04 Copy Mode
No matter how you do it: Picking a mode from a list in a post-processor, picking a mode from a list provided by a plugin, or picking a mode by selecting the appropriate printer from a list, you are going to have to pick a selection from a list.
Part of what you are seeing with the different definitions is that the bed size changes according to the mode. That allows you to know where to put the model so it will fit the printer in the mode you are using. If you only had a single definition you would need to design a custom mesh platform with lines laid out on it so you would know where you can put the model and have it print on the bed.
There is a plugin in the MarketPlace called "Extensive Support Logging". It can help when looking for things in the log file.
This is a line in my startup gcode. If the bed temperature is less than 65 then I don't need to wait because it will take the hot end about the same amount of time to heat. If the bed is at 83 for PETG then I need to wait for the bed to get there before the print starts.
{'M190 S' if material_bed_temperature_layer_0 > 65 else 'M140 S'}{material_bed_temperature_layer_0}
If you want to insert a custom command at a tool change you would need either a custom post-processor, or maybe Search and Replace would work for you.
Edited by GregValiantLink to post
Share on other sites