From e3640f9c9dddfb0e4dbba9bb0d0b60d89c6956c2 Mon Sep 17 00:00:00 2001 From: Youen Date: Fri, 31 Mar 2023 14:48:24 +0200 Subject: [PATCH] =?UTF-8?q?Fermeture=20des=20documents=20apr=C3=A8s=20chaq?= =?UTF-8?q?ue=20export=20de=20pi=C3=A8ce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Evite un bug qui se produit lorsqu'un document est ouvert une seconde fois par le script (freecad change son nom, et donc le script ne trouve pas la pièce à exporter) --- tools/export-all-parts.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/export-all-parts.py b/tools/export-all-parts.py index 84e53f4..436b2fb 100644 --- a/tools/export-all-parts.py +++ b/tools/export-all-parts.py @@ -18,8 +18,10 @@ def convert_file(file_name, output_format): root_objects = [] main_object = None + #print("document: " + doc.Name) for obj in doc.Objects: if len(obj.Parents) == 0: + #print(obj.Label) root_objects.append(obj) if obj.Label == doc.Name: main_object = obj @@ -28,7 +30,7 @@ def convert_file(file_name, output_format): main_object = root_objects[0] if main_object is None: - raise Exception("Can't find main object in file " + file_name) + raise Exception("Can't find main object in file " + file_name + " (found " + str(len(root_objects)) + " root object(s), none named like the document " + doc.Name + ")") secondary_objects = [] code_obj = doc.getObjectsByLabel('Code_Tube_Draft') @@ -57,6 +59,10 @@ def convert_file(file_name, output_format): os.makedirs(output_dir) Import.export([main_object], output_path) + + # close all documents + while len(FreeCAD.listDocuments().values()) > 0: + FreeCAD.closeDocument(list(FreeCAD.listDocuments().values())[0].Name) folders = [ 'chaudronnerie', @@ -66,6 +72,7 @@ folders = [ for folder in folders: files = os.listdir(project_folder + '/' + folder) for source_file in files: + if not source_file.endswith('.FCStd'): continue source_path = folder + '/' + source_file print(source_path) convert_file(source_path, 'step')