diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 144f495997..b09ff9e8bd 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -919,11 +919,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 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/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