# Dokumentation: create_assemblies, save_stl & read_variables ## 1. create_assemblies ### Zweck Das Skript erstellt für jede .par-Datei im Eingabeordner eine neue .asm-Baugruppe, indem es eine Platzhalter-Baugruppe (dummy.asm) kopiert und darin die Platzhalter-Komponente (dummy.par) durch die jeweilige .par-Datei ersetzt. ### Aufrufmöglichkeiten #### Über die Batch-Datei (empfohlen unter Windows): ```bat bin\create_assemblies.bat --in --out ``` - Die Batch-Datei setzt Umgebungsvariablen und ruft das Python-Skript mit den übergebenen Parametern auf. #### Direkt über die Kommandozeile: ```sh python lib/create_assemblies.py --in --out ``` #### Parameter: - `--in`: Pfad zum Ordner mit .par-Dateien (optional, Standard: Umgebungsvariable PROJECT_INPUT oder ./input) - `--out`: Zielordner für die erzeugten .asm-Dateien (optional, Standard: ./work) ### Input/Output - **Input:** - .par-Dateien im angegebenen Eingabeordner - dummy.asm und dummy.par im data/-Verzeichnis (werden als Vorlage und Platzhalter verwendet) - **Output:** - Für jede .par-Datei wird eine .asm-Datei im Ausgabeverzeichnis erzeugt. - Temporäre Dateien (_temp.asm, .cfg) werden nach Verarbeitung gelöscht. ### Hinweise - Solid Edge muss installiert sein, da das Skript über COM darauf zugreift. - Die Platzhalter-Komponente in dummy.asm muss exakt dummy.par heißen. - Fehlerhafte oder fehlende Platzhalter werden übersprungen und führen nicht zum Abbruch des gesamten Prozesses. --- ## 2. save_stl ### Zweck Das Skript exportiert alle .asm-Baugruppen in einem Ordner als STL-Dateien. Es dient dazu, die zuvor erzeugten Baugruppen für die Weiterverarbeitung (z.B. 3D-Druck) bereitzustellen. ### Aufrufmöglichkeiten #### Über die Batch-Datei (empfohlen unter Windows): ```bat bin\save_stl.bat --in --out ``` - Die Batch-Datei setzt Umgebungsvariablen und ruft das Python-Skript mit den übergebenen Parametern auf. #### Direkt über die Kommandozeile: ```sh python lib/save_stl.py --in --out ``` #### Parameter: - `--in`: Pfad zum Ordner mit .asm-Dateien (optional, Standard: Umgebungsvariable PROJECT_WORK oder ./work) - `--out`: Zielordner für die STL-Dateien (optional, Standard: ./work/STL_Export) ### Input/Output - **Input:** - .asm-Dateien im angegebenen Eingabeordner (z.B. aus create_assemblies) - **Output:** - Für jede .asm-Datei wird eine .stl-Datei im Ausgabeverzeichnis erzeugt. - Temporäre .cfg- und .log-Dateien werden nach dem Export gelöscht. ### Hinweise - Solid Edge muss installiert sein, da das Skript über COM darauf zugreift. - Das Skript ist robust gegenüber Fehlern beim Export einzelner Dateien (Fehler werden gemeldet, der Prozess läuft weiter). - Nach dem Export werden überflüssige .cfg- und .log-Dateien im Eingabe- und Ausgabeverzeichnis entfernt. --- ## 3. read_variables ### Zweck Das Skript liest aus allen .par-Dateien in einem Verzeichnis die benutzerdefinierten Variablen 'Mittiges_Koordinatensystem_X_Translation' und 'Mittiges_Koordinatensystem_Y_Translation' aus und speichert die Werte als Breite und Höhe in einer JSON-Datei. ### Aufrufmöglichkeiten #### Über die Kommandozeile oder Batch-Datei: ```sh python lib/read_variables.py --in --out ``` #### Parameter: - `--in`: Pfad zum Ordner mit .par-Dateien (optional, Standard: Umgebungsvariable PROJECT_INPUT oder ./input) - `--out`: Zielordner für die JSON-Ausgabe (optional, Standard: Umgebungsvariable PROJECT_WORK oder ./work) ### Input/Output - **Input:** - .par-Dateien im angegebenen Eingabeordner - **Output:** - Eine JSON-Datei im Ausgabeverzeichnis, benannt nach dem Eingabeordner (z.B. input.json), mit folgendem Aufbau: ```json { "Dateiname_ohne_Endung": { "breite": , "hoehe": }, ... } ``` ### Hinweise - Solid Edge muss installiert sein, da das Skript über COM darauf zugreift. - Die Variablen werden mit 2000 multipliziert und auf drei Nachkommastellen gerundet. - Falls eine .par-Datei die benötigten Variablen nicht enthält, wird sie übersprungen. - Fehlerhafte Dateien führen nicht zum Abbruch des gesamten Prozesses. --- - **Umgebungsvariablen:** Die Batch-Dateien rufen vorab setenv.bat auf, um Umgebungsvariablen wie PROJECT_LIB, PROJECT_WORK, PROJECT_INPUT, PROJECT_DATA zu setzen. Diese sollten korrekt konfiguriert sein. - **Voraussetzungen:** - Python (mit win32com) - Solid Edge (für COM-Zugriff) - **Fehlerbehandlung:** Fehlerhafte oder fehlende Dateien werden übersprungen, der Prozess läuft weiter. --- Wenn du eine Beispielkonfiguration oder weitere Details (z.B. zu setenv.bat oder den Umgebungsvariablen) benötigst, sag gerne Bescheid!