Browse Source

Fermeture des documents après chaque export de pièce

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)
master
Youen 1 year ago
parent
commit
e3640f9c9d
  1. 9
      tools/export-all-parts.py

9
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')

Loading…
Cancel
Save