diff --git a/CAD/Code/doku/README.md b/CAD/Code/doku/README.md new file mode 100644 index 0000000..dc70fc1 --- /dev/null +++ b/CAD/Code/doku/README.md @@ -0,0 +1,128 @@ +# 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! \ No newline at end of file diff --git a/CAD/Code/lib/save_stl.py b/CAD/Code/lib/save_stl.py index 1f57680..7738e35 100644 --- a/CAD/Code/lib/save_stl.py +++ b/CAD/Code/lib/save_stl.py @@ -10,7 +10,7 @@ def export_assemblies_to_stl(input_dir, output_dir): try: # Solid Edge starten oder verbinden se_app = win32com.client.Dispatch("SolidEdge.Application") - se_app.Visible = False + se_app.Visible = True documents = se_app.Documents