diff --git a/cura/Machines/Models/MaterialBrandsModel.py b/cura/Machines/Models/MaterialBrandsModel.py index 0438fc76fa..aeab2c1642 100644 --- a/cura/Machines/Models/MaterialBrandsModel.py +++ b/cura/Machines/Models/MaterialBrandsModel.py @@ -44,6 +44,10 @@ class MaterialBrandsModel(BaseMaterialsModel): if bool(container_node.getMetaDataEntry("removed", False)): continue + # Ignore materials that are marked as not visible for whatever reason + if not bool(container_node.getMetaDataEntry("visible", True)): + continue + # Add brands we haven't seen yet to the dict, skipping generics brand = container_node.getMetaDataEntry("brand", "") if brand.lower() == "generic": diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 524b7f099c..8c1ad17250 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -910,6 +910,9 @@ class XmlMaterialProfile(InstanceContainer): base_metadata["properties"] = property_values base_metadata["definition"] = "fdmprinter" + # Certain materials are loaded but should not be visible / selectable to the user. + base_metadata["visible"] = not property_values.get("abstract_color", False) + compatible_entries = data.iterfind("./um:settings/um:setting[@key='hardware compatible']", cls.__namespaces) try: common_compatibility = cls._parseCompatibleValue(next(compatible_entries).text) # type: ignore