diff --git a/plugins/3MFReader/ThreeMFReader.py b/plugins/3MFReader/ThreeMFReader.py index e06e9dcf4e4..50ff75927aa 100755 --- a/plugins/3MFReader/ThreeMFReader.py +++ b/plugins/3MFReader/ThreeMFReader.py @@ -209,6 +209,11 @@ def _read(self, file_name: str) -> Union[SceneNode, List[SceneNode]]: archive = zipfile.ZipFile(file_name, "r") self._base_name = os.path.basename(file_name) parser = Savitar.ThreeMFParser() + for name in archive.namelist(): + if (name.startswith("3D/") and name.endswith(".model") and name != "3D/3dmodel.model"): + Logger.log("i", "Parse 3mf sub model " + name) + substr = archive.open(name).read() + parser.parse(b"/" + bytes(name, "utf-8") + b":" + substr) scene_3mf = parser.parse(archive.open("3D/3dmodel.model").read()) self._unit = scene_3mf.getUnit()