Readme Doku aktualisiert. War veraltet. pip Abhängigkeiten in lib/requirements.txt ergänzt. Python Install Skript für venv dazu
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
call setenv.bat
|
||||
if not exist %PROJECT%\.venv (
|
||||
ECHO Initialisiere Python virtual environment...
|
||||
py -m venv %PROJECT%\.venv --upgrade-deps
|
||||
ECHO Erfolgreich.
|
||||
|
||||
call %PROJECT%\.venv\Scripts\activate.bat
|
||||
ECHO Installiere erforderliche Python Packages...
|
||||
pip install -r %PROJECT_LIB%/requirements.txt -q
|
||||
ECHO Erfolgreich
|
||||
deactivate
|
||||
|
||||
) ELSE (
|
||||
ECHO Erforderliche Python Packages bereits installiert!
|
||||
)
|
||||
+153
-30
@@ -1,39 +1,60 @@
|
||||
# Dokumentation: create_assemblies, save_stl & read_variables
|
||||
# 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):
|
||||
**Über die Batch-Datei (empfohlen unter Windows):**
|
||||
|
||||
```bat
|
||||
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:
|
||||
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 <Eingabeordner> --out <Ausgabeordner>
|
||||
```
|
||||
|
||||
#### Parameter:
|
||||
**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:**
|
||||
- **Input:**
|
||||
- .par-Dateien im angegebenen Eingabeordner
|
||||
- dummy.asm und dummy.par im data/-Verzeichnis (werden als Vorlage und Platzhalter verwendet)
|
||||
- **Output:**
|
||||
- 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.
|
||||
|
||||
---
|
||||
@@ -41,34 +62,40 @@ python lib/create_assemblies.py --in <Eingabeordner> --out <Ausgabeordner>
|
||||
## 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.
|
||||
|
||||
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):
|
||||
**Über die Batch-Datei (empfohlen unter Windows):**
|
||||
|
||||
```bat
|
||||
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:
|
||||
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 <Eingabeordner> --out <Ausgabeordner>
|
||||
```
|
||||
|
||||
#### Parameter:
|
||||
**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:**
|
||||
- **Input:**
|
||||
- .asm-Dateien im angegebenen Eingabeordner (z.B. aus create_assemblies)
|
||||
- **Output:**
|
||||
- **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.
|
||||
@@ -78,36 +105,46 @@ python lib/save_stl.py --in <Eingabeordner> --out <Ausgabeordner>
|
||||
## 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.
|
||||
|
||||
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:
|
||||
**Über die Batch-Datei (empfohlen unter Windows):**
|
||||
|
||||
```bat
|
||||
bin\get_dimensions.bat --in <Eingabeordner> --out <Ausgabeordner>
|
||||
```
|
||||
|
||||
**Direkt über die Kommandozeile:**
|
||||
|
||||
```sh
|
||||
python lib/read_variables.py --in <Eingabeordner> --out <Ausgabeordner>
|
||||
```
|
||||
|
||||
#### Parameter:
|
||||
**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:**
|
||||
- **Input:**
|
||||
- .par-Dateien im angegebenen Eingabeordner
|
||||
- **Output:**
|
||||
- **Output:**
|
||||
- Eine JSON-Datei im Ausgabeverzeichnis, benannt nach dem Eingabeordner (z.B. input.json), mit folgendem Aufbau:
|
||||
|
||||
```json
|
||||
{
|
||||
"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.
|
||||
@@ -115,14 +152,100 @@ python lib/read_variables.py --in <Eingabeordner> --out <Ausgabeordner>
|
||||
|
||||
---
|
||||
|
||||
- **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.
|
||||
## 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:**
|
||||
|
||||
```bat
|
||||
bin\diff_dimensions.bat --type <Typ> --json_dimensions <3D-JSON> --json_2d <2D-JSON> [--tolerance <Wert>] [--result <Ausgabedatei>]
|
||||
```
|
||||
|
||||
**Interaktiv (mit Abfragen):**
|
||||
|
||||
```bat
|
||||
bin\get_all_differences.bat
|
||||
```
|
||||
|
||||
Fragt Typ, Dateinamen und Toleranz interaktiv ab und ruft dann `diff_dimensions.bat` auf.
|
||||
|
||||
**Direkt über die Kommandozeile:**
|
||||
|
||||
```sh
|
||||
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
|
||||
|
||||
```bat
|
||||
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).
|
||||
|
||||
---
|
||||
|
||||
Wenn du eine Beispielkonfiguration oder weitere Details (z.B. zu setenv.bat oder den Umgebungsvariablen) benötigst, sag gerne Bescheid!
|
||||
## 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.
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
pywin32
|
||||
Reference in New Issue
Block a user