diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index ca7baf2f63..2df8c0d967 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -988,11 +988,21 @@ class MachineManager(QObject): def activeMaterialsCompatible(self): # check material - variant compatibility + result = True + machine_has_buildplate = Util.parseBool(self._global_container_stack.getMetaDataEntry("has_variant_buildplates", False)) if Util.parseBool(self._global_container_stack.getMetaDataEntry("has_materials", False)): for position, extruder in self._global_container_stack.extruders.items(): if extruder.isEnabled and not extruder.material.getMetaDataEntry("compatible"): - return False - return True + result = False + break + if machine_has_buildplate: + buildplate_compatibility_dict = extruder.material.getMetaDataEntry("buildplate_compatible") + if buildplate_compatibility_dict: + buildplate_name = self._global_container_stack.variant.getName() + result = buildplate_compatibility_dict.get(buildplate_name, True) + if not result: + break + return result ## Update current quality type and machine after setting material def _updateQualityWithMaterial(self): diff --git a/plugins/MachineSettingsAction/MachineSettingsAction.qml b/plugins/MachineSettingsAction/MachineSettingsAction.qml index 4d00904f76..f941ef87b4 100644 --- a/plugins/MachineSettingsAction/MachineSettingsAction.qml +++ b/plugins/MachineSettingsAction/MachineSettingsAction.qml @@ -244,6 +244,7 @@ Cura.MachineAction height: childrenRect.height width: childrenRect.width text: machineExtruderCountProvider.properties.description + visible: extruderCountModel.count >= 2 Row { diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.py b/plugins/PostProcessingPlugin/PostProcessingPlugin.py index 566b05abf3..c4b760724b 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.py +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.py @@ -173,7 +173,10 @@ class PostProcessingPlugin(QObject, Extension): Logger.log("d", "Creating post processing plugin view.") ## Load all scripts in the scripts folders - for root in [PluginRegistry.getInstance().getPluginPath("PostProcessingPlugin"), Resources.getStoragePath(Resources.Preferences)]: + # The PostProcessingPlugin path is for built-in scripts. + # The Resources path is where the user should store custom scripts. + # The Preferences path is legacy, where the user may previously have stored scripts. + for root in [PluginRegistry.getInstance().getPluginPath("PostProcessingPlugin"), Resources.getStoragePath(Resources.Resources), Resources.getStoragePath(Resources.Preferences)]: path = os.path.join(root, "scripts") if not os.path.isdir(path): try: diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py b/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py index acccfd88dd..c411b4190e 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py @@ -8,10 +8,10 @@ upgrade = VersionUpgrade32to33.VersionUpgrade32to33() def getMetaData(): return { "version_upgrade": { - # From To Upgrade function + # From To Upgrade function ("definition_changes", 2000004): ("definition_changes", 3000004, upgrade.upgradeInstanceContainer), - ("quality_changes", 2000004): ("quality_changes", 3000004, upgrade.upgradeQualityChanges), - ("user", 2000004): ("user", 3000004, upgrade.upgradeInstanceContainer) + ("quality_changes", 2000004): ("quality_changes", 3000004, upgrade.upgradeQualityChanges), + ("user", 2000004): ("user", 3000004, upgrade.upgradeInstanceContainer) }, "sources": { "definition_changes": { diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index a7ba423153..e8d0c9d2f0 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -617,7 +617,8 @@ class XmlMaterialProfile(InstanceContainer): from cura.Machines.VariantManager import VariantType variant_manager = CuraApplication.getInstance().getVariantManager() - variant_node = variant_manager.getVariantNode(machine_id, buildplate_id) + variant_node = variant_manager.getVariantNode(machine_id, buildplate_id, + variant_type = VariantType.BUILD_PLATE) if not variant_node: continue