Dokumentation: CAD-Automatisierungsskripte
Übersicht
| Skript | Batch-Datei | Zweck |
|---|---|---|
lib/create_assemblies.py |
bin/create_assemblies.bat |
Erzeugt .asm-Baugruppen aus .par-Dateien |
lib/save_stl.py |
bin/save_stl.bat |
Exportiert .asm-Baugruppen als STL-Dateien |
lib/read_variables.py |
bin/get_dimensions.bat |
Liest Maße aus .par-Dateien und speichert als JSON |
lib/diff_dimensions.py |
bin/diff_dimensions.bat |
Vergleicht 3D-Maße (JSON) mit 2D-Zeichnungsmaßen |
| (kein Python) | bin/get_all_differences.bat |
Interaktiver Wrapper für diff_dimensions |
| (kein Python) | bin/get_cmd.bat |
Öffnet Kommandozeile mit gesetzten Umgebungsvariablen |
| (kein Python) | bin/setenv.bat |
Setzt alle Umgebungsvariablen für das Projekt |
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):
bin\create_assemblies.bat --in <Eingabeordner> --out <Ausgabeordner>
Die Batch-Datei setzt Umgebungsvariablen und ruft das Python-Skript mit den übergebenen Parametern auf.
Direkt über die Kommandozeile:
python lib/create_assemblies.py --in <Eingabeordner> --out <Ausgabeordner>
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 Netzwerkpfad PROJECT_TEMPLATE (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.
- Die Vorlage (dummy.asm) wird aus dem Netzwerkpfad
PROJECT_TEMPLATEgeladen (Standard:\\ssg.local\freigaben\RuleDesigner\Templates\CreateAssemblies). - 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 oder Visualisierung) bereitzustellen.
Aufrufmöglichkeiten
Über die Batch-Datei (empfohlen unter Windows):
bin\save_stl.bat --in <Eingabeordner> --out <Ausgabeordner>
Die Batch-Datei setzt Umgebungsvariablen und ruft das Python-Skript mit den übergebenen Parametern auf.
Direkt über die Kommandozeile:
python lib/save_stl.py --in <Eingabeordner> --out <Ausgabeordner>
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 Batch-Datei (empfohlen unter Windows):
bin\get_dimensions.bat --in <Eingabeordner> --out <Ausgabeordner>
Direkt über die Kommandozeile:
python lib/read_variables.py --in <Eingabeordner> --out <Ausgabeordner>
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:
{ "Dateiname_ohne_Endung": { "breite": <Wert>, "hoehe": <Wert> } }
-
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.
4. diff_dimensions
Zweck
Das Skript vergleicht 3D-Bauteilmaße (aus einer JSON-Datei erzeugt von read_variables) mit 2D-Zeichnungsmaßen (aus einer JSON-Datei des SVG-Editors). Einträge, bei denen Breite oder Höhe außerhalb der Toleranz abweichen, werden in einer Ausgabe-JSON gespeichert. So lassen sich Inkonsistenzen zwischen 3D-Modell und 2D-Zeichnung schnell identifizieren.
Aufrufmöglichkeiten
Über die Batch-Datei:
bin\diff_dimensions.bat --type <Typ> --json_dimensions <3D-JSON> --json_2d <2D-JSON> [--tolerance <Wert>] [--result <Ausgabedatei>]
Interaktiv (mit Abfragen):
bin\get_all_differences.bat
Fragt Typ, Dateinamen und Toleranz interaktiv ab und ruft dann diff_dimensions.bat auf.
Direkt über die Kommandozeile:
python lib/diff_dimensions.py --type <Typ> --json_dimensions <3D-JSON> --json_2d <2D-JSON>
Parameter:
--type: Art des Bauteils:BOGEN,WEICHE,TEFBOGENoderTEFWEICHE(bestimmt das Eingabeverzeichnis für die 2D-JSON)--json_dimensions: Dateiname der 3D-Maße-JSON (ausread_variables, liegt in PROJECT_WORK)--json_2d: Dateiname der 2D-Maße-JSON (liegt im typabhängigen Verzeichnis)--tolerance: Toleranz in Millimetern (optional, Standard:0.05)--result: Dateiname der Ausgabedatei (optional, Standard:Differenzen_2D_3D.json)--output_dir: Ausgabeverzeichnis (optional, Standard: Umgebungsvariable PROJECT_WORK)
Input/Output
- Input:
--json_dimensions: JSON-Datei mit 3D-Maßen (Schlüssel: SIVAS-Nummer, Felder:breite,hoehe)--json_2d: JSON-Datei mit 2D-Maßen (Liste mit FeldernSivasnr,Objekte_width_mm,Objekte_height_mm)
- Output:
- JSON-Datei mit allen Einträgen, deren Maße außerhalb der Toleranz liegen, inkl. Differenzwerten (
w_diff,h_diff). Bei übereinstimmenden Maßen wird keine Ausgabedatei erzeugt.
- JSON-Datei mit allen Einträgen, deren Maße außerhalb der Toleranz liegen, inkl. Differenzwerten (
Beispielaufruf
bin\diff_dimensions.bat --type BOGEN --json_dimensions Bogen_3D.json --json_2d Bogen_2D.json --tolerance 0.1 --result diff_bogen.json
Hinweise
- Erfordert kein Solid Edge — reine JSON-Verarbeitung.
- Die Umgebungsvariablen
PROJECT_JSON_BOGEN,PROJECT_JSON_WEICHE,PROJECT_JSON_TEFBOGEN,PROJECT_JSON_TEFWEICHEmüssen für den--type-Parameter korrekt gesetzt sein (via setenv.bat).
5. Batch-Hilfsskripte
setenv.bat
Setzt alle Projektumgebungsvariablen. Wird von allen anderen Batch-Dateien automatisch aufgerufen.
| Variable | Standardwert | Bedeutung |
|---|---|---|
PROJECT_DIR |
Verzeichnis des Code-Ordners | Wurzelverzeichnis des Projekts |
PROJECT_BIN |
%PROJECT_DIR%\bin |
Verzeichnis der Batch-Dateien |
PROJECT_LIB |
%PROJECT_DIR%\lib |
Verzeichnis der Python-Skripte |
PROJECT_WORK |
%PROJECT_DIR%\work |
Arbeitsverzeichnis (Zwischenergebnisse) |
PROJECT_DATA |
%PROJECT_DIR%\data |
Datenverzeichnis |
PROJECT_INPUT |
%PROJECT_DIR%\input |
Eingabeverzeichnis (.par-Dateien) |
PROJECT_TEMPLATE |
\\ssg.local\freigaben\RuleDesigner\Templates\CreateAssemblies |
Netzwerkpfad zur dummy.asm-Vorlage |
PROJECT_JSON_BOGEN |
%SSG_RD_DIR%\SVGs\Omniflo\python\OFBogen\json |
2D-JSON-Verzeichnis für Bögen |
PROJECT_JSON_WEICHE |
%SSG_RD_DIR%\SVGs\Omniflo\python\OFWeiche\json |
2D-JSON-Verzeichnis für Weichen |
PROJECT_JSON_TEFBOGEN |
%SSG_RD_DIR%\SVGs\Omniflo\python\TEFBogen\json |
2D-JSON-Verzeichnis für TEF-Bögen |
PROJECT_JSON_TEFWEICHE |
%SSG_RD_DIR%\SVGs\Omniflo\python\TEFWeiche\json |
2D-JSON-Verzeichnis für TEF-Weichen |
get_cmd.bat
Ruft setenv.bat auf und öffnet anschließend eine Kommandozeile mit gesetzten Umgebungsvariablen. Nützlich, um Skripte manuell mit korrekter Umgebung zu testen.
get_all_differences.bat
Interaktiver Wrapper für diff_dimensions.bat. Fragt Typ, JSON-Dateinamen und Toleranz per Eingabeaufforderung ab (mit vordefinierten Standardwerten) und startet dann den Vergleich.
Voraussetzungen
- Python mit den Paketen
win32com(pywin32) undpythoncom - Solid Edge (für COM-Zugriff bei
create_assemblies,save_stl,read_variables) - Netzwerkzugriff auf
\\ssg.local\freigaben\RuleDesigner\Templates\CreateAssemblies(fürcreate_assemblies)
Fehlerbehandlung
Fehlerhafte oder fehlende Dateien werden bei allen Skripten übersprungen — der Prozess läuft jeweils weiter und gibt eine Fehlermeldung aus.