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/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/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/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json
index 8471c59f82..c1392e57ba 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],
@@ -7500,6 +7501,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
}
}
},
@@ -7922,88 +8005,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",
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..354808c580 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,
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/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/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..6c78e40503 100644
--- a/resources/setting_visibility/expert.cfg
+++ b/resources/setting_visibility/expert.cfg
@@ -378,6 +378,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 +434,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