From 253d11f84dbdf7db50422ef4cd256375b0ce7671 Mon Sep 17 00:00:00 2001 From: GregValiant <64202104+GregValiant@users.noreply.github.com> Date: Wed, 26 Feb 2025 07:02:12 -0500 Subject: [PATCH 01/17] Update PurgeLinesAndUnload.py This change adds a setting for "minimum Z height" for the "nail down the string" moves. Update PurgeLinesAndUnload.py Bug fix. The prime blob code didn't account for the retraction at the end. This adds an 'unretract' to compensate. --- .../scripts/PurgeLinesAndUnload.py | 44 +++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py b/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py index de2b1c0f7a..e456aab044 100644 --- a/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py +++ b/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py @@ -163,11 +163,21 @@ class PurgeLinesAndUnload(Script): "move_to_start": { "label": "Circle around to layer start ⚠️​", - "description": "Depending on where the 'Layer Start X' and 'Layer Start Y' are for the print, the opening travel move can pass across the print area and leave a string there. This option will generate an orthogonal path that moves the nozzle around the edges of the build plate and then comes in to the Start Point. || ⚠️​ || The nozzle will drop to Z0.0 and touch the build plate at each stop in order to 'nail down the string' so it doesn't follow in a straight line.", + "description": "Depending on where the 'Layer Start X' and 'Layer Start Y' are for the print, the opening travel move can pass across the print area and leave a string there. This option will generate an orthogonal path that moves the nozzle around the edges of the build plate and then comes in to the Start Point. || ⚠️​ || The nozzle can drop to Z0.0 and touch the build plate at each stop in order to 'nail down the string'. The nozzle always raises after the touch-down. It will not drag on the bed.", "type": "bool", "default_value": false, "enabled": true }, + "move_to_start_min_z": + { + "label": " Minimum Z height ⚠️​", + "description": "When moving to the start position, the nozzle can touch down on the build plate at each stop (Z = 0.0). That will stick the string to the build plate at each direction change so it doesn't pull across the print area. Some printers may not respond well to Z=0.0. You may set a minimum Z height here (min is 0.0 and max is 0.50). The string must stick or it defeats the purpose of moving around the periphery.", + "type": "float", + "default_value": 0.0, + "minimum_value": 0.0, + "maximum_value": 0.5, + "enabled": "move_to_start" + }, "adjust_starting_e": { "label": "Adjust Starting E location", @@ -254,7 +264,9 @@ class PurgeLinesAndUnload(Script): self.prime_blob_distance = self.getSettingValueByKey("prime_blob_distance") else: self.prime_blob_distance = 0 - + # Set the minimum Z to stick the string to the build plate when Move to Start is selected. + self.touchdown_z = self.getSettingValueByKey("move_to_start_min_z") + # Mapping settings to corresponding methods procedures = { "add_purge_lines": self._add_purge_lines, @@ -385,7 +397,7 @@ class PurgeLinesAndUnload(Script): def add_move(axis: str, position: float) -> None: moves.append( f"G0 F{self.speed_travel} {axis}{position} ; Start move\n" - f"G0 F600 Z0 ; Nail down the string\n" + f"G0 F600 Z{self.touchdown_z} ; Nail down the string\n" f"G0 F600 Z2 ; Move up\n" ) @@ -494,6 +506,9 @@ class PurgeLinesAndUnload(Script): # Travel to the purge start purge_str += f"G0 F{self.speed_travel} X{self.machine_left + self.border_distance} Y{self.machine_front + 10} ; Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" + if self.prime_blob_enable: + purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" + purge_str += "G92 E0 ; Reset extruder\n" # Purge two lines purge_str += f"G1 F{self.print_speed} X{self.machine_left + self.border_distance} Y{y_stop} E{purge_volume} ; First line\n" purge_str += f"G0 X{self.machine_left + 3 + self.border_distance} Y{y_stop} ; Move over\n" @@ -513,6 +528,9 @@ class PurgeLinesAndUnload(Script): # Travel to the purge start purge_str += f"G0 F{self.speed_travel} X{self.machine_right - self.border_distance} ; Move\nG0 Y{self.machine_back - 10} ; Move\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" + if self.prime_blob_enable: + purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" + purge_str += "G92 E0 ; Reset extruder\n" # Purge two lines purge_str += f"G1 F{self.print_speed} X{self.machine_right - self.border_distance} Y{y_stop} E{purge_volume} ; First line\n" purge_str += f"G0 X{self.machine_right - 3 - self.border_distance} Y{y_stop} ; Move over\n" @@ -533,6 +551,9 @@ class PurgeLinesAndUnload(Script): # Travel to the purge start purge_str += f"G0 F{self.speed_travel} X{self.machine_left + 10} Y{self.machine_front + self.border_distance} ; Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" + if self.prime_blob_enable: + purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" + purge_str += "G92 E0 ; Reset extruder\n" # Purge two lines purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_front + self.border_distance} E{purge_volume} ; First line\n" purge_str += f"G0 X{x_stop} Y{self.machine_front + 3 + self.border_distance} ; Move over\n" @@ -554,6 +575,9 @@ class PurgeLinesAndUnload(Script): purge_str += f"G0 F{self.speed_travel} Y{self.machine_back - self.border_distance} ; Ortho Move to back\n" purge_str += f"G0 X{self.machine_right - 10} ; Ortho move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" + if self.prime_blob_enable: + purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" + purge_str += "G92 E0 ; Reset extruder\n" # Purge two lines purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_back - self.border_distance} E{purge_volume} ; First line\n" purge_str += f"G0 X{x_stop} Y{self.machine_back - 3 - self.border_distance} ; Move over\n" @@ -575,6 +599,9 @@ class PurgeLinesAndUnload(Script): # Travel to the purge start purge_str += f"G0 F{self.speed_travel} X{self.machine_left + self.border_distance} Y{self.machine_front + 10} ; Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" + if self.prime_blob_enable: + purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" + purge_str += "G92 E0 ; Reset extruder\n" # Purge two lines purge_str += f"G1 F{self.print_speed} X{self.machine_left + self.border_distance} Y{y_stop} E{purge_volume} ; First line\n" purge_str += f"G0 X{self.machine_left + 3 + self.border_distance} Y{y_stop} ; Move over\n" @@ -594,6 +621,9 @@ class PurgeLinesAndUnload(Script): # Travel to the purge start purge_str += f"G0 F{self.speed_travel} X{self.machine_right - self.border_distance} Z2 ; Move\nG0 Y{self.machine_back - 10} Z2 ; Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" + if self.prime_blob_enable: + purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" + purge_str += "G92 E0 ; Reset extruder\n" # Purge two lines purge_str += f"G1 F{self.print_speed} X{self.machine_right - self.border_distance} Y{y_stop} E{purge_volume} ; First line\n" purge_str += f"G0 X{self.machine_right - 3 - self.border_distance} Y{y_stop} ; Move over\n" @@ -613,6 +643,9 @@ class PurgeLinesAndUnload(Script): # Travel to the purge start purge_str += f"G0 F{self.speed_travel} X{self.machine_left + 10} Z2 ; Move\nG0 Y{self.machine_front + self.border_distance} Z2 ; Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" + if self.prime_blob_enable: + purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" + purge_str += "G92 E0 ; Reset extruder\n" # Purge two lines purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_front + self.border_distance} E{purge_volume} ; First line\n" purge_str += f"G0 X{x_stop} Y{self.machine_front + 3 + self.border_distance} ; Move over\n" @@ -633,6 +666,9 @@ class PurgeLinesAndUnload(Script): purge_str += f"G0 F{self.speed_travel} Y{self.machine_back - self.border_distance} Z2; Ortho Move to back\n" purge_str += f"G0 X{self.machine_right - 10} Z2 ; Ortho Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" + if self.prime_blob_enable: + purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" + purge_str += "G92 E0 ; Reset extruder\n" # Purge two lines purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_back - self.border_distance} E{purge_volume} ; First line\n" purge_str += f"G0 X{x_stop} Y{self.machine_back - 3 - self.border_distance} ; Move over\n" @@ -945,7 +981,7 @@ class PurgeLinesAndUnload(Script): blob_string = "G0 F1200 Z20 ; Move up\n" blob_string += f"G0 F{self.speed_travel} X{blob_x} Y{blob_y} ; Move to blob location\n" blob_string += f"G1 F{speed_blob} E{self.prime_blob_distance} ; Blob\n" - blob_string += f"G1 F{self.retract_speed} E-{self.retract_dist} ; Retract\n" + blob_string += f"G1 F{self.retract_speed} E{self.prime_blob_distance - self.retract_dist} ; Retract\n" blob_string += "G92 E0 ; Reset extruder\n" blob_string += "M300 P500 S600 ; Beep\n" blob_string += "G4 S2 ; Wait\n" From b25620826f77ddae558396e3f1ab5f124892f1c6 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Sat, 1 Mar 2025 13:41:33 +0100 Subject: [PATCH 02/17] use helper function Since the added lines are identical, it can be replaced with a helper function --- .../scripts/PurgeLinesAndUnload.py | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py b/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py index e456aab044..d4729b1ce7 100644 --- a/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py +++ b/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py @@ -491,6 +491,15 @@ class PurgeLinesAndUnload(Script): def calculate_purge_volume(line_width, purge_length, volume_per_mm): return round((line_width * 0.3 * purge_length) * 1.25 / volume_per_mm, 5) + + def adjust_for_prime_blob_gcode(retract_speed, retract_distance): + """Generates G-code lines for prime blob adjustment.""" + gcode_lines = [ + f"G1 F{retract_speed} E{retract_distance} ; Unretract", + "G92 E0 ; Reset extruder" + ] + return "\n".join(gcode_lines) + purge_location = self.getSettingValueByKey("purge_line_location") purge_extrusion_full = True if self.getSettingValueByKey("purge_line_length") == "purge_full" else False @@ -507,8 +516,7 @@ class PurgeLinesAndUnload(Script): purge_str += f"G0 F{self.speed_travel} X{self.machine_left + self.border_distance} Y{self.machine_front + 10} ; Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" if self.prime_blob_enable: - purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" - purge_str += "G92 E0 ; Reset extruder\n" + purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist) # Purge two lines purge_str += f"G1 F{self.print_speed} X{self.machine_left + self.border_distance} Y{y_stop} E{purge_volume} ; First line\n" purge_str += f"G0 X{self.machine_left + 3 + self.border_distance} Y{y_stop} ; Move over\n" @@ -529,8 +537,7 @@ class PurgeLinesAndUnload(Script): purge_str += f"G0 F{self.speed_travel} X{self.machine_right - self.border_distance} ; Move\nG0 Y{self.machine_back - 10} ; Move\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" if self.prime_blob_enable: - purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" - purge_str += "G92 E0 ; Reset extruder\n" + purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist) # Purge two lines purge_str += f"G1 F{self.print_speed} X{self.machine_right - self.border_distance} Y{y_stop} E{purge_volume} ; First line\n" purge_str += f"G0 X{self.machine_right - 3 - self.border_distance} Y{y_stop} ; Move over\n" @@ -552,8 +559,7 @@ class PurgeLinesAndUnload(Script): purge_str += f"G0 F{self.speed_travel} X{self.machine_left + 10} Y{self.machine_front + self.border_distance} ; Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" if self.prime_blob_enable: - purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" - purge_str += "G92 E0 ; Reset extruder\n" + purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist) # Purge two lines purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_front + self.border_distance} E{purge_volume} ; First line\n" purge_str += f"G0 X{x_stop} Y{self.machine_front + 3 + self.border_distance} ; Move over\n" @@ -576,8 +582,7 @@ class PurgeLinesAndUnload(Script): purge_str += f"G0 X{self.machine_right - 10} ; Ortho move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" if self.prime_blob_enable: - purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" - purge_str += "G92 E0 ; Reset extruder\n" + purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist) # Purge two lines purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_back - self.border_distance} E{purge_volume} ; First line\n" purge_str += f"G0 X{x_stop} Y{self.machine_back - 3 - self.border_distance} ; Move over\n" @@ -600,8 +605,7 @@ class PurgeLinesAndUnload(Script): purge_str += f"G0 F{self.speed_travel} X{self.machine_left + self.border_distance} Y{self.machine_front + 10} ; Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" if self.prime_blob_enable: - purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" - purge_str += "G92 E0 ; Reset extruder\n" + purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist) # Purge two lines purge_str += f"G1 F{self.print_speed} X{self.machine_left + self.border_distance} Y{y_stop} E{purge_volume} ; First line\n" purge_str += f"G0 X{self.machine_left + 3 + self.border_distance} Y{y_stop} ; Move over\n" @@ -622,8 +626,7 @@ class PurgeLinesAndUnload(Script): purge_str += f"G0 F{self.speed_travel} X{self.machine_right - self.border_distance} Z2 ; Move\nG0 Y{self.machine_back - 10} Z2 ; Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" if self.prime_blob_enable: - purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" - purge_str += "G92 E0 ; Reset extruder\n" + purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist) # Purge two lines purge_str += f"G1 F{self.print_speed} X{self.machine_right - self.border_distance} Y{y_stop} E{purge_volume} ; First line\n" purge_str += f"G0 X{self.machine_right - 3 - self.border_distance} Y{y_stop} ; Move over\n" @@ -644,8 +647,7 @@ class PurgeLinesAndUnload(Script): purge_str += f"G0 F{self.speed_travel} X{self.machine_left + 10} Z2 ; Move\nG0 Y{self.machine_front + self.border_distance} Z2 ; Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" if self.prime_blob_enable: - purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" - purge_str += "G92 E0 ; Reset extruder\n" + purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist) # Purge two lines purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_front + self.border_distance} E{purge_volume} ; First line\n" purge_str += f"G0 X{x_stop} Y{self.machine_front + 3 + self.border_distance} ; Move over\n" @@ -667,8 +669,7 @@ class PurgeLinesAndUnload(Script): purge_str += f"G0 X{self.machine_right - 10} Z2 ; Ortho Move to start\n" purge_str += f"G0 F600 Z0.3 ; Move down\n" if self.prime_blob_enable: - purge_str += f"G1 F{self.retract_speed} E{self.retract_dist} ; Unretract\n" - purge_str += "G92 E0 ; Reset extruder\n" + purge_str += adjust_for_prime_blob_gcode(self.retract_speed, self.retract_dist) # Purge two lines purge_str += f"G1 F{self.print_speed} X{x_stop} Y{self.machine_back - self.border_distance} E{purge_volume} ; First line\n" purge_str += f"G0 X{x_stop} Y{self.machine_back - 3 - self.border_distance} ; Move over\n" From 2cf13c5e94b82be45119fde81f3dd8d6d485e4a7 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Sat, 1 Mar 2025 13:42:43 +0100 Subject: [PATCH 03/17] Remove extra empty line --- plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py b/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py index d4729b1ce7..a356fec379 100644 --- a/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py +++ b/plugins/PostProcessingPlugin/scripts/PurgeLinesAndUnload.py @@ -500,7 +500,6 @@ class PurgeLinesAndUnload(Script): ] return "\n".join(gcode_lines) - purge_location = self.getSettingValueByKey("purge_line_location") purge_extrusion_full = True if self.getSettingValueByKey("purge_line_length") == "purge_full" else False purge_str = ";TYPE:CUSTOM----------[Purge Lines]\nG0 F600 Z2 ; Move up\nG92 E0 ; Reset extruder\n" From c4dd7b304ba9ee22ae82d3c875b34024aed0b1f3 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Wed, 12 Mar 2025 12:03:20 +0100 Subject: [PATCH 04/17] Fix wrongly switching project name CURA-12403 --- cura/UI/PrintInformation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/UI/PrintInformation.py b/cura/UI/PrintInformation.py index 936e646946..6826c34e43 100644 --- a/cura/UI/PrintInformation.py +++ b/cura/UI/PrintInformation.py @@ -449,6 +449,6 @@ class PrintInformation(QObject): """If this is a sort of output 'device' (like local or online file storage, rather than a printer), the user could have altered the file-name, and thus the project name should be altered as well.""" if isinstance(output_device, ProjectOutputDevice): - new_name = output_device.getLastOutputName() + new_name = output_device.popLastOutputName() if new_name is not None: self.setJobName(os.path.splitext(os.path.basename(new_name))[0]) From 48b449b32ed4d083e3617066cae90de5d15aaf21 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Thu, 13 Mar 2025 22:32:10 +0100 Subject: [PATCH 05/17] Rewrite experiment - Removed the version 2.x - Rewrite onTextChanged -> add logic to not execute if text is unchanged - Rewrite currentIndex & onActivated -> use findIndex instead of for loop - Add reuseItems: true -> recycle items instead of instantiating from the delegate - Remove cacheBuffer -> memory overhead (2GB for the entire list to load in one go) - Rewrite delegate -> wrap loader as a component (based on documentation), remove switch case and replace with condition check, set asynchronous to false (introduces a bit of stutter but items are loaded when viewed). --- .../qml/Preferences/SettingVisibilityPage.qml | 71 +++++++------------ 1 file changed, 24 insertions(+), 47 deletions(-) diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index f186f3e460..f7230d2c6a 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -1,8 +1,8 @@ // Copyright (c) 2022 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick 2.1 -import QtQuick.Controls 2.15 +import QtQuick +import QtQuick.Controls import UM 1.5 as UM @@ -27,10 +27,7 @@ UM.PreferencesPage ] signal scrollToSection( string key ) - onScrollToSection: - { - settingsListView.positionViewAtIndex(definitionsModel.getIndex(key), ListView.Beginning) - } + onScrollToSection: settingsListView.positionViewAtIndex(definitionsModel.getIndex(key), ListView.Beginning) function reset() { @@ -101,7 +98,13 @@ UM.PreferencesPage placeholderText: catalog.i18nc("@label:textbox", "Filter...") - onTextChanged: definitionsModel.filter = {"i18n_label|i18n_description": "*" + text} + onTextChanged: { + if (text !== lastFilterText) { + lastFilterText = text; + definitionsModel.filter = {"i18n_label|i18n_description": "*" + text}; + } + } + property string lastFilterText: "" } Cura.ComboBox @@ -118,30 +121,14 @@ UM.PreferencesPage model: settingVisibilityPresetsModel.items textRole: "name" - currentIndex: - { - var idx = -1; - for(var i = 0; i < settingVisibilityPresetsModel.items.length; ++i) - { - if(settingVisibilityPresetsModel.items[i].presetId === settingVisibilityPresetsModel.activePreset) - { - idx = i; - break; - } - } - return idx; - } - - onActivated: - { - var preset_id = settingVisibilityPresetsModel.items[index].presetId - settingVisibilityPresetsModel.setActivePreset(preset_id) - } + currentIndex: settingVisibilityPresetsModel.items.findIndex(i => i.presetId === settingVisibilityPresetsModel.activePreset) + onActivated: settingVisibilityPresetsModel.setActivePreset(settingVisibilityPresetsModel.items[index].presetId) } ListView { id: settingsListView + reuseItems: true anchors { top: filter.bottom @@ -164,34 +151,24 @@ UM.PreferencesPage expanded: ["*"] visibilityHandler: UM.SettingPreferenceVisibilityHandler {} } - cacheBuffer: 1000000 // Set a large cache to effectively just cache every list item. property Component settingVisibilityCategory: Cura.SettingVisibilityCategory {} property Component settingVisibilityItem: Cura.SettingVisibilityItem {} - delegate: Loader - { - id: loader + delegate: Component { + Loader { + id: loader + width: settingsListView.width - scrollBar.width + height: model.type !== undefined ? UM.Theme.getSize("section").height : 0 - width: settingsListView.width - scrollBar.width - height: model.type !== undefined ? UM.Theme.getSize("section").height : 0 + property var definition: model + property var settingDefinitionsModel: definitionsModel - property var definition: model - property var settingDefinitionsModel: definitionsModel - - asynchronous: true - active: model.type !== undefined - sourceComponent: - { - switch (model.type) - { - case "category": - return settingsListView.settingVisibilityCategory - default: - return settingsListView.settingVisibilityItem - } + asynchronous: false + active: model.type !== undefined + sourceComponent: model.type === "category" ? settingsListView.settingVisibilityCategory : settingsListView.settingVisibilityItem } - } + } } } } From e1430c76fd361a5ac7fca3a93e1750be598456f1 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Thu, 13 Mar 2025 22:35:05 +0100 Subject: [PATCH 06/17] fix indent --- resources/qml/Preferences/SettingVisibilityPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index f7230d2c6a..c14af51da8 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -168,7 +168,7 @@ UM.PreferencesPage active: model.type !== undefined sourceComponent: model.type === "category" ? settingsListView.settingVisibilityCategory : settingsListView.settingVisibilityItem } - } + } } } } From 0e5f2822382276bd3b04377ef8427e3d7e756e06 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Sat, 15 Mar 2025 22:07:57 +0100 Subject: [PATCH 07/17] Replace for loop with map() and remove redundant else - map().join is a better fit that replaces the for loop and a if/else since there is no complex logic involved. - there is a return inside the if statement for requires.length ===0, so no need for else statement as the code execution stops with return --- .../qml/Preferences/SettingVisibilityItem.qml | 43 ++++++++----------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/resources/qml/Preferences/SettingVisibilityItem.qml b/resources/qml/Preferences/SettingVisibilityItem.qml index 52b06b3dee..a7f4a47e23 100644 --- a/resources/qml/Preferences/SettingVisibilityItem.qml +++ b/resources/qml/Preferences/SettingVisibilityItem.qml @@ -46,33 +46,26 @@ Item text: { - if(provider.properties.enabled == "True") - { - return "" - } - var key = definition ? definition.key : "" - var requires = settingDefinitionsModel.getRequires(key, "enabled") - if (requires.length == 0) - { - return catalog.i18nc("@item:tooltip", "This setting has been hidden by the active machine and will not be visible."); - } - else - { - var requires_text = "" - for (var i in requires) - { - if (requires_text == "") - { - requires_text = requires[i].label - } - else - { - requires_text += ", " + requires[i].label - } - } + if (provider.properties.enabled === "True") return ""; - return catalog.i18ncp("@item:tooltip %1 is list of setting names", "This setting has been hidden by the value of %1. Change the value of that setting to make this setting visible.", "This setting has been hidden by the values of %1. Change the values of those settings to make this setting visible.", requires.length) .arg(requires_text); + var key = definition ? definition.key : ""; + var requires = settingDefinitionsModel.getRequires(key, "enabled"); + + if (requires.length === 0) { + return catalog.i18nc( + "@item:tooltip", + "This setting has been hidden by the active machine and will not be visible." + ); } + + var requiresText = requires.map(r => r.label).join(", "); + + return catalog.i18ncp( + "@item:tooltip %1 is list of setting names", + "This setting has been hidden by the value of %1. Change the value of that setting to make this setting visible.", + "This setting has been hidden by the values of %1. Change the values of those settings to make this setting visible.", + requires.length + ).arg(requiresText); } UM.ColorImage From 656701751236a71888ec1a3f207973ce74c01423 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Sat, 15 Mar 2025 22:25:23 +0100 Subject: [PATCH 08/17] set QtQuick and QtQuick.Controls to 2.15 --- resources/qml/Preferences/SettingVisibilityPage.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index c14af51da8..490e7768bc 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -1,8 +1,8 @@ // Copyright (c) 2022 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. -import QtQuick -import QtQuick.Controls +import QtQuick 2.15 +import QtQuick.Controls 2.15 import UM 1.5 as UM From b549542f18a79692026c746a68f3f1cf3d8a8762 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Sat, 15 Mar 2025 22:31:25 +0100 Subject: [PATCH 09/17] lint --- resources/qml/Preferences/SettingVisibilityPage.qml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index 490e7768bc..f3fca52104 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -98,8 +98,10 @@ UM.PreferencesPage placeholderText: catalog.i18nc("@label:textbox", "Filter...") - onTextChanged: { - if (text !== lastFilterText) { + onTextChanged: + { + if (text !== lastFilterText) + { lastFilterText = text; definitionsModel.filter = {"i18n_label|i18n_description": "*" + text}; } @@ -155,8 +157,10 @@ UM.PreferencesPage property Component settingVisibilityCategory: Cura.SettingVisibilityCategory {} property Component settingVisibilityItem: Cura.SettingVisibilityItem {} - delegate: Component { - Loader { + delegate: Component + { + Loader + { id: loader width: settingsListView.width - scrollBar.width height: model.type !== undefined ? UM.Theme.getSize("section").height : 0 From 5a9b776d2b5e94133352e2158755b8909eba7f1f Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 17 Mar 2025 14:48:45 +0100 Subject: [PATCH 10/17] Enable flooring settings when flooring is actually active CURA-12472 --- resources/definitions/fdmprinter.def.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 7ec5cb6157..c93c11a245 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3049,6 +3049,7 @@ "minimum_value": "0.0001", "minimum_value_warning": "50", "maximum_value_warning": "150", + "enabled": "flooring_layer_count > 0 and bottom_layers > 0", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, @@ -3063,6 +3064,7 @@ "minimum_value": "0.0001", "minimum_value_warning": "50", "maximum_value_warning": "150", + "enabled": "flooring_layer_count > 0 and bottom_layers > 0", "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true } @@ -3492,6 +3494,7 @@ "maximum_value_warning": "150", "default_value": 30, "value": "speed_wall_0", + "enabled": "flooring_layer_count > 0 and bottom_layers > 0", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, @@ -3506,6 +3509,7 @@ "maximum_value_warning": "150", "default_value": 60, "value": "speed_wall_x", + "enabled": "flooring_layer_count > 0 and bottom_layers > 0", "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true } @@ -3908,7 +3912,7 @@ "maximum_value_warning": "10000", "default_value": 3000, "value": "acceleration_wall_0", - "enabled": "resolveOrValue('acceleration_enabled')", + "enabled": "resolveOrValue('acceleration_enabled') and flooring_layer_count > 0 and bottom_layers > 0", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, @@ -3923,7 +3927,7 @@ "maximum_value_warning": "10000", "default_value": 3000, "value": "acceleration_wall_x", - "enabled": "resolveOrValue('acceleration_enabled')", + "enabled": "resolveOrValue('acceleration_enabled') and flooring_layer_count > 0 and bottom_layers > 0", "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true } @@ -4279,7 +4283,7 @@ "maximum_value_warning": "50", "default_value": 20, "value": "jerk_wall_0", - "enabled": "resolveOrValue('jerk_enabled')", + "enabled": "resolveOrValue('jerk_enabled') and flooring_layer_count > 0 and bottom_layers > 0", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, @@ -4293,7 +4297,7 @@ "maximum_value_warning": "50", "default_value": 20, "value": "jerk_wall_x", - "enabled": "resolveOrValue('jerk_enabled')", + "enabled": "resolveOrValue('jerk_enabled') and flooring_layer_count > 0 and bottom_layers > 0", "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true } From 7a2cb6480c4208103be5eb49cbd267ea714b5b07 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 17 Mar 2025 14:52:51 +0100 Subject: [PATCH 11/17] Enable roofing settings when roofing is actually active CURA-12472 --- resources/definitions/fdmprinter.def.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index c93c11a245..b42b5c417a 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -3021,6 +3021,7 @@ "minimum_value": "0.0001", "minimum_value_warning": "50", "maximum_value_warning": "150", + "enabled": "roofing_layer_count > 0 and top_layers > 0", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, @@ -3035,6 +3036,7 @@ "minimum_value": "0.0001", "minimum_value_warning": "50", "maximum_value_warning": "150", + "enabled": "roofing_layer_count > 0 and top_layers > 0", "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true }, @@ -3466,6 +3468,7 @@ "maximum_value_warning": "150", "default_value": 30, "value": "speed_wall_0", + "enabled": "roofing_layer_count > 0 and top_layers > 0", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, @@ -3480,6 +3483,7 @@ "maximum_value_warning": "150", "default_value": 60, "value": "speed_wall_x", + "enabled": "roofing_layer_count > 0 and top_layers > 0", "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true }, @@ -3882,7 +3886,7 @@ "maximum_value_warning": "10000", "default_value": 3000, "value": "acceleration_wall_0", - "enabled": "resolveOrValue('acceleration_enabled')", + "enabled": "resolveOrValue('acceleration_enabled') and roofing_layer_count > 0 and top_layers > 0", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, @@ -3897,7 +3901,7 @@ "maximum_value_warning": "10000", "default_value": 3000, "value": "acceleration_wall_x", - "enabled": "resolveOrValue('acceleration_enabled')", + "enabled": "resolveOrValue('acceleration_enabled') and roofing_layer_count > 0 and top_layers > 0", "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true }, @@ -4255,7 +4259,7 @@ "maximum_value_warning": "50", "default_value": 20, "value": "jerk_wall_0", - "enabled": "resolveOrValue('jerk_enabled')", + "enabled": "resolveOrValue('jerk_enabled') and roofing_layer_count > 0 and top_layers > 0", "limit_to_extruder": "wall_0_extruder_nr", "settable_per_mesh": true }, @@ -4269,7 +4273,7 @@ "maximum_value_warning": "50", "default_value": 20, "value": "jerk_wall_x", - "enabled": "resolveOrValue('jerk_enabled')", + "enabled": "resolveOrValue('jerk_enabled') and roofing_layer_count > 0 and top_layers > 0", "limit_to_extruder": "wall_x_extruder_nr", "settable_per_mesh": true }, From d1b0a59565e9bc33a54c58b871b77c3af6ce4939 Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Mon, 17 Mar 2025 15:19:59 +0100 Subject: [PATCH 12/17] Update S8 profiles: - Adjust warning levels to reflect the new motion limits - Enable floor layers (0 to 1) to improve bottom quality - Use normal prime tower (iso interleaving) for improved robustness - Increase skirt/brim length to ensure a good start of extrusion - Increase support line width from 0.4mm to 0.5mm for sturdier tree supports - Reduce support speed to wall_speed to improve tree support robustness PP-595 --- resources/definitions/ultimaker_s8.def.json | 178 +++++++++++++++++--- 1 file changed, 155 insertions(+), 23 deletions(-) diff --git a/resources/definitions/ultimaker_s8.def.json b/resources/definitions/ultimaker_s8.def.json index fd758f6e2a..9b8af0af56 100644 --- a/resources/definitions/ultimaker_s8.def.json +++ b/resources/definitions/ultimaker_s8.def.json @@ -48,27 +48,145 @@ }, "overrides": { - "acceleration_infill": { "value": "acceleration_print" }, - "acceleration_layer_0": { "value": 2000 }, - "acceleration_prime_tower": { "value": "acceleration_print" }, - "acceleration_print": { "value": 20000 }, - "acceleration_print_layer_0": { "value": "acceleration_layer_0" }, - "acceleration_roofing": { "value": "acceleration_wall_0" }, - "acceleration_skirt_brim": { "value": "acceleration_layer_0" }, - "acceleration_support": { "value": "acceleration_print" }, - "acceleration_support_bottom": { "value": "acceleration_support_interface" }, - "acceleration_support_infill": { "value": "acceleration_support" }, - "acceleration_support_interface": { "value": "acceleration_support" }, - "acceleration_support_roof": { "value": "acceleration_support_interface" }, - "acceleration_topbottom": { "value": "acceleration_print" }, - "acceleration_travel": { "value": 10000 }, + "acceleration_flooring": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_roofing" + }, + "acceleration_infill": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_print" + }, + "acceleration_layer_0": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": 2000 + }, + "acceleration_prime_tower": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_print" + }, + "acceleration_print": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": 20000 + }, + "acceleration_print_layer_0": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_layer_0" + }, + "acceleration_roofing": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_wall_0" + }, + "acceleration_skirt_brim": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_layer_0" + }, + "acceleration_support": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_print" + }, + "acceleration_support_bottom": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_support_interface" + }, + "acceleration_support_infill": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_support" + }, + "acceleration_support_interface": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_support" + }, + "acceleration_support_roof": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_support_interface" + }, + "acceleration_topbottom": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_print" + }, + "acceleration_travel": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": 10000 + }, "acceleration_travel_enabled": { "value": true }, - "acceleration_travel_layer_0": { "value": "acceleration_layer_0" }, - "acceleration_wall": { "value": "acceleration_print/8" }, - "acceleration_wall_0": { "value": "acceleration_wall" }, - "acceleration_wall_0_roofing": { "value": "acceleration_wall_0" }, - "acceleration_wall_x": { "value": "acceleration_print" }, - "acceleration_wall_x_roofing": { "value": "acceleration_wall" }, + "acceleration_travel_layer_0": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_layer_0" + }, + "acceleration_wall": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_print/8" + }, + "acceleration_wall_0": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_wall" + }, + "acceleration_wall_0_flooring": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_wall_0_roofing" + }, + "acceleration_wall_0_roofing": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_wall_0" + }, + "acceleration_wall_x": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_print" + }, + "acceleration_wall_x_flooring": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_wall_x_roofing" + }, + "acceleration_wall_x_roofing": + { + "maximum_value": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x", + "value": "acceleration_wall" + }, "adhesion_type": { "value": "'brim' if support_enable and support_structure=='tree' else 'skirt'" }, "bottom_thickness": { "value": "3*layer_height if top_layers==4 and not support_enable else top_bottom_thickness" }, "bridge_skin_material_flow": { "value": 200 }, @@ -89,10 +207,14 @@ "cool_min_layer_time_overhang": { "value": 9 }, "cool_min_layer_time_overhang_min_segment_length": { "value": 2 }, "cool_min_speed": { "value": 6 }, - "cool_min_temperature": { "value": "material_print_temperature-15" }, + "cool_min_temperature": + { + "minimum_value_warning": "material_print_temperature-15", + "value": "material_print_temperature-15" + }, "default_material_print_temperature": { "maximum_value_warning": 320 }, "extra_infill_lines_to_support_skins": { "value": "'walls_and_lines'" }, - "flooring_layer_count": { "value": 0 }, + "flooring_layer_count": { "value": 1 }, "gradual_flow_enabled": { "value": false }, "hole_xy_offset": { "value": 0.075 }, "infill_material_flow": { "value": "material_flow" }, @@ -241,6 +363,8 @@ "value": "jerk_wall_0" }, "machine_gcode_flavor": { "default_value": "Cheetah" }, + "machine_max_acceleration_x": { "default_value": 50000 }, + "machine_max_acceleration_y": { "default_value": 50000 }, "machine_max_feedrate_x": { "default_value": 500 }, "machine_max_feedrate_y": { "default_value": 500 }, "machine_max_jerk_e": @@ -281,6 +405,7 @@ "optimize_wall_printing_order": { "value": false }, "prime_tower_brim_enable": { "value": true }, "prime_tower_min_volume": { "value": 10 }, + "prime_tower_mode": { "resolve": "'normal'" }, "retraction_amount": { "value": 6.5 }, "retraction_combing_avoid_distance": { "value": 1.2 }, "retraction_combing_max_distance": { "value": 50 }, @@ -293,6 +418,7 @@ "skin_material_flow": { "value": 95 }, "skin_overlap": { "value": 0 }, "skin_preshrink": { "value": 0 }, + "skirt_brim_minimal_length": { "value": 1000 }, "skirt_brim_speed": { "maximum_value_warning": 300, @@ -344,7 +470,7 @@ "speed_support": { "maximum_value_warning": 300, - "value": "speed_print" + "value": "speed_wall" }, "speed_support_bottom": { @@ -374,11 +500,13 @@ "speed_travel": { "maximum_value": 500, + "maximum_value_warning": 500, "value": 400 }, "speed_travel_layer_0": { "maximum_value": 500, + "maximum_value_warning": 500, "value": 150 }, "speed_wall": @@ -417,13 +545,17 @@ "value": "speed_wall" }, "support_angle": { "value": 60 }, + "support_bottom_distance": { "maximum_value_warning": "3*layer_height" }, "support_bottom_offset": { "value": 0 }, "support_brim_width": { "value": 10 }, "support_interface_enable": { "value": true }, "support_interface_offset": { "value": "support_offset" }, + "support_line_width": { "value": "1.25*line_width" }, "support_offset": { "value": "1.2 if support_structure == 'tree' else 0.8" }, "support_pattern": { "value": "'gyroid' if support_structure == 'tree' else 'lines'" }, + "support_roof_height": { "minimum_value_warning": 0 }, "support_structure": { "value": "'normal'" }, + "support_top_distance": { "maximum_value_warning": "3*layer_height" }, "support_tree_bp_diameter": { "value": 15 }, "support_tree_tip_diameter": { "value": 1.0 }, "support_tree_top_rate": { "value": 20 }, From 3b5432912c4b76138b3990bc88587a6a21ead919 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 17 Mar 2025 16:22:11 +0100 Subject: [PATCH 13/17] Standardize QML code CURA-12466 --- .../qml/Preferences/SettingVisibilityPage.qml | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index f3fca52104..60599c93fc 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -154,25 +154,31 @@ UM.PreferencesPage visibilityHandler: UM.SettingPreferenceVisibilityHandler {} } - property Component settingVisibilityCategory: Cura.SettingVisibilityCategory {} - property Component settingVisibilityItem: Cura.SettingVisibilityItem {} + Component + { + id: settingVisibilityCategory + Cura.SettingVisibilityCategory {} + } - delegate: Component - { - Loader - { - id: loader - width: settingsListView.width - scrollBar.width - height: model.type !== undefined ? UM.Theme.getSize("section").height : 0 + Component + { + id: settingVisibilityItem + Cura.SettingVisibilityItem {} + } - property var definition: model - property var settingDefinitionsModel: definitionsModel + delegate: Loader + { + id: loader + width: settingsListView.width - scrollBar.width + height: model.type !== undefined ? UM.Theme.getSize("section").height : 0 - asynchronous: false - active: model.type !== undefined - sourceComponent: model.type === "category" ? settingsListView.settingVisibilityCategory : settingsListView.settingVisibilityItem - } - } + property var definition: model + property var settingDefinitionsModel: definitionsModel + + asynchronous: false + active: model.type !== undefined + sourceComponent: model.type === "category" ? settingVisibilityCategory : settingVisibilityItem + } } } } From 7204cdfa968bbe3924d95fddc0d21744278d3c56 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 17 Mar 2025 16:35:18 +0100 Subject: [PATCH 14/17] Revert onTextChange --- resources/qml/Preferences/SettingVisibilityPage.qml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/resources/qml/Preferences/SettingVisibilityPage.qml b/resources/qml/Preferences/SettingVisibilityPage.qml index 60599c93fc..73fd021fa2 100644 --- a/resources/qml/Preferences/SettingVisibilityPage.qml +++ b/resources/qml/Preferences/SettingVisibilityPage.qml @@ -98,15 +98,7 @@ UM.PreferencesPage placeholderText: catalog.i18nc("@label:textbox", "Filter...") - onTextChanged: - { - if (text !== lastFilterText) - { - lastFilterText = text; - definitionsModel.filter = {"i18n_label|i18n_description": "*" + text}; - } - } - property string lastFilterText: "" + onTextChanged: definitionsModel.filter = {"i18n_label|i18n_description": "*" + text} } Cura.ComboBox From 09c49126a84c81ecd63b475bcd0113b06633a3f8 Mon Sep 17 00:00:00 2001 From: Frederic Meeuwissen <13856291+Frederic98@users.noreply.github.com> Date: Mon, 17 Mar 2025 16:26:52 +0100 Subject: [PATCH 15/17] [PP-593] Mark Nylon CF Slide as experimental on CC 0.4 cores --- .../um_s3_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg | 1 + .../um_s5_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg | 1 + .../ultimaker_s3/um_s3_cc0.4_nylon-cf-slide_0.2mm.inst.cfg | 3 ++- .../ultimaker_s5/um_s5_cc0.4_nylon-cf-slide_0.2mm.inst.cfg | 3 ++- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/resources/intent/ultimaker_s3/um_s3_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s3/um_s3_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg index 6b0e052ec9..8d8e73a1a8 100644 --- a/resources/intent/ultimaker_s3/um_s3_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s3/um_s3_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_nylon-cf-slide quality_type = draft setting_version = 25 diff --git a/resources/intent/ultimaker_s5/um_s5_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg b/resources/intent/ultimaker_s5/um_s5_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg index 0e2138ce25..a89e4eb944 100644 --- a/resources/intent/ultimaker_s5/um_s5_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg +++ b/resources/intent/ultimaker_s5/um_s5_cc0.4_nylon-cf-slide_0.2mm_engineering.inst.cfg @@ -5,6 +5,7 @@ version = 4 [metadata] intent_category = engineering +is_experimental = True material = generic_nylon-cf-slide quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s3/um_s3_cc0.4_nylon-cf-slide_0.2mm.inst.cfg b/resources/quality/ultimaker_s3/um_s3_cc0.4_nylon-cf-slide_0.2mm.inst.cfg index 611f5bc5a6..128d0bef77 100644 --- a/resources/quality/ultimaker_s3/um_s3_cc0.4_nylon-cf-slide_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_cc0.4_nylon-cf-slide_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s3 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon-cf-slide quality_type = draft setting_version = 25 diff --git a/resources/quality/ultimaker_s5/um_s5_cc0.4_nylon-cf-slide_0.2mm.inst.cfg b/resources/quality/ultimaker_s5/um_s5_cc0.4_nylon-cf-slide_0.2mm.inst.cfg index 08c199737d..87651a1870 100644 --- a/resources/quality/ultimaker_s5/um_s5_cc0.4_nylon-cf-slide_0.2mm.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_cc0.4_nylon-cf-slide_0.2mm.inst.cfg @@ -1,9 +1,10 @@ [general] definition = ultimaker_s5 -name = Fast +name = Fast - Experimental version = 4 [metadata] +is_experimental = True material = generic_nylon-cf-slide quality_type = draft setting_version = 25 From 24c749c64be46188d2d8627fa637e4eb63a37f5d Mon Sep 17 00:00:00 2001 From: Paul Kuiper <46715907+pkuiper-ultimaker@users.noreply.github.com> Date: Mon, 17 Mar 2025 17:08:15 +0100 Subject: [PATCH 16/17] Reduce the warning limits such that they do not overlap the max limits. PP-595 --- resources/definitions/ultimaker_s8.def.json | 50 ++++++++++----------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/resources/definitions/ultimaker_s8.def.json b/resources/definitions/ultimaker_s8.def.json index 9b8af0af56..bc5dae085c 100644 --- a/resources/definitions/ultimaker_s8.def.json +++ b/resources/definitions/ultimaker_s8.def.json @@ -51,140 +51,140 @@ "acceleration_flooring": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_roofing" }, "acceleration_infill": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_print" }, "acceleration_layer_0": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": 2000 }, "acceleration_prime_tower": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_print" }, "acceleration_print": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": 20000 }, "acceleration_print_layer_0": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_layer_0" }, "acceleration_roofing": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_wall_0" }, "acceleration_skirt_brim": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_layer_0" }, "acceleration_support": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_print" }, "acceleration_support_bottom": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_support_interface" }, "acceleration_support_infill": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_support" }, "acceleration_support_interface": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_support" }, "acceleration_support_roof": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_support_interface" }, "acceleration_topbottom": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_print" }, "acceleration_travel": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": 10000 }, "acceleration_travel_enabled": { "value": true }, "acceleration_travel_layer_0": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_layer_0" }, "acceleration_wall": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_print/8" }, "acceleration_wall_0": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_wall" }, "acceleration_wall_0_flooring": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_wall_0_roofing" }, "acceleration_wall_0_roofing": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_wall_0" }, "acceleration_wall_x": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_print" }, "acceleration_wall_x_flooring": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_wall_x_roofing" }, "acceleration_wall_x_roofing": { "maximum_value": "machine_max_acceleration_x", - "maximum_value_warning": "machine_max_acceleration_x", + "maximum_value_warning": "machine_max_acceleration_x*0.8", "value": "acceleration_wall" }, "adhesion_type": { "value": "'brim' if support_enable and support_structure=='tree' else 'skirt'" }, @@ -500,13 +500,13 @@ "speed_travel": { "maximum_value": 500, - "maximum_value_warning": 500, + "maximum_value_warning": 400, "value": 400 }, "speed_travel_layer_0": { "maximum_value": 500, - "maximum_value_warning": 500, + "maximum_value_warning": 400, "value": 150 }, "speed_wall": From 05e8b4283b83bf83fa81fe10e598e0b08d7118f1 Mon Sep 17 00:00:00 2001 From: HellAholic Date: Mon, 17 Mar 2025 16:37:46 +0000 Subject: [PATCH 17/17] Set conan package version 5.10.0 --- conandata.yml | 14 +++++++------- resources/conandata.yml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/conandata.yml b/conandata.yml index 5af5cdef64..698c1238f6 100644 --- a/conandata.yml +++ b/conandata.yml @@ -1,15 +1,15 @@ -version: "5.10.0-beta.1" +version: "5.10.0" requirements: - - "cura_resources/5.10.0-beta.1" - - "uranium/5.10.0-beta.1" - - "curaengine/5.10.0-beta.1" - - "cura_binary_data/5.10.0-beta.1" - - "fdm_materials/5.10.0-beta.1" + - "cura_resources/5.10.0" + - "uranium/5.10.0" + - "curaengine/5.10.0" + - "cura_binary_data/5.10.0" + - "fdm_materials/5.10.0" - "dulcificum/5.10.0" - "pysavitar/5.10.0" - "pynest2d/5.10.0" requirements_internal: - - "fdm_materials/5.10.0-beta.1" + - "fdm_materials/5.10.0" - "cura_private_data/5.10.0-alpha.0@internal/testing" requirements_enterprise: - "native_cad_plugin/2.0.0" diff --git a/resources/conandata.yml b/resources/conandata.yml index 8236ba70b5..a30e8f2613 100644 --- a/resources/conandata.yml +++ b/resources/conandata.yml @@ -1 +1 @@ -version: "5.10.0-beta.1" +version: "5.10.0"