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