Feature Request: Right extruder does not start heating until Left extruder and bed are up to temperature
evilC opened this issue · 5 comments
Plugin version: 0.3.0
The M104 T1
command is after the M190 S
command, so the right extruder does not start heating up until the bed is at full temperature.
Temperatures set in Cura:
Left extruder (T0): Printing = 200, Initial = 190, Standby = 175
Right extruder (T1): Printing = 215, Initial = 205, Standby = 160
;Generated with Cura_SteamEngine 5.2.1
T0
M82 ;absolute extrusion mode
;--- Start G-code Begin ---
> Heat T0 M104 S200 ;Set Hotend Temperature
> Heat bed M140 S60 ;Set Bed Temperature
G28 ;Home
G1 Z0.8
> Wait for T0 to heat up M109 S200
> Wait for bed to heat up M190 S60
G1 Z0.8 F6000
M201 X10000 Y10000 Z500 E5000
M593 P1 F50
M205 V5
G92 E0
G1 F200 E2
G92 E0
;--- Start G-code End ---
G92 E0
M2000 S200 V250 A6000
G92 E0
G1 F1500 E-6.5
;LAYER_COUNT:784
;LAYER:0
M107
> Heat T1 M104 T1 S160
M204 S1000
G1 F600 Z1.28
G0 F6000 X134.82 Y65.098 Z1.28
;TYPE:SKIRT
G1 F600 Z0.28
T1 should preheat to either Standby
or Initial
temperature while T0 and bed are heating
If you modify the start G-code and add M104 S{material_standby_temperature, 1} T1 ; Start heating T1
after the line M140 S{material_bed_temperature_layer_0} ;Set Bed Temperature
, then this somewhat fixes the issue.
HOWEVER, it has an undesired side-effect:
If you do a single-extruder print, the 2nd extruder is still heated to it's standby temperature, even though it is not used.
I have asked on the Cura forums if there is a workaround for this.
AFAIK, Cura's bracket syntax does not support conditional commands (ie the ability to completely omit the command if the extruder is not used), however a workaround could be for {material_standby_temperature, 1}
to return 0
if the extruder is not used in the print - this would result in T1 being asked to heat to 0 degrees if it is not used, effectively doing nothing.
This is regarded as a feature/bug of the slicer. It only starts to heat up T1 until first time switch.
I think it's not elegant at all to workaround this by start code.
Well you already have it for T0. I have not tried it, but I would imagine if you sliced in Cura with the left extruder disabled (ie a print that just uses the right extruder), then as it stands, I think the printer would heat up the left extruder (Even though it is not used in the print) and wait for it to hit print temperature, before starting to heat the right extruder (Which is used in the print) because that is what the Start GCode
in the plugin tells it to do.
I started a Feature Request on the Cura GitHub repo, let's see what they say
Nah.
The Start GCode
tell it to use M104
or M109
to heat up. The slicer will decide which extruder to use, and prepend T0
or T1
command based on your first layer setting.
Ah OK, thanks