diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 500e82c7db..d77cac7990 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -61,7 +61,6 @@ jobs:
f.write(release_notes.render(
timestamp=str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")),
caller_workflow=caller_workflow,
- branch="" if is_main else short_version,
branch_specific="" if is_main else f"?branch={short_version}",
))
diff --git a/.github/workflows/nightly_release_notes.md.jinja b/.github/workflows/nightly_release_notes.md.jinja
index 62edf16408..a14c8d76a0 100644
--- a/.github/workflows/nightly_release_notes.md.jinja
+++ b/.github/workflows/nightly_release_notes.md.jinja
@@ -4,18 +4,17 @@
| | |
|--------------:|--------------------------------------------------------------------------------------------|
-| **Nightlies** | [](https://github.com/Ultimaker/Cura/actions/workflows/installers.yml) |
+| **Nightlies** | [](https://github.com/Ultimaker/Cura/actions/workflows/installers.yml) |
# Unit Test results
| | |
|-------------------------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **Cura {{ branch }}** | [](https://github.com/Ultimaker/Cura/actions/workflows/unit-test.yml) |
-| **CuraEngine {{ branch }}** | [](https://github.com/Ultimaker/CuraEngine/actions/workflows/unit-test.yml) |
-| **Uranium {{ branch }}** | [](https://github.com/Ultimaker/Uranium/actions/workflows/unit-test.yml) |
-| **CuraEngine GradualFlow 0.1** | [](https://github.com/Ultimaker/CuraEngine_plugin_gradual_flow/actions/workflows/unit-test.yml) |
-| **synsepalum-dulcificum 0.1** | [](https://github.com/Ultimaker/synsepalum-dulcificum/actions/workflows/unit-test.yml) |
+| **Cura** | [](https://github.com/Ultimaker/Cura/actions/workflows/unit-test.yml) |
+| **CuraEngine** | [](https://github.com/Ultimaker/CuraEngine/actions/workflows/unit-test.yml) |
+| **Uranium** | [](https://github.com/Ultimaker/Uranium/actions/workflows/unit-test.yml) |
+| **CuraEngine GradualFlow** | [](https://github.com/Ultimaker/CuraEngine_plugin_gradual_flow/actions/workflows/unit-test.yml) |
+| **synsepalum-dulcificum** | [](https://github.com/Ultimaker/synsepalum-dulcificum/actions/workflows/unit-test.yml) |
| **libSavitar** | [](https://github.com/Ultimaker/libSavitar/actions/workflows/unit-test.yml) |
| **libnest2d** | [](https://github.com/Ultimaker/libnest2d/actions/workflows/unit-test.yml) |
@@ -23,14 +22,14 @@
| | |
|------------------------------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| **Cura {{ branch }}** | [](https://github.com/Ultimaker/Cura/actions/workflows/conan-package.yml) |
-| **CuraEngine {{ branch }}** | [](https://github.com/Ultimaker/CuraEngine/actions/workflows/conan-package.yml) |
-| **Uranium {{ branch }}** | [](https://github.com/Ultimaker/Uranium/actions/workflows/conan-package.yml) |
-| **fdm_materials {{ branch }}** | [](https://github.com/Ultimaker/fdm_materials/actions/workflows/conan-package.yml) |
-| **cura-binary-data {{ branch }}** | [](https://github.com/Ultimaker/cura-binary-data/actions/workflows/conan-package.yml) |
-| **CuraEngine GradualFlow 0.1** | [](https://github.com/Ultimaker/CuraEngine_plugin_gradual_flow/actions/workflows/conan-package.yml) |
-| **synsepalum-dulcificum 0.1** | [](https://github.com/Ultimaker/synsepalum-dulcificum/actions/workflows/conan-package.yml) |
-| **CuraEngine gRPC definitions 0.1** | [](https://github.com/Ultimaker/CuraEngine_grpc_definitions/actions/workflows/conan-package.yml) |
+| **Cura** | [](https://github.com/Ultimaker/Cura/actions/workflows/conan-package.yml) |
+| **CuraEngine** | [](https://github.com/Ultimaker/CuraEngine/actions/workflows/package.yml) |
+| **Uranium** | [](https://github.com/Ultimaker/Uranium/actions/workflows/conan-package.yml) |
+| **fdm_materials** | [](https://github.com/Ultimaker/fdm_materials/actions/workflows/conan-package.yml) |
+| **cura-binary-data** | [](https://github.com/Ultimaker/cura-binary-data/actions/workflows/conan-package.yml) |
+| **CuraEngine GradualFlow** | [](https://github.com/Ultimaker/CuraEngine_plugin_gradual_flow/actions/workflows/conan-package.yml) |
+| **synsepalum-dulcificum** | [](https://github.com/Ultimaker/synsepalum-dulcificum/actions/workflows/conan-package.yml) |
+| **CuraEngine gRPC definitions** | [](https://github.com/Ultimaker/CuraEngine_grpc_definitions/actions/workflows/conan-package.yml) |
| **libArcus** | [](https://github.com/Ultimaker/libArcus/actions/workflows/conan-package.yml) |
| **pyArcus** | [](https://github.com/Ultimaker/pyArcus/actions/workflows/conan-package.yml) |
| **libSavitar** | [](https://github.com/Ultimaker/libSavitar/actions/workflows/conan-package.yml) |
diff --git a/UltiMaker-Cura.spec.jinja b/UltiMaker-Cura.spec.jinja
index d618ca3309..6d06ab7ff9 100644
--- a/UltiMaker-Cura.spec.jinja
+++ b/UltiMaker-Cura.spec.jinja
@@ -75,7 +75,7 @@ app = BUNDLE(
coll,
name='{{ display_name }}.app',
icon={{ icon }},
- bundle_identifier={{ osx_bundle_identifier }} + "_" + '{{ display_name }}'.replace(" ", "_") + "_" {{ short_version }},
+ bundle_identifier={{ osx_bundle_identifier }} + "_" + '{{ display_name }}'.replace(" ", "_"),
version={{ version }},
info_plist={
'CFBundleDisplayName': '{{ display_name }}',
diff --git a/conandata.yml b/conandata.yml
index 6bec3ee231..de95766ed2 100644
--- a/conandata.yml
+++ b/conandata.yml
@@ -5,7 +5,7 @@ requirements:
- "curaengine/5.10.0-alpha.0@ultimaker/testing"
- "cura_binary_data/5.10.0-alpha.0@ultimaker/testing"
- "fdm_materials/5.10.0-alpha.0@ultimaker/testing"
- - "dulcificum/0.2.1@ultimaker/stable"
+ - "dulcificum/0.3.0@ultimaker/stable"
- "pysavitar/5.4.0-alpha.0@ultimaker/stable"
- "pynest2d/5.4.0-alpha.0@ultimaker/stable"
requirements_internal:
diff --git a/conanfile.py b/conanfile.py
index 01e2ffb579..3a71d8bca2 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -27,7 +27,6 @@ class CuraConan(ConanFile):
generators = "VirtualPythonEnv"
tool_requires = "gettext/0.22.5"
- # FIXME: Remove specific branch once merged to main
python_requires = "translationextractor/[>=2.2.0]@ultimaker/stable"
options = {
diff --git a/cura/PrinterOutput/FormatMaps.py b/cura/PrinterOutput/FormatMaps.py
index 3a03da71fd..3bb6263a28 100644
--- a/cura/PrinterOutput/FormatMaps.py
+++ b/cura/PrinterOutput/FormatMaps.py
@@ -13,7 +13,9 @@ class FormatMaps:
"fire_e": "ultimaker_method",
"lava_f": "ultimaker_methodx",
"magma_10": "ultimaker_methodxl",
- "sketch": "ultimaker_sketch"
+ "sketch": "ultimaker_sketch",
+ "sketch_large": "ultimaker_sketch_large",
+ "sketch_sprint": "ultimaker_sketch_sprint"
}
# A map from the extruder-name in their native file-formats to the internal name we use.
diff --git a/cura/PrinterOutput/Models/PrinterConfigurationModel.py b/cura/PrinterOutput/Models/PrinterConfigurationModel.py
index 85c69abcd3..d42be47b41 100644
--- a/cura/PrinterOutput/Models/PrinterConfigurationModel.py
+++ b/cura/PrinterOutput/Models/PrinterConfigurationModel.py
@@ -1,9 +1,12 @@
-# Copyright (c) 2018 Ultimaker B.V.
+# Copyright (c) 2025 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher.
from PyQt6.QtCore import pyqtProperty, QObject, pyqtSignal
from typing import List
+from UM.Settings.ContainerRegistry import ContainerRegistry
+from UM.Settings.DefinitionContainer import DefinitionContainer
+
MYPY = False
if MYPY:
from cura.PrinterOutput.Models.ExtruderConfigurationModel import ExtruderConfigurationModel
@@ -68,6 +71,15 @@ class PrinterConfigurationModel(QObject):
return True
return False
+ @pyqtProperty("QStringList", constant=True)
+ def validCoresForPrinterType(self) -> List[str]:
+ printers = ContainerRegistry.getInstance().findContainersMetadata(
+ ignore_case=True, type="machine", name=self._printer_type, container_type=DefinitionContainer)
+ id = printers[0]["id"] if len(printers) > 0 and "id" in printers[0] else ""
+ definitions = ContainerRegistry.getInstance().findContainersMetadata(
+ ignore_case=True, type="variant", definition=id+"*")
+ return [x["name"] for x in definitions]
+
def __str__(self):
message_chunks = []
message_chunks.append("Printer type: " + self._printer_type)
diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py
index 82b52d3dde..4c16061074 100755
--- a/cura/Settings/MachineManager.py
+++ b/cura/Settings/MachineManager.py
@@ -1678,7 +1678,7 @@ class MachineManager(QObject):
intent_category = self.activeIntentCategory,
intent_name = IntentCategoryModel.translation(self.activeIntentCategory, "name", self.activeIntentCategory.title()),
custom_profile = self.activeQualityOrQualityChangesName if global_stack.qualityChanges is not empty_quality_changes_container else None,
- layer_height = self.activeQualityLayerHeight if self.isActiveQualitySupported else None,
+ layer_height = float("{:.2f}".format(self.activeQualityLayerHeight)) if self.isActiveQualitySupported else None,
is_experimental = self.isActiveQualityExperimental and self.isActiveQualitySupported
)
diff --git a/packaging/MacOS/build_macos.py b/packaging/MacOS/build_macos.py
index a495a02769..a7063f688d 100644
--- a/packaging/MacOS/build_macos.py
+++ b/packaging/MacOS/build_macos.py
@@ -154,7 +154,7 @@ if __name__ == "__main__":
parser.add_argument("--app_name", required = True, type = str, help = "Filename of the .app that will be contained within the dmg/pkg")
args = parser.parse_args()
- cura_version = args.cura_conan_version.split("/")[-1]
+ cura_version = args.cura_conan_version.replace("+","-") # + is not allowed for bundle identifier
app_name = f"{args.app_name}.app"
diff --git a/plugins/MachineSettingsAction/MachineSettingsPrinterTab.qml b/plugins/MachineSettingsAction/MachineSettingsPrinterTab.qml
index c2238d2205..d40efbee8a 100644
--- a/plugins/MachineSettingsAction/MachineSettingsPrinterTab.qml
+++ b/plugins/MachineSettingsAction/MachineSettingsPrinterTab.qml
@@ -214,7 +214,7 @@ Item
settingStoreIndex: propertyStoreIndex
- labelText: catalog.i18nc("@label", "Y min")
+ labelText: catalog.i18nc("@label", "Y min ( '-' towards back)")
labelFont: base.labelFont
labelWidth: base.labelWidth
controlWidth: base.controlWidth
@@ -254,7 +254,7 @@ Item
settingKey: "machine_head_with_fans_polygon"
settingStoreIndex: propertyStoreIndex
- labelText: catalog.i18nc("@label", "Y max")
+ labelText: catalog.i18nc("@label", "Y max ( '+' towards front)")
labelFont: base.labelFont
labelWidth: base.labelWidth
controlWidth: base.controlWidth
diff --git a/plugins/MakerbotWriter/MakerbotWriter.py b/plugins/MakerbotWriter/MakerbotWriter.py
index 5c655dc8cc..f35b53a84d 100644
--- a/plugins/MakerbotWriter/MakerbotWriter.py
+++ b/plugins/MakerbotWriter/MakerbotWriter.py
@@ -46,6 +46,13 @@ class MakerbotWriter(MeshWriter):
suffixes=["makerbot"]
)
)
+ MimeTypeDatabase.addMimeType(
+ MimeType(
+ name="application/x-makerbot-replicator_plus",
+ comment="Makerbot Toolpath Package",
+ suffixes=["makerbot"]
+ )
+ )
_PNG_FORMAT = [
{"prefix": "isometric_thumbnail", "width": 120, "height": 120},
@@ -114,6 +121,8 @@ class MakerbotWriter(MeshWriter):
filename, filedata = "print.gcode", gcode_text_io.getvalue()
case "application/x-makerbot":
filename, filedata = "print.jsontoolpath", du.gcode_2_miracle_jtp(gcode_text_io.getvalue())
+ case "application/x-makerbot-replicator_plus":
+ filename, filedata = "print.jsontoolpath", du.gcode_2_miracle_jtp(gcode_text_io.getvalue(), nb_extruders=1)
case _:
raise Exception("Unsupported Mime type")
diff --git a/plugins/MakerbotWriter/__init__.py b/plugins/MakerbotWriter/__init__.py
index 60f232fbc0..bd766add8e 100644
--- a/plugins/MakerbotWriter/__init__.py
+++ b/plugins/MakerbotWriter/__init__.py
@@ -25,6 +25,12 @@ def getMetaData():
"description": catalog.i18nc("@item:inlistbox", "Makerbot Sketch Printfile"),
"mime_type": "application/x-makerbot-sketch",
"mode": MakerbotWriter.MakerbotWriter.OutputMode.BinaryMode,
+ },
+ {
+ "extension": file_extension,
+ "description": catalog.i18nc("@item:inlistbox", "Makerbot Replicator+ Printfile"),
+ "mime_type": "application/x-makerbot-replicator_plus",
+ "mode": MakerbotWriter.MakerbotWriter.OutputMode.BinaryMode,
}
]
},
diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py
index 4ca83772f2..090355a3c0 100644
--- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py
+++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py
@@ -331,7 +331,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice):
return False
[printer, *_] = self._printers
- return printer.type in ("MakerBot Method X", "MakerBot Method XL", "MakerBot Sketch")
+ return printer.type in ("MakerBot Method", "MakerBot Method X", "MakerBot Method XL", "MakerBot Sketch", "MakerBot Sketch Large", "MakerBot Sketch Sprint")
@pyqtProperty(bool, notify=_cloudClusterPrintersChanged)
def supportsPrintJobActions(self) -> bool:
diff --git a/plugins/UM3NetworkPrinting/src/Cloud/machine_id_to_name.json b/plugins/UM3NetworkPrinting/src/Cloud/machine_id_to_name.json
index 9d0db2a30d..6b99f74062 100644
--- a/plugins/UM3NetworkPrinting/src/Cloud/machine_id_to_name.json
+++ b/plugins/UM3NetworkPrinting/src/Cloud/machine_id_to_name.json
@@ -3,5 +3,7 @@
"ultimaker_methodx": "MakerBot Method X",
"ultimaker_methodxl": "MakerBot Method XL",
"ultimaker_factor4": "Ultimaker Factor 4",
- "ultimaker_sketch": "MakerBot Sketch"
+ "ultimaker_sketch": "MakerBot Sketch",
+ "ultimaker_sketch_large": "MakerBot Sketch Large",
+ "ultimaker_sketch_sprint": "MakerBot Sketch Sprint"
}
diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py
index 85b98e532b..18d9466eb5 100644
--- a/plugins/USBPrinting/USBPrinterOutputDevice.py
+++ b/plugins/USBPrinting/USBPrinterOutputDevice.py
@@ -97,6 +97,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
CuraApplication.getInstance().getOnExitCallbackManager().addCallback(self._checkActivePrintingUponAppExit)
+ CuraApplication.getInstance().getPreferences().addPreference("usb_printing/enabled", False)
+
# This is a callback function that checks if there is any printing in progress via USB when the application tries
# to exit. If so, it will show a confirmation before
def _checkActivePrintingUponAppExit(self) -> None:
@@ -144,6 +146,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice):
CuraApplication.getInstance().getController().setActiveStage("MonitorStage")
+ CuraApplication.getInstance().getPreferences().setValue("usb_printing/enabled", True)
+
#Find the g-code to print.
gcode_textio = StringIO()
gcode_writer = cast(MeshWriter, PluginRegistry.getInstance().getPluginObject("GCodeWriter"))
diff --git a/plugins/VersionUpgrade/VersionUpgrade59to510/VersionUpgrade59to510.py b/plugins/VersionUpgrade/VersionUpgrade59to510/VersionUpgrade59to510.py
new file mode 100644
index 0000000000..70190b6e7f
--- /dev/null
+++ b/plugins/VersionUpgrade/VersionUpgrade59to510/VersionUpgrade59to510.py
@@ -0,0 +1,68 @@
+import configparser
+import io
+from typing import Dict, Tuple, List
+
+from UM.VersionUpgrade import VersionUpgrade
+
+_RENAMED_SETTINGS = {
+ "wall_overhang_speed_factor": "wall_overhang_speed_factors"
+} # type: Dict[str, str]
+
+_NEW_SETTING_VERSION = "25"
+
+
+class VersionUpgrade59to510(VersionUpgrade):
+ def upgradePreferences(self, serialized: str, filename: str):
+ parser = configparser.ConfigParser(interpolation = None)
+ parser.read_string(serialized)
+
+ # Fix 'renamed'(ish) settings for visibility
+ if "visible_settings" in parser["general"]:
+ all_setting_keys = parser["general"]["visible_settings"].strip().split(";")
+ if all_setting_keys:
+ for idx, key in enumerate(all_setting_keys):
+ if key in _RENAMED_SETTINGS:
+ all_setting_keys[idx] = _RENAMED_SETTINGS[key]
+ parser["general"]["visible_settings"] = ";".join(all_setting_keys)
+
+ # Update version number.
+ parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION
+
+ result = io.StringIO()
+ parser.write(result)
+ return [filename], [result.getvalue()]
+
+ def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
+ parser = configparser.ConfigParser(interpolation = None, comment_prefixes = ())
+ parser.read_string(serialized)
+
+ # Update version number.
+ parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION
+
+ if "values" in parser:
+ for old_name, new_name in _RENAMED_SETTINGS.items():
+ if old_name in parser["values"]:
+ parser["values"][new_name] = parser["values"][old_name]
+ del parser["values"][old_name]
+ if "wall_overhang_speed_factors" in parser["values"]:
+ old_value = float(parser["values"]["wall_overhang_speed_factors"])
+ new_value = [max(1, int(round(old_value)))]
+ parser["values"]["wall_overhang_speed_factor"] = str(new_value)
+
+ result = io.StringIO()
+ parser.write(result)
+ return [filename], [result.getvalue()]
+
+ def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
+ parser = configparser.ConfigParser(interpolation = None)
+ parser.read_string(serialized)
+
+ # Update version number.
+ if "metadata" not in parser:
+ parser["metadata"] = {}
+
+ parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION
+
+ result = io.StringIO()
+ parser.write(result)
+ return [filename], [result.getvalue()]
diff --git a/plugins/VersionUpgrade/VersionUpgrade59to510/__init__.py b/plugins/VersionUpgrade/VersionUpgrade59to510/__init__.py
new file mode 100644
index 0000000000..4c2b2622b1
--- /dev/null
+++ b/plugins/VersionUpgrade/VersionUpgrade59to510/__init__.py
@@ -0,0 +1,60 @@
+# Copyright (c) 2024 UltiMaker
+# Cura is released under the terms of the LGPLv3 or higher.
+
+from typing import Any, Dict, TYPE_CHECKING
+
+from . import VersionUpgrade59to510
+
+if TYPE_CHECKING:
+ from UM.Application import Application
+
+upgrade = VersionUpgrade59to510.VersionUpgrade59to510()
+
+def getMetaData() -> Dict[str, Any]:
+ return {
+ "version_upgrade": {
+ # From To Upgrade function
+ ("preferences", 7000024): ("preferences", 7000025, upgrade.upgradePreferences),
+ ("machine_stack", 6000024): ("machine_stack", 6000025, upgrade.upgradeStack),
+ ("extruder_train", 6000024): ("extruder_train", 6000025, upgrade.upgradeStack),
+ ("definition_changes", 4000024): ("definition_changes", 4000025, upgrade.upgradeInstanceContainer),
+ ("quality_changes", 4000024): ("quality_changes", 4000025, upgrade.upgradeInstanceContainer),
+ ("quality", 4000024): ("quality", 4000025, upgrade.upgradeInstanceContainer),
+ ("user", 4000024): ("user", 4000025, upgrade.upgradeInstanceContainer),
+ ("intent", 4000024): ("intent", 4000025, upgrade.upgradeInstanceContainer),
+ },
+ "sources": {
+ "preferences": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"."}
+ },
+ "machine_stack": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./machine_instances"}
+ },
+ "extruder_train": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./extruders"}
+ },
+ "definition_changes": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./definition_changes"}
+ },
+ "quality_changes": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./quality_changes"}
+ },
+ "quality": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./quality"}
+ },
+ "user": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./user"}
+ }
+ }
+ }
+
+
+def register(app: "Application") -> Dict[str, Any]:
+ return {"version_upgrade": upgrade}
diff --git a/plugins/VersionUpgrade/VersionUpgrade59to510/plugin.json b/plugins/VersionUpgrade/VersionUpgrade59to510/plugin.json
new file mode 100644
index 0000000000..f06d6b3161
--- /dev/null
+++ b/plugins/VersionUpgrade/VersionUpgrade59to510/plugin.json
@@ -0,0 +1,8 @@
+{
+ "name": "Version Upgrade 5.9 to 5.10",
+ "author": "Ultimaker B.V.",
+ "version": "1.0.0",
+ "description": "Upgrades configurations from Cura 5.9 to Cura 5.10",
+ "api": 8,
+ "i18n-catalog": "cura"
+}
diff --git a/resources/conanfile.py b/resources/conanfile.py
index aea89f4569..cebaea4345 100644
--- a/resources/conanfile.py
+++ b/resources/conanfile.py
@@ -46,9 +46,9 @@ class CuraResource(ConanFile):
def package_info(self):
self.cpp_info.includedirs = []
- self.runenv_info.append_path("CURA_RESOURCES", os.path.join(self.package_folder, "res"))
- self.runenv_info.append_path("CURA_ENGINE_SEARCH_PATH", os.path.join(self.package_folder, "res", "definitions"))
- self.runenv_info.append_path("CURA_ENGINE_SEARCH_PATH", os.path.join(self.package_folder, "res", "extruders"))
+ self.runenv_info.define("CURA_RESOURCES", os.path.join(self.package_folder, "res"))
+ self.runenv_info.define("CURA_ENGINE_SEARCH_PATH", os.path.join(self.package_folder, "res", "definitions"))
+ self.runenv_info.define("CURA_ENGINE_SEARCH_PATH", os.path.join(self.package_folder, "res", "extruders"))
def package_id(self):
self.info.clear()
diff --git a/resources/definitions/ankermake_m5.def.json b/resources/definitions/ankermake_m5.def.json
index 4a70851e33..a4bc967108 100644
--- a/resources/definitions/ankermake_m5.def.json
+++ b/resources/definitions/ankermake_m5.def.json
@@ -120,7 +120,12 @@
"support_z_distance": { "value": "layer_height * 2" },
"top_bottom_thickness": { "value": "layer_height * 4" },
"wall_overhang_angle": { "value": 55 },
- "wall_overhang_speed_factor": { "value": 55 },
+ "wall_overhang_speed_factors":
+ {
+ "value": [
+ 55
+ ]
+ },
"zig_zaggify_infill": { "value": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'lines'" }
}
}
\ No newline at end of file
diff --git a/resources/definitions/ankermake_m5c.def.json b/resources/definitions/ankermake_m5c.def.json
index 131bd6bd7a..3e1d7db0a9 100644
--- a/resources/definitions/ankermake_m5c.def.json
+++ b/resources/definitions/ankermake_m5c.def.json
@@ -238,7 +238,12 @@
"wall_extruder_nr": { "value": -1 },
"wall_line_width_0": { "value": 0.44 },
"wall_overhang_angle": { "value": 45 },
- "wall_overhang_speed_factor": { "value": 40 },
+ "wall_overhang_speed_factors":
+ {
+ "value": [
+ 40
+ ]
+ },
"wall_thickness": { "value": 0.84 },
"wall_x_extruder_nr": { "value": -1 },
"zig_zaggify_infill": { "value": true }
diff --git a/resources/definitions/atmat_signal_pro_base.def.json b/resources/definitions/atmat_signal_pro_base.def.json
index cd59e1c169..01ecc1bdfe 100644
--- a/resources/definitions/atmat_signal_pro_base.def.json
+++ b/resources/definitions/atmat_signal_pro_base.def.json
@@ -167,7 +167,12 @@
"travel_avoid_supports": { "value": "True" },
"wall_line_width": { "value": "machine_nozzle_size" },
"wall_overhang_angle": { "value": "75" },
- "wall_overhang_speed_factor": { "value": "50" },
+ "wall_overhang_speed_factors":
+ {
+ "value": [
+ 50
+ ]
+ },
"zig_zaggify_infill": { "value": "True" }
}
}
\ No newline at end of file
diff --git a/resources/definitions/blocks_base.def.json b/resources/definitions/blocks_base.def.json
index fde5f912da..64e4213d5f 100644
--- a/resources/definitions/blocks_base.def.json
+++ b/resources/definitions/blocks_base.def.json
@@ -107,7 +107,7 @@
"travel_retract_before_outer_wall": { "value": true },
"wall_0_wipe_dist": { "value": 0.0 },
"wall_overhang_angle": { "default_value": 75 },
- "wall_overhang_speed_factor": { "default_value": 50 },
+ "wall_overhang_speed_factors": { "default_value": "[50]" },
"wall_thickness": { "value": "line_width * 2" },
"z_seam_corner": { "value": "'z_seam_corner_weighted'" },
"z_seam_type": { "value": "'back'" }
diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json
index c930a624d0..e8d8e94a18 100644
--- a/resources/definitions/fdmprinter.def.json
+++ b/resources/definitions/fdmprinter.def.json
@@ -384,6 +384,7 @@
"RepRap (RepRap)": "RepRap",
"UltiGCode": "Ultimaker 2",
"Griffin": "Griffin",
+ "Cheetah": "Griffin+Cheetah",
"Makerbot": "Makerbot",
"BFB": "Bits from Bytes",
"MACH3": "Mach3",
@@ -461,7 +462,7 @@
"machine_head_with_fans_polygon":
{
"label": "Machine Head & Fan Polygon",
- "description": "The shape of the print head. These are coordinates relative to the position of the print head, which is usually the position of its first extruder. The dimensions left and in front of the print head must be negative coordinates.",
+ "description": "The dimensions of the print head used to determine 'Safe Model Distance' when printing 'One at a Time'. These numbers relate to the centerline of the first extruder nozzle. Left of the nozzle is 'X Min' and must be negative. Rear of the nozzle is 'Y Min' and must be negative. X Max (right) and Y Max (front) are positive numbers. Gantry height is the dimension from the build plate to the X gantry beam.",
"type": "polygon",
"default_value": [
[-20, 10],
@@ -3231,6 +3232,19 @@
"minimum_value": 0.01,
"settable_per_mesh": false,
"settable_per_extruder": true
+ },
+ "material_pressure_advance_factor":
+ {
+ "enabled": false,
+ "label": "Pressure advance factor",
+ "description": "Tuning factor for pressure advance, which is meant to synchronize extrusion with motion",
+ "default_value": 0.05,
+ "maximum_value_warning": 1.0,
+ "minimum_value": 0,
+ "type": "float",
+ "settable_per_mesh": false,
+ "settable_per_extruder": true,
+ "settable_per_meshgroup": false
}
}
},
@@ -4412,6 +4426,21 @@
"settable_per_mesh": false,
"settable_per_extruder": true
},
+ "retraction_combing_avoid_distance":
+ {
+ "label": "Inside Travel Avoid Distance",
+ "description": "The distance between the nozzle and already printed outer walls when travelling inside a model.",
+ "unit": "mm",
+ "type": "float",
+ "default_value": 0,
+ "value": "machine_nozzle_size * 1.5",
+ "minimum_value": "0",
+ "minimum_value_warning": "machine_nozzle_size * 0.5",
+ "maximum_value_warning": "machine_nozzle_size * 10",
+ "enabled": "resolveOrValue('retraction_combing') != 'off'",
+ "settable_per_mesh": false,
+ "settable_per_extruder": true
+ },
"travel_retract_before_outer_wall":
{
"label": "Retract Before Outer Wall",
@@ -4699,6 +4728,31 @@
"settable_per_mesh": false,
"settable_per_extruder": true
},
+ "cool_min_layer_time_overhang":
+ {
+ "label": "Minimum Layer Time with Overhang",
+ "description": "The minimum time spent in a layer that contains overhanging extrusions. This forces the printer to slow down, to at least spend the time set here in one layer. This allows the printed material to cool down properly before printing the next layer. Layers may still take shorter than the minimal layer time if Lift Head is disabled and if the Minimum Speed would otherwise be violated.",
+ "unit": "s",
+ "type": "float",
+ "default_value": 5,
+ "value": "cool_min_layer_time",
+ "minimum_value": "0",
+ "maximum_value_warning": "600",
+ "settable_per_mesh": false,
+ "settable_per_extruder": true
+ },
+ "cool_min_layer_time_overhang_min_segment_length":
+ {
+ "label": "Minimum Overhang Segment Length",
+ "description": "When trying to apply the minimum layer time specific for overhanging layers, it will be applied only if at least one consecutive overhanging extrusion move is longer than this value.",
+ "unit": "mm",
+ "type": "float",
+ "default_value": 5,
+ "minimum_value": "0",
+ "maximum_value_warning": "500",
+ "settable_per_mesh": false,
+ "settable_per_extruder": true
+ },
"cool_min_speed":
{
"label": "Minimum Speed",
@@ -7485,6 +7539,88 @@
"enabled": "retraction_enable and extruders_enabled_count > 1",
"settable_per_mesh": false,
"settable_per_extruder": true
+ },
+ "interlocking_enable":
+ {
+ "label": "Generate Interlocking Structure",
+ "description": "At the locations where models touch, generate an interlocking beam structure. This improves the adhesion between models, especially models printed in different materials.",
+ "type": "bool",
+ "enabled": "extruders_enabled_count > 1",
+ "default_value": false,
+ "resolve": "(extruders_enabled_count > 1) and any(extruderValues('interlocking_enable'))",
+ "settable_per_mesh": false,
+ "settable_per_extruder": false
+ },
+ "interlocking_beam_width":
+ {
+ "label": "Interlocking Beam Width",
+ "description": "The width of the interlocking structure beams.",
+ "type": "float",
+ "unit": "mm",
+ "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
+ "default_value": 0.8,
+ "value": "2 * wall_line_width_0",
+ "minimum_value": "min_odd_wall_line_width",
+ "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)",
+ "maximum_value_warning": "max(extruderValues('wall_line_width_0')) * 6",
+ "settable_per_mesh": true,
+ "settable_per_extruder": true
+ },
+ "interlocking_orientation":
+ {
+ "label": "Interlocking Structure Orientation",
+ "description": "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.",
+ "unit": "\u00b0",
+ "type": "float",
+ "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
+ "default_value": 22.5,
+ "minimum_value": "0",
+ "maximum_value": "360",
+ "resolve": "min(extruderValues('interlocking_orientation'))",
+ "settable_per_mesh": false,
+ "settable_per_extruder": false
+ },
+ "interlocking_beam_layer_count":
+ {
+ "label": "Interlocking Beam Layer Count",
+ "description": "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.",
+ "type": "int",
+ "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
+ "default_value": 2,
+ "minimum_value": "1",
+ "maximum_value_warning": "50",
+ "resolve": "max(extruderValues('interlocking_beam_layer_count'))",
+ "settable_per_mesh": false,
+ "settable_per_extruder": false
+ },
+ "interlocking_depth":
+ {
+ "label": "Interlocking Depth",
+ "description": "The distance from the boundary between models to generate interlocking structure, measured in cells. Too few cells will result in poor adhesion.",
+ "type": "int",
+ "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
+ "default_value": 2,
+ "minimum_value": "1",
+ "maximum_value": "10",
+ "maximum_value_warning": "5",
+ "resolve": "max(extruderValues('interlocking_depth'))",
+ "settable_per_mesh": false,
+ "settable_per_extruder": false
+ },
+ "interlocking_boundary_avoidance":
+ {
+ "label": "Interlocking Boundary Avoidance",
+ "description": "The distance from the outside of a model where interlocking structures will not be generated, measured in cells.",
+ "type": "int",
+ "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
+ "default_value": 2,
+ "minimum_value": "0",
+ "minimum_value_warning": "resolveOrValue('interlocking_depth')",
+ "maximum_value": "10",
+ "maximum_value_warning": "5",
+ "resolve": "max(extruderValues('interlocking_boundary_avoidance'))",
+ "settable_per_mesh": false,
+ "settable_per_extruder": false
}
}
},
@@ -7907,88 +8043,6 @@
"settable_per_mesh": true,
"settable_per_extruder": false
},
- "interlocking_enable":
- {
- "label": "Generate Interlocking Structure",
- "description": "At the locations where models touch, generate an interlocking beam structure. This improves the adhesion between models, especially models printed in different materials.",
- "type": "bool",
- "enabled": "extruders_enabled_count > 1",
- "default_value": false,
- "resolve": "(extruders_enabled_count > 1) and any(extruderValues('interlocking_enable'))",
- "settable_per_mesh": false,
- "settable_per_extruder": false
- },
- "interlocking_beam_width":
- {
- "label": "Interlocking Beam Width",
- "description": "The width of the interlocking structure beams.",
- "type": "float",
- "unit": "mm",
- "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
- "default_value": 0.8,
- "value": "2 * wall_line_width_0",
- "minimum_value": "min_odd_wall_line_width",
- "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)",
- "maximum_value_warning": "max(extruderValues('wall_line_width_0')) * 6",
- "settable_per_mesh": true,
- "settable_per_extruder": true
- },
- "interlocking_orientation":
- {
- "label": "Interlocking Structure Orientation",
- "description": "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.",
- "unit": "\u00b0",
- "type": "float",
- "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
- "default_value": 22.5,
- "minimum_value": "0",
- "maximum_value": "360",
- "resolve": "min(extruderValues('interlocking_orientation'))",
- "settable_per_mesh": false,
- "settable_per_extruder": false
- },
- "interlocking_beam_layer_count":
- {
- "label": "Interlocking Beam Layer Count",
- "description": "The height of the beams of the interlocking structure, measured in number of layers. Less layers is stronger, but more prone to defects.",
- "type": "int",
- "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
- "default_value": 2,
- "minimum_value": "1",
- "maximum_value_warning": "50",
- "resolve": "max(extruderValues('interlocking_beam_layer_count'))",
- "settable_per_mesh": false,
- "settable_per_extruder": false
- },
- "interlocking_depth":
- {
- "label": "Interlocking Depth",
- "description": "The distance from the boundary between models to generate interlocking structure, measured in cells. Too few cells will result in poor adhesion.",
- "type": "int",
- "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
- "default_value": 2,
- "minimum_value": "1",
- "maximum_value": "10",
- "maximum_value_warning": "5",
- "resolve": "max(extruderValues('interlocking_depth'))",
- "settable_per_mesh": false,
- "settable_per_extruder": false
- },
- "interlocking_boundary_avoidance":
- {
- "label": "Interlocking Boundary Avoidance",
- "description": "The distance from the outside of a model where interlocking structures will not be generated, measured in cells.",
- "type": "int",
- "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
- "default_value": 2,
- "minimum_value": "0",
- "minimum_value_warning": "resolveOrValue('interlocking_depth')",
- "maximum_value": "10",
- "maximum_value_warning": "5",
- "resolve": "max(extruderValues('interlocking_boundary_avoidance'))",
- "settable_per_mesh": false,
- "settable_per_extruder": false
- },
"support_skip_some_zags":
{
"label": "Break Up Support In Chunks",
@@ -8401,15 +8455,13 @@
"value": "support_angle",
"settable_per_mesh": true
},
- "wall_overhang_speed_factor":
+ "wall_overhang_speed_factors":
{
- "label": "Overhanging Wall Speed",
- "description": "Overhanging walls will be printed at this percentage of their normal print speed.",
+ "label": "Overhanging Wall Speeds",
+ "description": "Overhanging walls will be printed at a percentage of their normal print speed. You can specify multiple values, so that even more overhanging walls will be printed even slower, e.g. by setting [75, 50, 25]",
"unit": "%",
- "type": "float",
- "default_value": 100,
- "minimum_value": "0.001",
- "minimum_value_warning": "25",
+ "type": "[int]",
+ "default_value": "[100]",
"settable_per_mesh": true
},
"bridge_settings_enabled":
diff --git a/resources/definitions/gutenberg_base.def.json b/resources/definitions/gutenberg_base.def.json
index f0329bef6d..335718c21a 100644
--- a/resources/definitions/gutenberg_base.def.json
+++ b/resources/definitions/gutenberg_base.def.json
@@ -109,7 +109,12 @@
"travel_avoid_other_parts": { "default_value": false },
"wall_line_width": { "value": "machine_nozzle_size" },
"wall_overhang_angle": { "default_value": 75 },
- "wall_overhang_speed_factor": { "default_value": 50 },
+ "wall_overhang_speed_factors":
+ {
+ "default_value": [
+ 50
+ ]
+ },
"zig_zaggify_infill": { "value": true }
}
}
\ No newline at end of file
diff --git a/resources/definitions/lotmaxx_sc60.def.json b/resources/definitions/lotmaxx_sc60.def.json
index f4ce358be1..f283e56442 100644
--- a/resources/definitions/lotmaxx_sc60.def.json
+++ b/resources/definitions/lotmaxx_sc60.def.json
@@ -61,7 +61,12 @@
"support_pattern": { "default_value": "lines" },
"switch_extruder_retraction_amount": { "value": 100 },
"switch_extruder_retraction_speeds": { "value": 60 },
- "wall_overhang_speed_factor": { "value": 50 },
+ "wall_overhang_speed_factors":
+ {
+ "value": [
+ 50
+ ]
+ },
"z_seam_corner": { "default_value": "z_seam_corner_any" },
"z_seam_relative": { "value": true },
"z_seam_type": { "default_value": "sharpest_corner" },
diff --git a/resources/definitions/snakeoil_standard_base.def.json b/resources/definitions/snakeoil_standard_base.def.json
index 700edf3d35..16bec69636 100644
--- a/resources/definitions/snakeoil_standard_base.def.json
+++ b/resources/definitions/snakeoil_standard_base.def.json
@@ -109,7 +109,12 @@
"travel_avoid_other_parts": { "default_value": false },
"wall_line_width": { "value": "machine_nozzle_size" },
"wall_overhang_angle": { "default_value": 75 },
- "wall_overhang_speed_factor": { "default_value": 50 },
+ "wall_overhang_speed_factors":
+ {
+ "default_value": [
+ 50
+ ]
+ },
"zig_zaggify_infill": { "value": true }
}
}
\ No newline at end of file
diff --git a/resources/definitions/sovol_base_bowden.def.json b/resources/definitions/sovol_base_bowden.def.json
index 670b24fffc..0f389a25f8 100644
--- a/resources/definitions/sovol_base_bowden.def.json
+++ b/resources/definitions/sovol_base_bowden.def.json
@@ -10,6 +10,6 @@
"overrides":
{
"retraction_amount": { "default_value": 5 },
- "retraction_speed": { "value": "machine_max_feedrate_e" }
+ "retraction_speed": { "value": "resolveOrValue('machine_max_feedrate_e')" }
}
}
\ No newline at end of file
diff --git a/resources/definitions/ultimaker_sketch.def.json b/resources/definitions/ultimaker_sketch.def.json
index 2f96b52397..f746417e70 100644
--- a/resources/definitions/ultimaker_sketch.def.json
+++ b/resources/definitions/ultimaker_sketch.def.json
@@ -52,15 +52,13 @@
"ultimaker_rapidrinse",
"ultimaker_sr30",
"ultimaker_petg",
- "ultimaker_metallic_pla",
"basf_",
"jabil_",
"polymaker_",
"ultimaker_rapidrinse",
"ultimaker_sr30",
"ultimaker_petg",
- "ultimaker_pva",
- "ultimaker_metallic_pla"
+ "ultimaker_pva"
],
"has_machine_quality": true,
"has_materials": true,
diff --git a/resources/definitions/ultimaker_sketch_sprint.def.json b/resources/definitions/ultimaker_sketch_sprint.def.json
index cde655e70f..882fe875d3 100644
--- a/resources/definitions/ultimaker_sketch_sprint.def.json
+++ b/resources/definitions/ultimaker_sketch_sprint.def.json
@@ -53,8 +53,7 @@
"ultimaker_pva",
"ultimaker_rapidrinse",
"ultimaker_sr30",
- "ultimaker_petg",
- "ultimaker_metallic_pla"
+ "ultimaker_petg"
],
"has_machine_quality": true,
"has_materials": true,
@@ -380,10 +379,12 @@
"wall_0_wipe_dist": { "value": 0.2 },
"wall_line_width_x": { "value": 0.58 },
"wall_overhang_angle": { "value": 35 },
- "wall_overhang_speed_factor":
+ "wall_overhang_speed_factors":
{
"minimum_value_warning": 15,
- "value": 17.5
+ "value": [
+ 18
+ ]
},
"wall_thickness": { "value": 1 },
"wall_x_material_flow_layer_0": { "value": "material_flow" },
diff --git a/resources/definitions/voron2_base.def.json b/resources/definitions/voron2_base.def.json
index dc6cd255bb..d08166d60d 100644
--- a/resources/definitions/voron2_base.def.json
+++ b/resources/definitions/voron2_base.def.json
@@ -119,7 +119,12 @@
"travel_avoid_other_parts": { "default_value": false },
"wall_line_width": { "value": "machine_nozzle_size" },
"wall_overhang_angle": { "default_value": 75 },
- "wall_overhang_speed_factor": { "default_value": 50 },
+ "wall_overhang_speed_factors":
+ {
+ "default_value": [
+ 50
+ ]
+ },
"zig_zaggify_infill": { "value": true }
}
}
\ No newline at end of file
diff --git a/resources/definitions/vzbot_base.def.json b/resources/definitions/vzbot_base.def.json
index 4efdbc2f66..a447f1acdb 100644
--- a/resources/definitions/vzbot_base.def.json
+++ b/resources/definitions/vzbot_base.def.json
@@ -195,7 +195,12 @@
"travel_avoid_other_parts": { "default_value": false },
"wall_line_width": { "value": "machine_nozzle_size" },
"wall_overhang_angle": { "default_value": 75 },
- "wall_overhang_speed_factor": { "default_value": 50 },
+ "wall_overhang_speed_factors":
+ {
+ "default_value": [
+ 50
+ ]
+ },
"xy_offset_layer_0": { "value": -0.3 },
"z_seam_type": { "value": "'back'" },
"zig_zaggify_infill": { "value": true }
diff --git a/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm_visual.inst.cfg
new file mode 100644
index 0000000000..6a81905545
--- /dev/null
+++ b/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-pla-175_0.2mm_visual.inst.cfg
@@ -0,0 +1,42 @@
+[general]
+definition = ultimaker_sketch_sprint
+name = Visual
+version = 4
+
+[metadata]
+intent_category = visual
+is_experimental = True
+material = ultimaker_pla_175
+quality_type = draft
+setting_version = 24
+type = intent
+variant = 0.4mm
+
+[values]
+acceleration_roofing = 1500
+acceleration_wall_0_roofing = 1500
+acceleration_wall_x_roofing = 1500
+cool_min_temperature = 220.0
+hole_xy_offset = 0.2
+hole_xy_offset_max_diameter = 3
+inset_direction = inside_out
+line_width = 0.4
+material_final_print_temperature = =material_print_temperature
+material_initial_print_temperature = =material_print_temperature
+material_print_temperature = 220
+min_bead_width = 0.34
+min_wall_line_width = 0.34
+roofing_line_width = 0.35
+roofing_monotonic = False
+roofing_pattern = lines
+skin_monotonic = False
+skin_outline_count = 0
+skin_overlap = 25
+small_feature_max_length = 25
+small_feature_speed_factor = 40
+small_hole_max_size = 4.5
+small_skin_width = 4
+speed_roofing = 100
+wall_line_width_x = 0.4
+z_seam_type = back
+
diff --git a/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-tough-pla-175_0.2mm_visual.inst.cfg b/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-tough-pla-175_0.2mm_visual.inst.cfg
new file mode 100644
index 0000000000..1635985b89
--- /dev/null
+++ b/resources/intent/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-tough-pla-175_0.2mm_visual.inst.cfg
@@ -0,0 +1,42 @@
+[general]
+definition = ultimaker_sketch_sprint
+name = Visual
+version = 4
+
+[metadata]
+intent_category = visual
+is_experimental = True
+material = ultimaker_tough_pla_175
+quality_type = draft
+setting_version = 24
+type = intent
+variant = 0.4mm
+
+[values]
+acceleration_roofing = 1500
+acceleration_wall_0_roofing = 1500
+acceleration_wall_x_roofing = 1500
+cool_min_temperature = 220.0
+hole_xy_offset = 0.2
+hole_xy_offset_max_diameter = 3
+inset_direction = inside_out
+line_width = 0.4
+material_final_print_temperature = =material_print_temperature
+material_initial_print_temperature = =material_print_temperature
+material_print_temperature = 220
+min_bead_width = 0.34
+min_wall_line_width = 0.34
+roofing_line_width = 0.35
+roofing_monotonic = False
+roofing_pattern = lines
+skin_monotonic = False
+skin_outline_count = 0
+skin_overlap = 25
+small_feature_max_length = 25
+small_feature_speed_factor = 40
+small_hole_max_size = 4.5
+small_skin_width = 4
+speed_roofing = 100
+wall_line_width_x = 0.4
+z_seam_type = back
+
diff --git a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml
index bcbb6d7679..f76e1c6ef7 100644
--- a/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml
+++ b/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml
@@ -1,4 +1,4 @@
-// Copyright (c) 2018 Ultimaker B.V.
+// Copyright (c) 2025 UltiMaker
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7
@@ -12,7 +12,7 @@ Button
id: configurationItem
property var configuration: null
- hoverEnabled: isValidMaterial
+ hoverEnabled: isValidMaterial && isValidCore
property bool isValidMaterial:
{
@@ -25,7 +25,6 @@ Button
for (var index in extruderConfigurations)
{
var name = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : ""
-
if (name == "" || name == "Unknown")
{
return false
@@ -34,6 +33,25 @@ Button
return true
}
+ property bool isValidCore:
+ {
+ if (configuration === null)
+ {
+ return false
+ }
+ var extruderConfigurations = configuration.extruderConfigurations
+ var coresList = configuration.validCoresForPrinterType
+ for (var index in extruderConfigurations)
+ {
+ var name = extruderConfigurations[index].hotendID ? extruderConfigurations[index].hotendID : ""
+ if (name != "" && ! coresList.includes(name))
+ {
+ return false
+ }
+ }
+ return true
+ }
+
background: Rectangle
{
color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
@@ -60,7 +78,7 @@ Button
right: parent.right
rightMargin: UM.Theme.getSize("wide_margin").width
}
- height: childrenRect.height
+ height: unknownMaterial.visible ? unknownMaterial.height : (repeater.count > 0 ? repeater.itemAt(0).height : 0)
spacing: UM.Theme.getSize("default_margin").width
Repeater
@@ -72,21 +90,20 @@ Button
{
width: Math.round(parent.width / (configuration !== null ? configuration.extruderConfigurations.length : 1))
printCoreConfiguration: modelData
- visible: configurationItem.isValidMaterial
+ visible: configurationItem.isValidMaterial && configurationItem.isValidCore
}
}
- // Unknown material
+ // Unknown material or core ('variant')
Item
{
id: unknownMaterial
- height: unknownMaterialMessage.height + UM.Theme.getSize("thin_margin").width / 2
+ height: unknownMaterialMessage.height
width: parent.width
anchors.top: parent.top
- anchors.topMargin: UM.Theme.getSize("thin_margin").width / 2
- visible: !configurationItem.isValidMaterial
+ visible: ! (configurationItem.isValidMaterial && configurationItem.isValidCore)
UM.ColorImage
{
@@ -102,13 +119,9 @@ Button
UM.Label
{
id: unknownMaterialMessage
- text:
- {
- if (configuration === null)
- {
- return ""
- }
+ function whenUnknownMaterial()
+ {
var extruderConfigurations = configuration.extruderConfigurations
var unknownMaterials = []
for (var index in extruderConfigurations)
@@ -135,9 +148,47 @@ Button
unknownMaterials = "" + unknownMaterials + ""
var draftResult = catalog.i18nc("@label", "This configuration is not available because %1 is not recognized. Please visit %2 to download the correct material profile.");
- var result = draftResult.arg(unknownMaterials).arg("" + catalog.i18nc("@label","Marketplace") + " ")
+ return draftResult.arg(unknownMaterials).arg("" + catalog.i18nc("@label","Marketplace") + " ")
+ }
- return result
+ function whenMismatchedCore()
+ {
+ var extruderConfigurations = configuration.extruderConfigurations
+ var coresList = configuration.validCoresForPrinterType
+ var mismatchedCores = []
+ for (var index in extruderConfigurations)
+ {
+ var name = extruderConfigurations[index].hotendID ? extruderConfigurations[index].hotendID : ""
+ if (name != "" && ! coresList.includes(name))
+ {
+ mismatchedCores.push(name)
+ }
+ }
+
+ mismatchedCores = "" + mismatchedCores + ""
+ var draftResult = catalog.i18nc("@label", "This configuration is not available because there is a mismatch or other problem with core-type %1. Please visit %2 to check which cores this printer-type supports w.r.t. new slices.");
+ return draftResult.arg(mismatchedCores).arg("" + catalog.i18nc("@label","WEBSITE") + " ")
+ }
+
+ text:
+ {
+ if (configuration === null)
+ {
+ return ""
+ }
+
+ var extruderConfigurations = configuration.extruderConfigurations
+ var perExtruder = []
+ for (var index in extruderConfigurations)
+ {
+ var matName = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : ""
+ var coreName = extruderConfigurations[index].hotendID ? extruderConfigurations[index].hotendID : ""
+ perExtruder.push(` [${coreName}/${matName}]`)
+ }
+
+ var configsStr = "" + perExtruder + ""
+ var warnStr = isValidMaterial ? whenMismatchedCore() : whenUnknownMaterial()
+ return configsStr + "
" + warnStr
}
width: extruderRow.width
@@ -225,7 +276,7 @@ Button
onClicked:
{
- if(isValidMaterial)
+ if (isValidMaterial && isValidCore)
{
toggleContent()
Cura.MachineManager.applyRemoteConfiguration(configuration)
diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml
index a686fca8e5..62cab53a78 100644
--- a/resources/qml/Preferences/GeneralPage.qml
+++ b/resources/qml/Preferences/GeneralPage.qml
@@ -669,12 +669,12 @@ UM.PreferencesPage
{
width: childrenRect.width
height: childrenRect.height
- text: catalog.i18nc("@info:tooltip", "Should the Y axis of the translate toolhandle be flipped?")
+ text: catalog.i18nc("@info:tooltip", "Should the Y axis of the translate toolhandle be flipped? This will only affect model's Y coordinate, all other settings such as machine Printhead settings are unaffected and still behave as before.")
UM.CheckBox
{
id: flipToolhandleYCheckbox
- text: catalog.i18nc("@option:check", "Flip toolhandle Y axis")
+ text: catalog.i18nc("@option:check", "Flip model's toolhandle Y axis (restart required)")
checked: boolCheck(UM.Preferences.getValue("tool/flip_y_axis_tool_handle"))
onCheckedChanged: UM.Preferences.setValue("tool/flip_y_axis_tool_handle", checked)
}
diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml
index 1d8ad654e3..f46c59ff61 100644
--- a/resources/qml/Settings/SettingItem.qml
+++ b/resources/qml/Settings/SettingItem.qml
@@ -13,7 +13,7 @@ import "."
Item
{
id: base
- height: enabled ? UM.Theme.getSize("section").height + UM.Theme.getSize("narrow_margin").height : 0
+ height: enabled ? Math.max(UM.Theme.getSize("section").height, label.height) + UM.Theme.getSize("narrow_margin").height : 0
anchors.left: parent.left
anchors.right: parent.right
diff --git a/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg b/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg
index 50ed6266a0..d058a2d219 100644
--- a/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg
+++ b/resources/quality/flsun_v400/flsun_v400_normal.inst.cfg
@@ -115,7 +115,7 @@ travel_avoid_other_parts = True
travel_avoid_supports = True
travel_retract_before_outer_wall = False
wall_overhang_angle = 35.0
-wall_overhang_speed_factor = 60.0
+wall_overhang_speed_factors = [60]
wall_thickness = =line_width*2
z_seam_corner = z_seam_corner_inner
z_seam_position = backright
diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-abs-175_0.2mm.inst.cfg
index 4f5ae8282d..cf7eab6e73 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_1c_um-abs-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-abs-175_0.2mm.inst.cfg
@@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-abscf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-abscf-175_0.2mm.inst.cfg
index 0ff8f11091..f0eafdde7e 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_1c_um-abscf-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-abscf-175_0.2mm.inst.cfg
@@ -52,5 +52,5 @@ support_xy_distance = 0.3
support_xy_distance_overhang = 0.25
support_z_distance = 0.15
wall_overhang_angle = 30
-wall_overhang_speed_factor = 50
+wall_overhang_speed_factors = [50]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm.inst.cfg
index ff1861c695..057ae522ed 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-absr-175_0.2mm.inst.cfg
@@ -58,5 +58,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm.inst.cfg
index fe6c6fa10c..7e03bcd23c 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_1c_um-asa-175_0.2mm.inst.cfg
@@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-abs-175_0.2mm.inst.cfg
index 45e11f5e9d..f2a60264b1 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-abs-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-abs-175_0.2mm.inst.cfg
@@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm.inst.cfg
index 18b44fda57..e87533888b 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-absr-175_0.2mm.inst.cfg
@@ -58,5 +58,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm.inst.cfg
index 774b8fb2a8..1ad566527f 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_1xa_um-asa-175_0.2mm.inst.cfg
@@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg
index e9d09c2c34..795235c75e 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg
@@ -54,5 +54,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.22
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-abs-175_0.2mm.inst.cfg
index a5f7d05d6e..c4ab6ee115 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_labs_um-abs-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-abs-175_0.2mm.inst.cfg
@@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-abscf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-abscf-175_0.2mm.inst.cfg
index 56e2126cb2..25dbd1868a 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_labs_um-abscf-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-abscf-175_0.2mm.inst.cfg
@@ -52,5 +52,5 @@ support_xy_distance = 0.3
support_xy_distance_overhang = 0.25
support_z_distance = 0.15
wall_overhang_angle = 30
-wall_overhang_speed_factor = 50
+wall_overhang_speed_factors = [50]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm.inst.cfg
index 7447dc5085..8b19d722d4 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-absr-175_0.2mm.inst.cfg
@@ -58,5 +58,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm.inst.cfg
index d2f64e3b65..c19ff979bf 100644
--- a/resources/quality/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodx/um_methodx_labs_um-asa-175_0.2mm.inst.cfg
@@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abs-175_0.2mm.inst.cfg
index caf364adc9..fe70d6d0c6 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abs-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abs-175_0.2mm.inst.cfg
@@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abscf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abscf-175_0.2mm.inst.cfg
index e4a889749a..d4d053df9f 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abscf-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-abscf-175_0.2mm.inst.cfg
@@ -54,5 +54,5 @@ support_xy_distance = 0.3
support_xy_distance_overhang = 0.25
support_z_distance = 0.15
wall_overhang_angle = 30
-wall_overhang_speed_factor = 50
+wall_overhang_speed_factors = [50]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm.inst.cfg
index a08dd10302..29b3de7eac 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-absr-175_0.2mm.inst.cfg
@@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm.inst.cfg
index 420a719235..a3b23179cb 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_1c_um-asa-175_0.2mm.inst.cfg
@@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-abs-175_0.2mm.inst.cfg
index 39b7d69230..e31448572e 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-abs-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-abs-175_0.2mm.inst.cfg
@@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm.inst.cfg
index 84086e1856..3596d12095 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-absr-175_0.2mm.inst.cfg
@@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm.inst.cfg
index 155696925f..5d3c07cde9 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_1xa_um-asa-175_0.2mm.inst.cfg
@@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg
index a075d5ffe6..29433f8387 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_polymaker-polymax-pc-175_0.2mm.inst.cfg
@@ -54,5 +54,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.22
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abs-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abs-175_0.2mm.inst.cfg
index 3309bb6660..627ff55215 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abs-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abs-175_0.2mm.inst.cfg
@@ -59,5 +59,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abscf-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abscf-175_0.2mm.inst.cfg
index 6596cdd4df..71bcca17c0 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abscf-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-abscf-175_0.2mm.inst.cfg
@@ -54,5 +54,5 @@ support_xy_distance = 0.3
support_xy_distance_overhang = 0.25
support_z_distance = 0.15
wall_overhang_angle = 30
-wall_overhang_speed_factor = 50
+wall_overhang_speed_factors = [50]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm.inst.cfg
index e7a46cdcee..fa7a1b5e56 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-absr-175_0.2mm.inst.cfg
@@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm.inst.cfg b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm.inst.cfg
index 972840dde0..d9f9ba645e 100644
--- a/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm.inst.cfg
+++ b/resources/quality/ultimaker_methodxl/um_methodxl_labs_um-asa-175_0.2mm.inst.cfg
@@ -57,5 +57,5 @@ support_xy_overrides_z = xy_overrides_z
support_z_distance = 0.15
top_skin_expand_distance = 2.4
wall_overhang_angle = 30
-wall_overhang_speed_factor = 40
+wall_overhang_speed_factors = [40]
diff --git a/resources/quality/ultimaker_sketch/um_sketch_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg b/resources/quality/ultimaker_sketch/um_sketch_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg
new file mode 100644
index 0000000000..7e3fa34166
--- /dev/null
+++ b/resources/quality/ultimaker_sketch/um_sketch_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg
@@ -0,0 +1,15 @@
+[general]
+definition = ultimaker_sketch
+name = Fast
+version = 4
+
+[metadata]
+material = ultimaker_metallic_pla_175
+quality_type = draft
+setting_version = 24
+type = quality
+variant = 0.4mm
+weight = -2
+
+[values]
+
diff --git a/resources/quality/ultimaker_sketch_large/um_sketch_large_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg b/resources/quality/ultimaker_sketch_large/um_sketch_large_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg
new file mode 100644
index 0000000000..b9ea5d2aec
--- /dev/null
+++ b/resources/quality/ultimaker_sketch_large/um_sketch_large_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg
@@ -0,0 +1,15 @@
+[general]
+definition = ultimaker_sketch_large
+name = Fast
+version = 4
+
+[metadata]
+material = ultimaker_metallic_pla_175
+quality_type = draft
+setting_version = 24
+type = quality
+variant = 0.4mm
+weight = -2
+
+[values]
+
diff --git a/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg b/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg
new file mode 100644
index 0000000000..dd752baffa
--- /dev/null
+++ b/resources/quality/ultimaker_sketch_sprint/um_sketch_sprint_0.4mm_um-metallic-pla-175_0.2mm.inst.cfg
@@ -0,0 +1,28 @@
+[general]
+definition = ultimaker_sketch_sprint
+name = Fast
+version = 4
+
+[metadata]
+material = ultimaker_metallic_pla_175
+quality_type = draft
+setting_version = 24
+type = quality
+variant = 0.4mm
+weight = -2
+
+[values]
+cool_min_temperature = 230
+infill_angles = [45,45,45,45,45,135,135,135,135,135]
+material_final_print_temperature = 230
+material_initial_print_temperature = 230
+speed_print = 125
+speed_roofing = 100
+speed_support_bottom = 100
+speed_support_interface = 125
+speed_topbottom = 100
+speed_wall = 75
+speed_wall_x = 100
+support_material_flow = 92
+wall_overhang_speed_factor = 23
+
diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg
index d89894647c..9819984b71 100644
--- a/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_ASA_extrafine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = extrafine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg
index e3d0252d49..05d0a504e9 100644
--- a/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_ASA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg
index ab3e3e17ea..e1111c1026 100644
--- a/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_ASA_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg
index b9e9565c3c..b4e2f49779 100644
--- a/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_ASA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg
index 991ac5d101..10f80e4785 100644
--- a/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_PVA_extrafine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = extrafine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg
index e148d1c4b6..c84b36660b 100644
--- a/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_PVA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg
index 9b9a0ffee9..c6eb62e1b6 100644
--- a/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_PVA_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg
index d134c72fdb..f2e5706e31 100644
--- a/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_PVA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg
index e7b6b714fb..9324b9ba0e 100644
--- a/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_TPU_extrafine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = extrafine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg
index a93e0bd832..862586934e 100644
--- a/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg
index ee2404bc08..ee753c59cf 100644
--- a/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_TPU_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg
index 6931141a6f..3505479774 100644
--- a/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.25_TPU_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.25mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg
index 895ff9daf4..dcf9a6fe45 100644
--- a/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_ASA_extrafine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = extrafine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg
index f10be46a98..b79bb0e096 100644
--- a/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_ASA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg
index 2b7356f1a5..0d85a07e9c 100644
--- a/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_ASA_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg
index 542b8d2986..734e32367c 100644
--- a/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_ASA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg
index 2ce1651a4c..97c131f56b 100644
--- a/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_PVA_extrafine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = extrafine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg
index cac8e008e9..3da38499ee 100644
--- a/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_PVA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg
index 616a9537c8..aaa65f6439 100644
--- a/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_PVA_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg
index 75ed433d4c..cd98f31944 100644
--- a/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_PVA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg
index 217caf5659..c8bfbf11a3 100644
--- a/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_TPU_extrafine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = extrafine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg
index bd067c1827..e14363b52d 100644
--- a/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg
index 05000e8e19..c476909acf 100644
--- a/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_TPU_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg
index a934707451..376ddc9f11 100644
--- a/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.30_TPU_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.30mm
diff --git a/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg
index 49bdf430a3..dbac6990bf 100644
--- a/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.35_ASA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.35mm
diff --git a/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg
index 531dcb8b39..990496f4d9 100644
--- a/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.35_ASA_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.35mm
diff --git a/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg
index 656d982e01..3a58e94bc1 100644
--- a/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.35_ASA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.35mm
diff --git a/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg
index 3b0eb953ba..13b1d6c2f0 100644
--- a/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.35_PVA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.35mm
diff --git a/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg
index 51128170f4..21843a75c9 100644
--- a/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.35_PVA_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.35mm
diff --git a/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg
index 00ba1c8267..9b982421ed 100644
--- a/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.35_PVA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.35mm
diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg
index 57751118f9..633abd8caa 100644
--- a/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.35mm
diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg
index 4016f5584e..fe16e614b0 100644
--- a/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.35_TPU_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.35mm
diff --git a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg
index b7474b0cbd..bb5a5abf6c 100644
--- a/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.35_TPU_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.35mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg
index de76119db3..8820ff968c 100644
--- a/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_ASA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg
index 4819149590..917e90cf7f 100644
--- a/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_ASA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg
index 777d39748c..1cb5221228 100644
--- a/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_ASA_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg
index 294d9c66b8..3a18c9f8c1 100644
--- a/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_ASA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg
index 53497d7923..b8865a8af8 100644
--- a/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_PVA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg
index 43a0ffa1ad..983addb707 100644
--- a/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_PVA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg
index 8c737fbf04..80328cf24f 100644
--- a/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_PVA_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg
index 2d4595f38e..a0e8fa9446 100644
--- a/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_PVA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg
index 7b8ecd4957..27dccc84ed 100644
--- a/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_TPU_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg
index cc323328b3..6b6e07d252 100644
--- a/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg
index fcdc58c5d0..1a9e191377 100644
--- a/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_TPU_fine.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fine
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg
index 63d675bb68..e467bdc3d3 100644
--- a/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.40_TPU_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.40mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg
index e948b334da..90e70de319 100644
--- a/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_ASA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg
index 5b11b8a69a..b4a86e68d8 100644
--- a/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_ASA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg
index ebb14aab78..4e97f5035e 100644
--- a/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_ASA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg
index 0fc5fbe8d5..465abff92e 100644
--- a/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_ASA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg
index efcf6f0246..872f7a3313 100644
--- a/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_PVA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg
index 670e236a79..0e252d6c8d 100644
--- a/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_PVA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg
index 878507ce99..29a9a6dcfc 100644
--- a/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_PVA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg
index f4f6b4dfff..9f25c84c7c 100644
--- a/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_PVA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg
index 7fa652d855..a331f526c6 100644
--- a/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_TPU_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg
index 898a271b49..a6a095226f 100644
--- a/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_TPU_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg
index b7aaa1f7a2..a5e7c74186 100644
--- a/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_TPU_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg
index f05f652783..08fee402c5 100644
--- a/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.50_TPU_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.50mm
diff --git a/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg
index 4bb9372a9b..67368a8f18 100644
--- a/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.60_ASA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.60mm
diff --git a/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg
index fbb74fb9ca..d62d2bf669 100644
--- a/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.60_ASA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.60mm
diff --git a/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg
index 3e8e8195bc..573dd89ea5 100644
--- a/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.60_ASA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.60mm
diff --git a/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg
index 66b0fd971c..ac210cfdc1 100644
--- a/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.60_PVA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.60mm
diff --git a/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg
index 26bdebd1b2..1a0a40ba8a 100644
--- a/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.60_PVA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.60mm
diff --git a/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg
index 4e5662790b..aab8ba5499 100644
--- a/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.60_PVA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.60mm
diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg
index 5e053d8bc4..7438b747db 100644
--- a/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.60_TPU_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.60mm
diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg
index d2b06a4d31..9da50270b2 100644
--- a/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.60_TPU_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.60mm
diff --git a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg
index b6a752f140..7dec53da68 100644
--- a/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.60_TPU_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.60mm
diff --git a/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg
index 51da4e343b..186d2ad149 100644
--- a/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.80_ASA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.80mm
diff --git a/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg
index 77aebb66d9..81d541a38b 100644
--- a/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.80_ASA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.80mm
diff --git a/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg
index 9b99c0eef3..78628ebbc4 100644
--- a/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.80_ASA_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.80mm
diff --git a/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg
index a6b11d0f45..af96ecd40d 100644
--- a/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.80_PVA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.80mm
diff --git a/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg
index 6b74da6994..1bb40fb822 100644
--- a/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.80_PVA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.80mm
diff --git a/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg
index 431ecc57e9..34c27750dc 100644
--- a/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.80_PVA_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.80mm
diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg
index 94fa58ec41..74e38683e2 100644
--- a/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.80_TPU_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.80mm
diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg
index ed6e3bbd96..8da78abc98 100644
--- a/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.80_TPU_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.80mm
diff --git a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg
index 49e348299b..3620d1c44c 100644
--- a/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_v6_0.80_TPU_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = V6 0.80mm
diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg
index 2d1e463704..8593ee439e 100644
--- a/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.40mm
diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg
index 4a61f16bb9..b5220d0a37 100644
--- a/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.40mm
diff --git a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg
index 3906f5a5a3..7fd15f3ffb 100644
--- a/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.40_ASA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.40mm
diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg
index 6316562eec..f1446254a2 100644
--- a/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.40mm
diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg
index 51f85f9d60..dd518500b3 100644
--- a/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.40mm
diff --git a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg
index def6946bf1..94def9aa8f 100644
--- a/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.40_PVA_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.40mm
diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg
index 13df7a17fe..4ba5c656f2 100644
--- a/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.40mm
diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg
index f7f4de0b25..ed1a9d44e8 100644
--- a/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.40mm
diff --git a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg
index 0f7fdf0238..c24f054304 100644
--- a/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.40_TPU_normal.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = normal
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.40mm
diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg
index d41c155234..62e5ac1d1e 100644
--- a/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.60mm
diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg
index 9c69b07258..f74b615074 100644
--- a/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.60mm
diff --git a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg
index 5b35eec0b7..ac5377a9fa 100644
--- a/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.60_ASA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.60mm
diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg
index 470729ca7c..78c4f59752 100644
--- a/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.60mm
diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg
index e2b949208e..97cc5bd288 100644
--- a/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.60mm
diff --git a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg
index e630937656..98f7f15cb3 100644
--- a/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.60_PVA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.60mm
diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg
index a026d13755..bbc2b959f0 100644
--- a/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.60mm
diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg
index 2551c5085d..211c9317fe 100644
--- a/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_fast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = fast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.60mm
diff --git a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg
index 03d7a5de60..776d93e857 100644
--- a/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.60_TPU_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.60mm
diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg
index bc372dae4b..2ffba84452 100644
--- a/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.80mm
diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg
index 41af7ad552..500999a45f 100644
--- a/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.80mm
diff --git a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg
index 990bb0d518..9bd3bc46a3 100644
--- a/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.80_ASA_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.80mm
diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg
index 8a739087b3..cad3c1ae88 100644
--- a/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.80mm
diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg
index 7fae42c017..ee3accfaba 100644
--- a/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.80mm
diff --git a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg
index 81f7a4affd..a326841ab0 100644
--- a/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.80_PVA_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.80mm
diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg
index f8382a17f7..7e9fd11c83 100644
--- a/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_extrafast.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = extrafast
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.80mm
diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg
index a9c02df5d2..29df645cce 100644
--- a/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.80mm
diff --git a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg
index f3920f61e8..a064df9b4b 100644
--- a/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_0.80_TPU_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 0.80mm
diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg
index 3be4231e8b..daeb14d863 100644
--- a/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.00mm
diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg
index 7ac9945261..214ebfcaa1 100644
--- a/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.00mm
diff --git a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg
index 79e3d1d86a..e4fb8078cb 100644
--- a/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.00_ASA_ultrasprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = ultrasprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.00mm
diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg
index b48aadb0e4..421af6a4b1 100644
--- a/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.00mm
diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg
index cabb3d9020..7b7d35e6b7 100644
--- a/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.00mm
diff --git a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg
index 30d016cf2c..455b0031c4 100644
--- a/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.00_PVA_ultrasprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = ultrasprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.00mm
diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg
index 57ddcf68f4..5422b31737 100644
--- a/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.00mm
diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg
index 5de4dff512..c74b5ec7f9 100644
--- a/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.00mm
diff --git a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg
index 0fdf7be51c..b37f33ef17 100644
--- a/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.00_TPU_ultrasprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = ultrasprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.00mm
diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg
index 374535d12f..1b364cc93c 100644
--- a/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.20mm
diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg
index 9790b61217..0ccc19d779 100644
--- a/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.20mm
diff --git a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg
index a395749b1d..ec266f9e8a 100644
--- a/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.20_ASA_ultrasprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_asa
quality_type = ultrasprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.20mm
diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg
index d5ca080c10..34cfd8d758 100644
--- a/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.20mm
diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg
index 212b8b9ba5..8503117126 100644
--- a/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.20mm
diff --git a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg
index 441cbb9d4f..800f262b7c 100644
--- a/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.20_PVA_ultrasprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_pva
quality_type = ultrasprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.20mm
diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg
index d431a471c7..fc11f58931 100644
--- a/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_sprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = sprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.20mm
diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg
index e611c83dd9..9fc17ac4d6 100644
--- a/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_supersprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = supersprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.20mm
diff --git a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg
index 041a037ed0..b8b4cb618d 100644
--- a/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg
+++ b/resources/quality/voron2/voron2_volcano_1.20_TPU_ultrasprint.inst.cfg
@@ -6,7 +6,7 @@ version = 4
[metadata]
material = generic_tpu
quality_type = ultrasprint
-setting_version = 23
+setting_version = 24
type = quality
variant = Volcano 1.20mm
diff --git a/resources/setting_visibility/advanced.cfg b/resources/setting_visibility/advanced.cfg
index 93c3dc91ef..8585a05eec 100644
--- a/resources/setting_visibility/advanced.cfg
+++ b/resources/setting_visibility/advanced.cfg
@@ -133,6 +133,7 @@ prime_tower_mode
prime_tower_position_x
prime_tower_position_y
prime_tower_brim_enable
+interlocking_enable
[meshfix]
@@ -144,7 +145,6 @@ magic_spiralize
smooth_spiralized_contours
[experimental]
-interlocking_enable
conical_overhang_enabled
support_conical_enabled
adaptive_layer_height_enabled
diff --git a/resources/setting_visibility/basic.cfg b/resources/setting_visibility/basic.cfg
index 0193eb26ba..6c6124ab67 100644
--- a/resources/setting_visibility/basic.cfg
+++ b/resources/setting_visibility/basic.cfg
@@ -56,6 +56,7 @@ adhesion_extruder_nr
prime_tower_enable
prime_tower_position_x
prime_tower_position_y
+interlocking_enable
[meshfix]
diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg
index b13618e5c1..c8935896b6 100644
--- a/resources/setting_visibility/expert.cfg
+++ b/resources/setting_visibility/expert.cfg
@@ -248,6 +248,7 @@ cool_fan_speed_0
cool_fan_full_at_height
cool_fan_full_layer
cool_min_layer_time
+cool_min_layer_time_overhang
cool_min_speed
cool_lift_head
cool_during_extruder_switch
@@ -378,6 +379,12 @@ prime_tower_min_shell_thickness
ooze_shield_enabled
ooze_shield_angle
ooze_shield_dist
+interlocking_enable
+interlocking_beam_width
+interlocking_orientation
+interlocking_beam_layer_count
+interlocking_dept
+interlocking_boundary_avoidance
[meshfix]
meshfix_union_all
@@ -428,12 +435,6 @@ roofing_monotonic
roofing_angles
infill_enable_travel_optimization
material_flow_temp_graph
-interlocking_enable
-interlocking_beam_width
-interlocking_orientation
-interlocking_beam_layer_count
-interlocking_dept
-interlocking_boundary_avoidance
support_skip_some_zags
support_skip_zag_per_mm
support_zag_skip_count
diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json
index 160799be6e..1ae316f96c 100644
--- a/resources/themes/cura-light/theme.json
+++ b/resources/themes/cura-light/theme.json
@@ -567,7 +567,7 @@
"section_icon_column": [2.5, 2.5],
"setting": [25.0, 1.8],
- "setting_control": [11.0, 2.0],
+ "setting_control": [9.0, 2.0],
"setting_control_radius": [0.15, 0.15],
"setting_control_depth_margin": [1.4, 0.0],
"setting_unit_margin": [0.5, 0.5],