diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json
index 0d8504879d..64196b9f8b 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/intent/ultimaker_factor4/um_f4_cc0.4_cffcpe_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.4_cffcpe_0.2mm_engineering.inst.cfg
new file mode 100644
index 0000000000..a29540bbeb
--- /dev/null
+++ b/resources/intent/ultimaker_factor4/um_f4_cc0.4_cffcpe_0.2mm_engineering.inst.cfg
@@ -0,0 +1,18 @@
+[general]
+definition = ultimaker_factor4
+name = Accurate
+version = 4
+
+[metadata]
+intent_category = engineering
+material = generic_cffcpe
+quality_type = draft
+setting_version = 23
+type = intent
+variant = CC 0.4
+
+[values]
+jerk_print = 30
+speed_print = 80
+wall_thickness = =line_width * 3
+
diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffcpe_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffcpe_0.2mm_engineering.inst.cfg
new file mode 100644
index 0000000000..01ea70dd38
--- /dev/null
+++ b/resources/intent/ultimaker_factor4/um_f4_cc0.4_gffcpe_0.2mm_engineering.inst.cfg
@@ -0,0 +1,18 @@
+[general]
+definition = ultimaker_factor4
+name = Accurate
+version = 4
+
+[metadata]
+intent_category = engineering
+material = generic_gffcpe
+quality_type = draft
+setting_version = 23
+type = intent
+variant = CC 0.4
+
+[values]
+jerk_print = 30
+speed_print = 80
+wall_thickness = =line_width * 3
+
diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffcpe_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffcpe_0.2mm_engineering.inst.cfg
new file mode 100644
index 0000000000..98087f4712
--- /dev/null
+++ b/resources/intent/ultimaker_factor4/um_f4_cc0.6_cffcpe_0.2mm_engineering.inst.cfg
@@ -0,0 +1,18 @@
+[general]
+definition = ultimaker_factor4
+name = Accurate
+version = 4
+
+[metadata]
+intent_category = engineering
+material = generic_cffcpe
+quality_type = draft
+setting_version = 23
+type = intent
+variant = CC 0.6
+
+[values]
+jerk_print = 30
+speed_print = 80
+wall_thickness = =line_width * 3
+
diff --git a/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffcpe_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffcpe_0.2mm_engineering.inst.cfg
new file mode 100644
index 0000000000..ffe4988764
--- /dev/null
+++ b/resources/intent/ultimaker_factor4/um_f4_cc0.6_gffcpe_0.2mm_engineering.inst.cfg
@@ -0,0 +1,18 @@
+[general]
+definition = ultimaker_factor4
+name = Accurate
+version = 4
+
+[metadata]
+intent_category = engineering
+material = generic_gffcpe
+quality_type = draft
+setting_version = 23
+type = intent
+variant = CC 0.6
+
+[values]
+jerk_print = 30
+speed_print = 80
+wall_thickness = =line_width * 3
+
diff --git a/resources/quality/ultimaker_factor4/um_f4_cc0.4_cffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_cc0.4_cffcpe_0.2mm.inst.cfg
new file mode 100644
index 0000000000..40f9516580
--- /dev/null
+++ b/resources/quality/ultimaker_factor4/um_f4_cc0.4_cffcpe_0.2mm.inst.cfg
@@ -0,0 +1,18 @@
+[general]
+definition = ultimaker_factor4
+name = Fast
+version = 4
+
+[metadata]
+material = generic_cffcpe
+quality_type = draft
+setting_version = 23
+type = quality
+variant = CC 0.4
+weight = -2
+
+[values]
+support_bottom_distance = =support_z_distance / 2
+support_top_distance = =support_z_distance
+support_z_distance = =layer_height * 2
+
diff --git a/resources/quality/ultimaker_factor4/um_f4_cc0.4_gffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_cc0.4_gffcpe_0.2mm.inst.cfg
new file mode 100644
index 0000000000..d0dacd043c
--- /dev/null
+++ b/resources/quality/ultimaker_factor4/um_f4_cc0.4_gffcpe_0.2mm.inst.cfg
@@ -0,0 +1,18 @@
+[general]
+definition = ultimaker_factor4
+name = Fast
+version = 4
+
+[metadata]
+material = generic_gffcpe
+quality_type = draft
+setting_version = 23
+type = quality
+variant = CC 0.4
+weight = -2
+
+[values]
+support_bottom_distance = =support_z_distance / 2
+support_top_distance = =support_z_distance
+support_z_distance = =layer_height * 2
+
diff --git a/resources/quality/ultimaker_factor4/um_f4_cc0.6_cffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_cc0.6_cffcpe_0.2mm.inst.cfg
new file mode 100644
index 0000000000..74915d58be
--- /dev/null
+++ b/resources/quality/ultimaker_factor4/um_f4_cc0.6_cffcpe_0.2mm.inst.cfg
@@ -0,0 +1,18 @@
+[general]
+definition = ultimaker_factor4
+name = Fast
+version = 4
+
+[metadata]
+material = generic_cffcpe
+quality_type = draft
+setting_version = 23
+type = quality
+variant = CC 0.6
+weight = -2
+
+[values]
+support_bottom_distance = =support_z_distance / 2
+support_top_distance = =support_z_distance
+support_z_distance = =layer_height * 2
+
diff --git a/resources/quality/ultimaker_factor4/um_f4_cc0.6_gffcpe_0.2mm.inst.cfg b/resources/quality/ultimaker_factor4/um_f4_cc0.6_gffcpe_0.2mm.inst.cfg
new file mode 100644
index 0000000000..d6140b680a
--- /dev/null
+++ b/resources/quality/ultimaker_factor4/um_f4_cc0.6_gffcpe_0.2mm.inst.cfg
@@ -0,0 +1,18 @@
+[general]
+definition = ultimaker_factor4
+name = Fast
+version = 4
+
+[metadata]
+material = generic_gffcpe
+quality_type = draft
+setting_version = 23
+type = quality
+variant = CC 0.6
+weight = -2
+
+[values]
+support_bottom_distance = =support_z_distance / 2
+support_top_distance = =support_z_distance
+support_z_distance = =layer_height * 2
+
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