diff --git a/cura/CuraPackageManager.py b/cura/CuraPackageManager.py index 12a77fd234..fbede6d08b 100644 --- a/cura/CuraPackageManager.py +++ b/cura/CuraPackageManager.py @@ -63,8 +63,10 @@ class CuraPackageManager(PackageManager): # Secure search paths are install directory paths, if a material is in here it must be bundled. paths = [Path(p) for p in glob.glob(path + '/**/*.xml.fdm_material')] + Logger.info(f"All bundled Materials Found: {[str(path) for path in paths]}") for material in paths: if material.name == file_name: + Logger.info(f"Found bundled material: {material.name}. Located in path: {str(material)}") with open(material, encoding="utf-8") as f: # Make sure the file we found has the same guid as our material # Parsing this xml would be better but the namespace is needed to search it. @@ -79,19 +81,21 @@ class CuraPackageManager(PackageManager): def getMaterialFilePackageId(self, file_name: str, guid: str) -> str: """Get the id of the installed material package that contains file_name""" + Logger.info(f'Searching paths for package: {[f for f in os.scandir(self._installation_dirs_dict["materials"]) if f.is_dir()]}') for material_package in [f for f in os.scandir(self._installation_dirs_dict["materials"]) if f.is_dir()]: package_id = material_package.name - for root, _, file_names in os.walk(material_package.path): if file_name not in file_names: # File with the name we are looking for is not in this directory continue - + Logger.info(f"Found file: {file_name}") + Logger.info(f"Attempting to open {os.path.join(root, file_name)}") with open(os.path.join(root, file_name), encoding="utf-8") as f: # Make sure the file we found has the same guid as our material # Parsing this xml would be better but the namespace is needed to search it. parsed_guid = PluginRegistry.getInstance().getPluginObject("XmlMaterialProfile").getMetadataFromSerialized( f.read(), "GUID") + if guid == parsed_guid: return package_id diff --git a/plugins/3MFWriter/ThreeMFWriter.py b/plugins/3MFWriter/ThreeMFWriter.py index 83007177c3..081493cd56 100644 --- a/plugins/3MFWriter/ThreeMFWriter.py +++ b/plugins/3MFWriter/ThreeMFWriter.py @@ -10,6 +10,7 @@ from UM.Logger import Logger from UM.Math.Matrix import Matrix from UM.Application import Application from UM.Message import Message +from UM.Resources import Resources from UM.Scene.SceneNode import SceneNode from cura.CuraApplication import CuraApplication @@ -276,6 +277,8 @@ class ThreeMFWriter(MeshWriter): if not package_data: # We failed to find the package for this material + + Logger.info(f"Secure resource paths searched for: {Resources.getSecureSearchPaths()}") message = Message(catalog.i18nc("@error:material", "It was not possible to store material package information in project file: {material}. This project may not open correctly on other systems.".format(material=extruder.getName())), title=catalog.i18nc("@info:title", "Failed to save material package information"),