diff options
author | Aleksei S <a.sasin@ultimaker.com> | 2018-08-24 14:02:06 +0300 |
---|---|---|
committer | Aleksei S <a.sasin@ultimaker.com> | 2018-08-24 14:02:06 +0300 |
commit | ea935024cfae2cc6b376d1caa0a832d589bfb429 (patch) | |
tree | 58e674ee3a8b2f31ff5ac53f3ed9b85ef5cd2dec /plugins/UFPWriter | |
parent | 49e3c23d1438c7133e739af62b23f5f9297313b1 (diff) |
Add materil xml file to UFP file
CURA-5555
Diffstat (limited to 'plugins/UFPWriter')
-rw-r--r-- | plugins/UFPWriter/UFPWriter.py | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index ceb9d79087..7c8b43a018 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -60,5 +60,43 @@ class UFPWriter(MeshWriter): else: Logger.log("d", "Thumbnail not created, cannot save it") + #Store the material. + application = Application.getInstance() + machine_manager = application.getMachineManager() + global_stack = machine_manager.activeMachine + container_registry = application.getContainerRegistry() + + archive.addContentType(extension="xml.fdm_material", mime_type="application/x-ultimaker-material-profile") + + added_materials = [] + for extruder_stack in global_stack.extruders.values(): + material = extruder_stack.material + material_file_name = material.getMetaData()["base_file"] + ".xml.fdm_material" + material_file_name = "/Cura/" + material_file_name + + #Same material cannot be added + if material_file_name in added_materials: + continue + + material_file = archive.getStream(material_file_name) + material_containers = container_registry.findContainers(id=material.getMetaDataEntry("base_file")) + + if not material_containers: + Logger.log("e", "Cannot find material container with id: %s", material.id) + return False + + material_container = material_containers[0] + try: + serialized_material = material_container.serialize() + except NotImplementedError: + Logger.log("e", "Unable serialize material container with id: %s", material.id) + return False + + material_file.write(serialized_material.encode("UTF-8")) + archive.addRelation(virtual_path=material_file_name,relation_type="http://schemas.ultimaker.org/package/2018/relationships/xml.fdm_material") + + + added_materials.append(material_file_name) + archive.close() - return True + return True
\ No newline at end of file |