diff --git a/scripts/export.py b/scripts/export.py new file mode 100644 index 0000000..3cc9d3e --- /dev/null +++ b/scripts/export.py @@ -0,0 +1,89 @@ +# example: .\run.py path_to_folder\ + +import os +import sys +import pathlib +import subprocess +from rich.progress import track +from rich import print +import PySimpleGUI as sg + +def run(cmdinput): + + # folder input + input = next(os.walk(cmdinput)) + files = input[2] + path = input[0] + + currentPath = str(pathlib.Path().resolve()) + + # print("files: ", files) + # print("currentPath :", currentPath) + # print("path: ", path) + + path = path.replace('/', '\\') + # print("New path: ", path) + + partFiles = [s for s in files if ".SLDPRT" in s] # get only parts files + drwgFiles = [s for s in files if ".SLDDRW" in s] # get only drawings files + + print("\nParts: \n", partFiles) + print("\nDrawings: \n", drwgFiles, "\n") + + partWithoutExention = [os.path.splitext(x)[0] for x in partFiles] # remove extension + drwgWithoutExtension = [os.path.splitext(x)[0] for x in drwgFiles] # remove extension + # print("Parts without extension: ", partWithoutExention) + + # Check if each part has drawings and print + for p in partWithoutExention: + if str(p) not in str(drwgFiles): + print(p, " doesn't have drawing file") + + + + outputFolder = str(path) + "\\export\\" + # print("Out folder: ", outputFolder) + + # create export directory + if not os.path.exists(outputFolder): + os.makedirs(outputFolder) + # print("\nExport folder created\n") + + # part files + for i in track(partWithoutExention, description="Exporting step files...", total=len(partWithoutExention)): + input = str(i) + commandstep = "PowerShell -NoProfile -ExecutionPolicy Bypass -File " + currentPath + '\export-step.ps1 "' + path + "\\" + input + '" "' + outputFolder + input + '"' + # print(commandstep) + subprocess.run(commandstep, capture_output=True) + + # drawings files + for i in track(drwgWithoutExtension, description="Exporting PDF and DXF...", total = len(drwgWithoutExtension)): + input = str(i) + commandPdfDxf = "PowerShell -NoProfile -ExecutionPolicy Bypass -File " + currentPath + '\export-pdf-dxf.ps1 "' + path + "\\" + input + '" "' + outputFolder + input + '"' + # print(commandPdfDxf) + subprocess.run(commandPdfDxf, capture_output=True) + + +if len(sys.argv) > 1: + cmd = str(sys.argv[1] ) + run(cmd) +else: + fname = sg.Window('Files exporter', + [[sg.Text('Folder to export')], + [sg.In(), sg.FolderBrowse()], + [sg.Open(), sg.Cancel()]]).read(close=True)[1][0] + + if not fname: + sg.popup("Cancel", "No filename supplied") + raise SystemExit("Cancelling: no filename supplied") + else: + # sg.popup('The filename you chose was', fname) + print(fname) + cmd = str(fname) + run(cmd) + +# a = input() +# print(a) +print("Done") + +