Files

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_TEMPLATE geladen (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, TEFBOGEN oder TEFWEICHE (bestimmt das Eingabeverzeichnis für die 2D-JSON)
  • --json_dimensions: Dateiname der 3D-Maße-JSON (aus read_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 Feldern Sivasnr, 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.

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_TEFWEICHE mü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) und pythoncom
  • Solid Edge (für COM-Zugriff bei create_assemblies, save_stl, read_variables)
  • Netzwerkzugriff auf \\ssg.local\freigaben\RuleDesigner\Templates\CreateAssemblies (für create_assemblies)

Fehlerbehandlung

Fehlerhafte oder fehlende Dateien werden bei allen Skripten übersprungen — der Prozess läuft jeweils weiter und gibt eine Fehlermeldung aus.