Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksei S <a.sasin@ultimaker.com>2018-08-24 14:02:06 +0300
committerAleksei S <a.sasin@ultimaker.com>2018-08-24 14:02:06 +0300
commitea935024cfae2cc6b376d1caa0a832d589bfb429 (patch)
tree58e674ee3a8b2f31ff5ac53f3ed9b85ef5cd2dec /plugins/UFPWriter
parent49e3c23d1438c7133e739af62b23f5f9297313b1 (diff)
Add materil xml file to UFP file
CURA-5555
Diffstat (limited to 'plugins/UFPWriter')
-rw-r--r--plugins/UFPWriter/UFPWriter.py40
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