mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
3mf reader now sets names of nodes
This makes debugging a whole lot easier. CURA-382
This commit is contained in:
parent
e1ebd3e225
commit
0d9fd3b410
1 changed files with 6 additions and 5 deletions
|
@ -11,9 +11,8 @@ from UM.Scene.GroupDecorator import GroupDecorator
|
|||
import UM.Application
|
||||
from UM.Job import Job
|
||||
|
||||
from UM.Math.Quaternion import Quaternion
|
||||
|
||||
import math
|
||||
import os.path
|
||||
import zipfile
|
||||
|
||||
try:
|
||||
|
@ -31,9 +30,11 @@ class ThreeMFReader(MeshReader):
|
|||
"3mf": "http://schemas.microsoft.com/3dmanufacturing/core/2015/02",
|
||||
"cura": "http://software.ultimaker.com/xml/cura/3mf/2015/10"
|
||||
}
|
||||
self._base_name = ""
|
||||
|
||||
def _createNodeFromObject(self, object, name = ""):
|
||||
node = SceneNode()
|
||||
node.setName(name)
|
||||
mesh_builder = MeshBuilder()
|
||||
vertex_list = []
|
||||
|
||||
|
@ -42,8 +43,7 @@ class ThreeMFReader(MeshReader):
|
|||
for component in components:
|
||||
id = component.get("objectid")
|
||||
new_object = self._root.find("./3mf:resources/3mf:object[@id='{0}']".format(id), self._namespaces)
|
||||
|
||||
new_node = self._createNodeFromObject(new_object)
|
||||
new_node = self._createNodeFromObject(new_object, self._base_name + "_" + str(id))
|
||||
node.addChild(new_node)
|
||||
transform = component.get("transform")
|
||||
if transform is not None:
|
||||
|
@ -114,6 +114,7 @@ class ThreeMFReader(MeshReader):
|
|||
result = SceneNode()
|
||||
# The base object of 3mf is a zipped archive.
|
||||
archive = zipfile.ZipFile(file_name, "r")
|
||||
self._base_name = os.path.basename(file_name)
|
||||
try:
|
||||
self._root = ET.parse(archive.open("3D/3dmodel.model"))
|
||||
|
||||
|
@ -122,7 +123,7 @@ class ThreeMFReader(MeshReader):
|
|||
for build_item in build_items:
|
||||
id = build_item.get("objectid")
|
||||
object = self._root.find("./3mf:resources/3mf:object[@id='{0}']".format(id), self._namespaces)
|
||||
build_item_node = self._createNodeFromObject(object)
|
||||
build_item_node = self._createNodeFromObject(object, self._base_name + "_" + str(id))
|
||||
transform = build_item.get("transform")
|
||||
if transform is not None:
|
||||
build_item_node.setTransformation(self._createMatrixFromTransformationString(transform))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue