diff --git a/README.md b/README.md index 9a86b6f8e0..e1f23bbe04 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ Third party plugins * [Post Processing Plugin](https://github.com/nallath/PostProcessingPlugin): Allows for post-processing scripts to run on g-code. * [Barbarian Plugin](https://github.com/nallath/BarbarianPlugin): Simple scale tool for imperial to metric. * [X3G Writer](https://github.com/Ghostkeeper/X3GWriter): Adds support for exporting X3G files. +* [Auto orientation](https://github.com/nallath/CuraOrientationPlugin): Calculate the optimal orientation for a model. Making profiles for other printers ---------------------------------- diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 5a91bc1706..0758d76608 100644 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -520,6 +520,8 @@ class MachineManager(QObject): if extruder_stack != self._active_container_stack and extruder_stack.getProperty(key, "value") != new_value: extruder_stack.getTop().setProperty(key, "value", new_value) + ## Set the active material by switching out a container + # Depending on from/to material+current variant, a quality profile is chosen and set. @pyqtSlot(str) def setActiveMaterial(self, material_id): containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(id = material_id) @@ -533,7 +535,9 @@ class MachineManager(QObject): if not old_material: Logger.log("w", "While trying to set the active material, no material was found to replace it.") return - if old_quality_changes.getId() == "empty_quality_changes": #Don't want the empty one. + if (old_quality_changes.getId() == "empty_quality_changes" or #Don't want the empty one. + old_quality_changes.getMetaDataEntry("material") != material_id): # The quality change is based off a different material; the quality change is probably a custom quality. + old_quality_changes = None self.blurSettings.emit() old_material.nameChanged.disconnect(self._onMaterialNameChanged) @@ -551,7 +555,9 @@ class MachineManager(QObject): if old_quality: if old_quality_changes: - new_quality = self._updateQualityChangesContainer(old_quality.getMetaDataEntry("quality_type"), old_quality_changes.getMetaDataEntry("name")) + new_quality = self._updateQualityChangesContainer( + old_quality.getMetaDataEntry("quality_type"), + preferred_quality_changes_name = old_quality_changes.getMetaDataEntry("name")) else: new_quality = self._updateQualityContainer(self._global_container_stack.getBottom(), old_variant, containers[0], old_quality.getName()) else: diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index eae6593fb8..de91e1d9d1 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -2231,7 +2231,7 @@ "default_value": 1, "minimum_value": "0", "maximum_value_warning": "100", - "value": "max(0, int(round((cool_fan_full_at_height - layer_height_0) / layer_height, 0)))", + "value": "max(0, int(math.floor((cool_fan_full_at_height - layer_height_0) / layer_height) + 1))", "settable_per_mesh": false, "settable_per_extruder": true } diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index 45af0c7965..57d0226a97 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -38,7 +38,11 @@ Menu id: customProfileInstantiator model: UM.InstanceContainersModel { - filter: { "type": "quality_changes", "extruder": null, "definition": Cura.MachineManager.filterQualityByMachine ? Cura.MachineManager.activeQualityDefinitionId : "fdmprinter" }; + filter: menu.getFilter({ + "type": "quality_changes", + "extruder": null, + "definition": Cura.MachineManager.filterQualityByMachine ? Cura.MachineManager.activeQualityDefinitionId : "fdmprinter" + }); onModelReset: customSeparator.visible = rowCount() > 0 } diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml index a5e985efe0..f2937c04e6 100644 --- a/resources/qml/Preferences/MachinesPage.qml +++ b/resources/qml/Preferences/MachinesPage.qml @@ -207,6 +207,7 @@ UM.ManagementPage anchors.topMargin: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").width + visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId Component.onCompleted: {