From 8e326720160e143179c72905fe2c3f1fd5bac2ac Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 9 Jul 2024 11:50:18 +0200 Subject: [PATCH] Only allow prepend settings to be disabled When the printer settings say they should be disabled, they could previously be enabled if the start GCode didn't contain temperature commands. Now we can only enable them if initially enabled. CURA-11967 --- plugins/CuraEngineBackend/StartSliceJob.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index 9caadbdff6..3da0a68c95 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -554,12 +554,16 @@ class StartSliceJob(Job): start_gcode = settings["machine_start_gcode"] # Remove all the comments from the start g-code start_gcode = re.sub(r";.+?(\n|$)", "\n", start_gcode) - bed_temperature_settings = ["material_bed_temperature", "material_bed_temperature_layer_0"] - pattern = r"\{(%s)(,\s?\w+)?\}" % "|".join(bed_temperature_settings) # match {setting} as well as {setting, extruder_nr} - settings["material_bed_temp_prepend"] = re.search(pattern, start_gcode) == None - print_temperature_settings = ["material_print_temperature", "material_print_temperature_layer_0", "default_material_print_temperature", "material_initial_print_temperature", "material_final_print_temperature", "material_standby_temperature", "print_temperature"] - pattern = r"\{(%s)(,\s?\w+)?\}" % "|".join(print_temperature_settings) # match {setting} as well as {setting, extruder_nr} - settings["material_print_temp_prepend"] = re.search(pattern, start_gcode) is None + + if settings["material_bed_temp_prepend"]: + bed_temperature_settings = ["material_bed_temperature", "material_bed_temperature_layer_0"] + pattern = r"\{(%s)(,\s?\w+)?\}" % "|".join(bed_temperature_settings) # match {setting} as well as {setting, extruder_nr} + settings["material_bed_temp_prepend"] = re.search(pattern, start_gcode) == None + + if settings["material_print_temp_prepend"]: + print_temperature_settings = ["material_print_temperature", "material_print_temperature_layer_0", "default_material_print_temperature", "material_initial_print_temperature", "material_final_print_temperature", "material_standby_temperature", "print_temperature"] + pattern = r"\{(%s)(,\s?\w+)?\}" % "|".join(print_temperature_settings) # match {setting} as well as {setting, extruder_nr} + settings["material_print_temp_prepend"] = re.search(pattern, start_gcode) is None # Replace the setting tokens in start and end g-code. # Use values from the first used extruder by default so we get the expected temperatures