Fix build plate compatibility check

CURA-5078
This commit is contained in:
Lipu Fei 2018-03-12 10:33:40 +01:00
parent d98cab48ac
commit 2c5cc17b49
2 changed files with 14 additions and 3 deletions

View file

@ -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):

View file

@ -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