Ultimaker / CuraEngine

Powerful, fast and robust engine for converting 3D models into g-code instructions for 3D printers. It is part of the larger open source project Cura.
https://ultimaker.com/en/products/cura-software
GNU Affero General Public License v3.0
1.68k stars 881 forks source link

CURA-11869 Fix pre-heating logic when working with a raft #2080

Closed wawanbreton closed 4 months ago

wawanbreton commented 4 months ago

When using UM printers, the start temperature for both extruders is inserted in the G-Code header, and actually used by the printer as a temperature command. This temperature contains either the print temperature (for the first used extruder) or the standby temperature (for any other extruder).

Thus, after the header, we don't add any temperature command until there is an actual temperature change. However, while printing the raft, the second extruder is somehow set by the printer at the print temperature, and material oozes. The proposed fix makes use of the material_print_temp_prepend setting which was previously ignored for Griffin-flavored G-Code. So you can still go back to previous behavior by disabling this setting (enabled by default).

Tested in UM S5: this actually seems to work, but adds a delay before starting to print: at some point during init, the printer sets the 2nd extruder to printer temperature, then hits the temperature command and has to wait for it to cool down before starting. The fix is then still partial because it keeps heating a print temperature during some time, which may cause some oozing. To complete it, some change are required on the firmware side.

Also tested MethodXL: the behavior is very much the same. During init sequence, printer heats both extruders to print temperature, then the 2nd cools downs when it actually starts printing. This does reduce oozing, but not completely removes it.

CURA-11869