diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json
index 1b93bd9107..5951125167 100644
--- a/resources/definitions/fdmprinter.def.json
+++ b/resources/definitions/fdmprinter.def.json
@@ -4614,6 +4614,21 @@
"maximum_value": "365",
"settable_per_mesh": false,
"settable_per_extruder": true
+ },
+ "cool_during_extruder_switch":
+ {
+ "label": "Cooling during extruder switch",
+ "description": "Whether to activate the cooling fans during a nozzle switch. This can help reducing oozing by cooling the nozzle faster:
- Unchanged: keep the fans as they were previously
- Only last extruder: turn on the fan of the last used extruder, but turn the others off (if any). This is useful if you have completely separate extruders.
- All fans: turn on all fans during nozzle switch. This is useful if you have a single cooling fan, or multiple fans that stay close to each other.
",
+ "type": "enum",
+ "options":
+ {
+ "unchanged": "Unchanged",
+ "only_last_extruder": "Only last extruder",
+ "all_fans": "All fans"
+ },
+ "default_value": "unchanged",
+ "settable_per_mesh": false,
+ "settable_per_extruder": false
}
}
},
diff --git a/resources/extruders/ultimaker_methodx_extruder_left.def.json b/resources/extruders/ultimaker_methodx_extruder_left.def.json
index 1e4fefb17e..2b927405f0 100644
--- a/resources/extruders/ultimaker_methodx_extruder_left.def.json
+++ b/resources/extruders/ultimaker_methodx_extruder_left.def.json
@@ -14,6 +14,7 @@
"default_value": 0,
"maximum_value": "1"
},
+ "machine_extruder_cooling_fan_number": { "default_value": 0 },
"machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" },
"machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM104 S{material_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed_0/100}" },
"machine_extruder_start_code_duration": { "default_value": 8 },
diff --git a/resources/extruders/ultimaker_methodx_extruder_right.def.json b/resources/extruders/ultimaker_methodx_extruder_right.def.json
index 34aba96b42..43979e136b 100644
--- a/resources/extruders/ultimaker_methodx_extruder_right.def.json
+++ b/resources/extruders/ultimaker_methodx_extruder_right.def.json
@@ -14,6 +14,7 @@
"default_value": 1,
"maximum_value": "1"
},
+ "machine_extruder_cooling_fan_number": { "default_value": 1 },
"machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" },
"machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM104 S{material_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed_0/100}" },
"machine_extruder_start_code_duration": { "default_value": 8 },
diff --git a/resources/extruders/ultimaker_methodxl_extruder_left.def.json b/resources/extruders/ultimaker_methodxl_extruder_left.def.json
index 64c1577f1e..c7e365f269 100644
--- a/resources/extruders/ultimaker_methodxl_extruder_left.def.json
+++ b/resources/extruders/ultimaker_methodxl_extruder_left.def.json
@@ -14,6 +14,7 @@
"default_value": 0,
"maximum_value": "1"
},
+ "machine_extruder_cooling_fan_number": { "default_value": 0 },
"machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" },
"machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM104 S{material_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed_0/100}" },
"machine_extruder_start_code_duration": { "default_value": 10 },
diff --git a/resources/extruders/ultimaker_methodxl_extruder_right.def.json b/resources/extruders/ultimaker_methodxl_extruder_right.def.json
index 0af672130d..7ac702d3c2 100644
--- a/resources/extruders/ultimaker_methodxl_extruder_right.def.json
+++ b/resources/extruders/ultimaker_methodxl_extruder_right.def.json
@@ -14,6 +14,7 @@
"default_value": 1,
"maximum_value": "1"
},
+ "machine_extruder_cooling_fan_number": { "default_value": 1 },
"machine_extruder_end_code": { "default_value": "M106 P{extruder_nr} S1.0\nG91\nG0 Z0.4 F600\nG90\nG0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000" },
"machine_extruder_start_code": { "default_value": "G0 X{prime_tower_position_x - prime_tower_size/2} Y{prime_tower_position_y + prime_tower_size/2} F6000\nM104 S{material_print_temperature}\nG4 S5\nG91\nG0 Z-0.4 F600\nG90\nM107 P{(extruder_nr+1)%2}\nM106 P{extruder_nr} S{cool_fan_speed_0/100}" },
"machine_extruder_start_code_duration": { "default_value": 10 },
diff --git a/resources/setting_visibility/advanced.cfg b/resources/setting_visibility/advanced.cfg
index 652f33b4a4..261743c708 100644
--- a/resources/setting_visibility/advanced.cfg
+++ b/resources/setting_visibility/advanced.cfg
@@ -97,6 +97,7 @@ cool_fan_full_layer
cool_min_layer_time
cool_min_speed
cool_lift_head
+cool_during_extruder_switch
[support]
support_enable
diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg
index 888b0a797f..f0ba478a53 100644
--- a/resources/setting_visibility/expert.cfg
+++ b/resources/setting_visibility/expert.cfg
@@ -249,6 +249,7 @@ cool_fan_full_layer
cool_min_layer_time
cool_min_speed
cool_lift_head
+cool_during_extruder_switch
[support]
support_enable