forked from vhelio/vheliotech-freecad
Youen
2 years ago
1 changed files with 72 additions and 0 deletions
@ -0,0 +1,72 @@
|
||||
freecad_install_path = '/home/youen/dev/FreeCAD-asm3-Daily-Conda-Py3.10-20221128-glibc2.12-x86_64' |
||||
|
||||
import sys |
||||
sys.path.insert(0,freecad_install_path + '/usr/lib') |
||||
|
||||
from pathlib import Path |
||||
|
||||
import FreeCAD as App |
||||
import Import |
||||
|
||||
script_folder = os.path.dirname(__file__) |
||||
project_folder = os.path.realpath(script_folder + '/..') |
||||
output_folder = project_folder + '-STEP' |
||||
|
||||
def convert_file(file_name, output_format): |
||||
doc = App.open(project_folder + '/' + file_name) |
||||
|
||||
root_objects = [] |
||||
main_object = None |
||||
|
||||
for obj in doc.Objects: |
||||
if len(obj.Parents) == 0: |
||||
root_objects.append(obj) |
||||
if obj.Label == doc.Name: |
||||
main_object = obj |
||||
|
||||
if main_object is None and len(root_objects) == 1: |
||||
main_object = root_objects[0] |
||||
|
||||
if main_object is None: |
||||
raise Exception("Can't find main object in file " + file_name) |
||||
|
||||
secondary_objects = [] |
||||
code_obj = doc.getObjectsByLabel('Code_Tube_Draft') |
||||
if len(code_obj) == 1: |
||||
code_obj = code_obj[0] |
||||
#code_obj.Label = 'Code_Tube' |
||||
#secondary_objects.append(code_obj) |
||||
|
||||
# engrave code on tube |
||||
code_pocket = main_object.newObjectAt('PartDesign::Pocket','Pocket', [code_obj]) |
||||
code_pocket.Profile = code_obj |
||||
code_pocket.Length = 0.2 |
||||
code_pocket.recompute() |
||||
main_object.recompute() |
||||
|
||||
if len(secondary_objects) > 0: |
||||
group = doc.addObject('App::Part', 'Groupe') |
||||
group.addObject(main_object) |
||||
for obj in secondary_objects: |
||||
group.addObject(obj) |
||||
main_object = group |
||||
|
||||
output_path = output_folder + '/' + os.path.dirname(file_name) + '/' + Path(file_name).stem + '.' + output_format |
||||
output_dir = os.path.dirname(output_path) |
||||
if not os.path.exists(output_dir): |
||||
os.makedirs(output_dir) |
||||
|
||||
Import.export([main_object], output_path) |
||||
|
||||
folders = [ |
||||
'chaudronnerie', |
||||
'tubes' |
||||
] |
||||
|
||||
for folder in folders: |
||||
files = os.listdir(project_folder + '/' + folder) |
||||
for source_file in files: |
||||
source_path = folder + '/' + source_file |
||||
print(source_path) |
||||
convert_file(source_path, 'step') |
||||
|
Loading…
Reference in new issue