From ce6e3982fe7187a9fe68dfeca5b9bc501f78b940 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 13 Oct 2016 13:15:16 +0200 Subject: [PATCH 1/7] Make resolve function of bed temperature use max We want the bed to have the highest temperature of the two. This causes some melting for softer materials, but it is required for harder materials to stick to the build plate. --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index a26afefb5c..603349726e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1149,7 +1149,7 @@ "description": "The temperature used for the heated build plate. Set at 0 to pre-heat the printer manually.", "unit": "°C", "type": "float", - "resolve": "sum(extruderValues('material_bed_temperature')) / len(extruderValues('material_bed_temperature'))", + "resolve": "max(extruderValues('material_bed_temperature'))", "default_value": 60, "minimum_value": "-273.15", "minimum_value_warning": "0", From a291131acad19aca4e0204659c0fac3b4ed1b576 Mon Sep 17 00:00:00 2001 From: fieldOfView Date: Thu, 13 Oct 2016 21:18:17 +0200 Subject: [PATCH 2/7] Fix qml warning when no printer is connected --- resources/qml/MonitorButton.qml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml index 607d0a24ca..4a68e532d1 100644 --- a/resources/qml/MonitorButton.qml +++ b/resources/qml/MonitorButton.qml @@ -161,6 +161,10 @@ Rectangle visible: showProgress; indeterminate: { + if(!printerConnected) + { + return false; + } switch(Cura.MachineManager.printerOutputDevices[0].jobState) { case "pausing": From 4769b22138a739cbb113976defb196747891931e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 14 Oct 2016 11:46:39 +0200 Subject: [PATCH 3/7] Sort profiles on extruder position before exporting In the importer the extruders are sorted on extruder position. In the exporter they need to be in the same order. Contributes to issue CURA-2655. --- plugins/GCodeWriter/GCodeWriter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/GCodeWriter/GCodeWriter.py b/plugins/GCodeWriter/GCodeWriter.py index 695e90dbf8..ee35a05215 100644 --- a/plugins/GCodeWriter/GCodeWriter.py +++ b/plugins/GCodeWriter/GCodeWriter.py @@ -106,7 +106,7 @@ class GCodeWriter(MeshWriter): serialized = flat_global_container.serialize() data = {"global_quality": serialized} - for extruder in ExtruderManager.getInstance().getMachineExtruders(stack.getId()): + for extruder in sorted(ExtruderManager.getInstance().getMachineExtruders(stack.getId()), key = lambda k: k.getMetaDataEntry("position")): extruder_quality = extruder.findContainer({"type": "quality_changes"}) if not extruder_quality: Logger.log("w", "No extruder quality profile found, not writing quality for extruder %s to file!", extruder.getId()) From ff24def63c9dc997b79ff90fdf414e0fb1e58326 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Sat, 15 Oct 2016 17:05:55 +0200 Subject: [PATCH 4/7] Use globalProfileId to check if we need to show changed settings CURA-2690 --- cura/Settings/MachineManager.py | 11 +++++++++++ resources/qml/Preferences/ProfileTab.qml | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 0487f75de9..16d748f8d2 100644 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -514,6 +514,17 @@ class MachineManager(QObject): return quality.getId() return "" + @pyqtProperty(str, notify=activeQualityChanged) + def globalQualityId(self): + if self._global_container_stack: + quality = self._global_container_stack.findContainer({"type": "quality_changes"}) + if quality and quality != self._empty_quality_changes_container: + return quality.getId() + quality = self._global_container_stack.findContainer({"type": "quality"}) + if quality: + return quality.getId() + return "" + @pyqtProperty(str, notify = activeQualityChanged) def activeQualityType(self): if self._active_container_stack: diff --git a/resources/qml/Preferences/ProfileTab.qml b/resources/qml/Preferences/ProfileTab.qml index 3fd4ca6a5a..2c3bb0a2eb 100644 --- a/resources/qml/Preferences/ProfileTab.qml +++ b/resources/qml/Preferences/ProfileTab.qml @@ -38,8 +38,8 @@ Tab anchors.leftMargin: UM.Theme.getSize("default_margin").width anchors.right: parent.right text: styleData.value - font.strikeout: styleData.column == 1 && quality == Cura.MachineManager.activeQualityId && setting.user_value != "" - font.italic: setting.profile_value_source == "quality_changes" || (quality == Cura.MachineManager.activeQualityId && setting.user_value != "") + font.strikeout: styleData.column == 1 && quality == Cura.MachineManager.globalQualityId && setting.user_value != "" + font.italic: setting.profile_value_source == "quality_changes" || (quality == Cura.MachineManager.globalQualityId && setting.user_value != "") opacity: font.strikeout ? 0.5 : 1 color: styleData.textColor elide: Text.ElideRight @@ -65,7 +65,7 @@ Tab { role: "user_value" title: catalog.i18nc("@title:column", "Current"); - visible: quality == Cura.MachineManager.activeQualityId + visible: quality == Cura.MachineManager.globalQualityId width: parent.width * 0.18 delegate: itemDelegate } From d12219cab8d407e1c0f81782409aea50bf3d4085 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Sat, 15 Oct 2016 17:10:26 +0200 Subject: [PATCH 5/7] Right profile is now checked again in dropdown CURA-2690 --- resources/qml/Menus/ProfileMenu.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index 1cb97153dd..0b2c7a5ae2 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -42,7 +42,7 @@ Menu { text: model.name checkable: true - checked: Cura.MachineManager.activeQualityId == model.id + checked: Cura.MachineManager.globalQualityId == model.id exclusiveGroup: group onTriggered: Cura.MachineManager.setActiveQuality(model.id) } From a3df53c1e186d678f81fc237800d688fa62d3ad2 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Sat, 15 Oct 2016 18:36:05 +0200 Subject: [PATCH 6/7] Quality_changes are now taken into account for UM3Extended CURA-2690 --- cura/Settings/QualitySettingsModel.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cura/Settings/QualitySettingsModel.py b/cura/Settings/QualitySettingsModel.py index 6c59e3bde3..07191cd49d 100644 --- a/cura/Settings/QualitySettingsModel.py +++ b/cura/Settings/QualitySettingsModel.py @@ -117,7 +117,7 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): quality_container = quality_container[0] quality_type = quality_container.getMetaDataEntry("quality_type") - definition_id = quality_container.getDefinition().getId() + definition_id = UM.Application.getInstance().getMachineManager().getQualityDefinitionId(quality_container.getDefinition()) criteria = {"type": "quality", "quality_type": quality_type, "definition": definition_id} @@ -150,8 +150,10 @@ class QualitySettingsModel(UM.Qt.ListModel.ListModel): if quality_changes_container: criteria = {"type": "quality_changes", "quality_type": quality_type, "definition": definition_id, "name": quality_changes_container.getName()} if self._extruder_definition_id != "": - criteria["extruder"] = self._extruder_definition_id - criteria["name"] = quality_changes_container.getName() + extruder_definitions = self._container_registry.findDefinitionContainers(id = self._extruder_definition_id) + if extruder_definitions: + criteria["extruder"] = UM.Application.getInstance().getMachineManager().getQualityDefinitionId(extruder_definitions[0]) + criteria["name"] = quality_changes_container.getName() else: criteria["extruder"] = None From 3afd813e5ec53a21e0f1b7934859796d9382ac94 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Sat, 15 Oct 2016 19:23:07 +0200 Subject: [PATCH 7/7] Profiles page is now correctly updated when single extrusion machine is used --- resources/qml/Preferences/ProfilesPage.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/Preferences/ProfilesPage.qml b/resources/qml/Preferences/ProfilesPage.qml index 42c055486a..1bc705fe62 100644 --- a/resources/qml/Preferences/ProfilesPage.qml +++ b/resources/qml/Preferences/ProfilesPage.qml @@ -208,7 +208,7 @@ UM.ManagementPage anchors.right: parent.right anchors.bottom: parent.bottom - currentIndex: ExtruderManager.activeExtruderIndex + 1; + currentIndex: ExtruderManager.extruderCount > 0 ? ExtruderManager.activeExtruderIndex + 1 : 0 ProfileTab {