Merge branch 'main' of https://gitea.schoenenberger.de/mistangl/SSG-Ruledesigner-Konfigurator
This commit is contained in:
@@ -1,10 +1,18 @@
|
|||||||
@echo off
|
@echo off
|
||||||
REM ~dp0 steht für das Verzeichnis, in der diese Datei liegt
|
setlocal
|
||||||
|
SET "MANAGE=%~dp0manage_interpreter.bat"
|
||||||
|
|
||||||
call setenv.bat
|
CALL "%MANAGE%" activate
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo ERROR: Failed to activate Python environment
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
REM Beispielaufruf mit Parametern:
|
pushd "%PROJECT%"
|
||||||
REM --in: Ordner mit .par-Dateien (optional. Standard: Input)
|
|
||||||
REM --out: Zielverzeichnis (optional. Standard: Work)
|
|
||||||
|
|
||||||
python %PROJECT_LIB%\create_assemblies.py %*
|
"%VIRTUAL_ENV%\Scripts\python.exe" -m lib.create_assemblies %*
|
||||||
|
set PYTHON_EXIT=%ERRORLEVEL%
|
||||||
|
|
||||||
|
popd
|
||||||
|
CALL "%MANAGE%" deactivate
|
||||||
|
exit /b %PYTHON_EXIT%
|
||||||
|
|||||||
@@ -1,6 +1,18 @@
|
|||||||
@echo off
|
@echo off
|
||||||
REM ~dp0 steht für das Verzeichnis, in der diese Datei liegt
|
setlocal
|
||||||
|
SET "MANAGE=%~dp0manage_interpreter.bat"
|
||||||
|
|
||||||
call setenv.bat
|
CALL "%MANAGE%" activate
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo ERROR: Failed to activate Python environment
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
python "%PROJECT_LIB%\diff_dimensions.py" %*
|
pushd "%PROJECT%"
|
||||||
|
|
||||||
|
"%VIRTUAL_ENV%\Scripts\python.exe" -m lib.diff_dimensions %*
|
||||||
|
set PYTHON_EXIT=%ERRORLEVEL%
|
||||||
|
|
||||||
|
popd
|
||||||
|
CALL "%MANAGE%" deactivate
|
||||||
|
exit /b %PYTHON_EXIT%
|
||||||
|
|||||||
@@ -23,4 +23,4 @@ set /p TOLERANCE=Gib die Toleranz ein (Standard: %DEFAULT_TOLERANCE%):
|
|||||||
if "%TOLERANCE%"=="" set "TOLERANCE=%DEFAULT_TOLERANCE%"
|
if "%TOLERANCE%"=="" set "TOLERANCE=%DEFAULT_TOLERANCE%"
|
||||||
|
|
||||||
REM Aufruf des Skripts mit den eingegebenen oder Standardwerten
|
REM Aufruf des Skripts mit den eingegebenen oder Standardwerten
|
||||||
call diff_dimensions.bat --type %TYPE% --json_2d %JSON2D% --json_dimensions %JSONDIM% --tolerance %TOLERANCE%
|
call "%~dp0diff_dimensions.bat" --type %TYPE% --json_2d %JSON2D% --json_dimensions %JSONDIM% --tolerance %TOLERANCE%
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@echo off
|
@echo off
|
||||||
call setenv.bat
|
call "%~dp0setenv.bat"
|
||||||
start
|
start
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,18 @@
|
|||||||
@echo off
|
@echo off
|
||||||
REM ~dp0 steht für das Verzeichnis, in der diese Datei liegt
|
setlocal
|
||||||
|
SET "MANAGE=%~dp0manage_interpreter.bat"
|
||||||
|
|
||||||
call setenv.bat
|
CALL "%MANAGE%" activate
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo ERROR: Failed to activate Python environment
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
REM Beispielaufruf mit Parametern:
|
pushd "%PROJECT%"
|
||||||
REM --in: Ordner mit .asm-Dateien (optional. Standard: Work)
|
|
||||||
REM --out: Zielverzeichnis (optional. Standard: Work\stl_export)
|
|
||||||
|
|
||||||
python %PROJECT_LIB%\read_variables.py %*
|
"%VIRTUAL_ENV%\Scripts\python.exe" -m lib.read_variables %*
|
||||||
|
set PYTHON_EXIT=%ERRORLEVEL%
|
||||||
|
|
||||||
|
popd
|
||||||
|
CALL "%MANAGE%" deactivate
|
||||||
|
exit /b %PYTHON_EXIT%
|
||||||
|
|||||||
@@ -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!
|
||||||
|
)
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
@echo off
|
||||||
|
CALL "%~dp0setenv.bat"
|
||||||
|
|
||||||
|
IF /I "%1"=="activate" GOTO activate
|
||||||
|
IF /I "%1"=="deactivate" GOTO deactivate
|
||||||
|
IF /I "%1"=="activate_interpreter" GOTO activate
|
||||||
|
IF /I "%1"=="deactivate_interpreter" GOTO deactivate
|
||||||
|
GOTO :eof
|
||||||
|
|
||||||
|
|
||||||
|
:activate
|
||||||
|
REM Interpreter wählen
|
||||||
|
IF DEFINED NETWORK_PYTHON (
|
||||||
|
SET PYTHON_EXE=%NETWORK_PYTHON%\python.exe
|
||||||
|
) ELSE (
|
||||||
|
SET PYTHON_EXE=python
|
||||||
|
)
|
||||||
|
|
||||||
|
REM venv sicherstellen
|
||||||
|
IF NOT EXIST "%PROJECT%\.venv" (
|
||||||
|
"%PYTHON_EXE%" -m venv "%PROJECT%\.venv"
|
||||||
|
)
|
||||||
|
|
||||||
|
REM venv aktivieren
|
||||||
|
CALL "%PROJECT%\.venv\Scripts\activate.bat"
|
||||||
|
|
||||||
|
REM Interpreter festnageln
|
||||||
|
SET VIRTUAL_ENV_PYTHON=%PYTHON_EXE%
|
||||||
|
GOTO :eof
|
||||||
|
|
||||||
|
|
||||||
|
:deactivate
|
||||||
|
CALL "%PROJECT%\.venv\Scripts\deactivate.bat"
|
||||||
|
SET VIRTUAL_ENV_PYTHON=
|
||||||
|
GOTO :eof
|
||||||
@@ -1,10 +1,18 @@
|
|||||||
@echo off
|
@echo off
|
||||||
REM ~dp0 steht für das Verzeichnis, in der diese Datei liegt
|
setlocal
|
||||||
|
SET "MANAGE=%~dp0manage_interpreter.bat"
|
||||||
|
|
||||||
call setenv.bat
|
CALL "%MANAGE%" activate
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo ERROR: Failed to activate Python environment
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
REM Beispielaufruf mit Parametern:
|
pushd "%PROJECT%"
|
||||||
REM --in: Ordner mit .asm-Dateien (optional. Standard: Work)
|
|
||||||
REM --out: Zielverzeichnis (optional. Standard: Work\stl_export)
|
|
||||||
|
|
||||||
python %PROJECT_LIB%\save_stl.py %*
|
"%VIRTUAL_ENV%\Scripts\python.exe" -m lib.save_stl %*
|
||||||
|
set PYTHON_EXIT=%ERRORLEVEL%
|
||||||
|
|
||||||
|
popd
|
||||||
|
CALL "%MANAGE%" deactivate
|
||||||
|
exit /b %PYTHON_EXIT%
|
||||||
|
|||||||
@@ -2,16 +2,13 @@
|
|||||||
REM ~dp0 steht für das Verzeichnis, in der diese Datei liegt
|
REM ~dp0 steht für das Verzeichnis, in der diese Datei liegt
|
||||||
pushd %~dp0\..
|
pushd %~dp0\..
|
||||||
|
|
||||||
REM for /f "delims=" %%i in ('git rev-parse --show-toplevel') do set SSG_RD_DIR=%%i
|
set PROJECT=%cd%
|
||||||
|
|
||||||
|
set PROJECT_BIN=%PROJECT%\bin
|
||||||
set PROJECT_DIR=%cd%
|
set PROJECT_LIB=%PROJECT%\lib
|
||||||
|
set PROJECT_WORK=%PROJECT%\work
|
||||||
set PROJECT_BIN=%PROJECT_DIR%\bin
|
set PROJECT_DATA=%PROJECT%\data
|
||||||
set PROJECT_LIB=%PROJECT_DIR%\lib
|
set PROJECT_INPUT=%PROJECT%\input
|
||||||
set PROJECT_WORK=%PROJECT_DIR%\work
|
|
||||||
set PROJECT_DATA=%PROJECT_DIR%\data
|
|
||||||
set PROJECT_INPUT=%PROJECT_DIR%\input
|
|
||||||
set PROJECT_TEMPLATE=\\ssg.local\freigaben\RuleDesigner\Templates\CreateAssemblies
|
set PROJECT_TEMPLATE=\\ssg.local\freigaben\RuleDesigner\Templates\CreateAssemblies
|
||||||
|
|
||||||
if not exist %PROJECT_WORK% mkdir %PROJECT_WORK%
|
if not exist %PROJECT_WORK% mkdir %PROJECT_WORK%
|
||||||
|
|||||||
+147
-24
@@ -1,24 +1,43 @@
|
|||||||
# 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
|
## 1. create_assemblies
|
||||||
|
|
||||||
### Zweck
|
### 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.
|
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
|
### Aufrufmöglichkeiten
|
||||||
|
|
||||||
#### Über die Batch-Datei (empfohlen unter Windows):
|
**Über die Batch-Datei (empfohlen unter Windows):**
|
||||||
|
|
||||||
```bat
|
```bat
|
||||||
bin\create_assemblies.bat --in <Eingabeordner> --out <Ausgabeordner>
|
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
|
```sh
|
||||||
python lib/create_assemblies.py --in <Eingabeordner> --out <Ausgabeordner>
|
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)
|
- `--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)
|
- `--out`: Zielordner für die erzeugten .asm-Dateien (optional, Standard: ./work)
|
||||||
|
|
||||||
@@ -26,14 +45,16 @@ python lib/create_assemblies.py --in <Eingabeordner> --out <Ausgabeordner>
|
|||||||
|
|
||||||
- **Input:**
|
- **Input:**
|
||||||
- .par-Dateien im angegebenen Eingabeordner
|
- .par-Dateien im angegebenen Eingabeordner
|
||||||
- dummy.asm und dummy.par im data/-Verzeichnis (werden als Vorlage und Platzhalter verwendet)
|
- dummy.asm und dummy.par im Netzwerkpfad PROJECT_TEMPLATE (werden als Vorlage und Platzhalter verwendet)
|
||||||
- **Output:**
|
- **Output:**
|
||||||
- Für jede .par-Datei wird eine .asm-Datei im Ausgabeverzeichnis erzeugt.
|
- Für jede .par-Datei wird eine .asm-Datei im Ausgabeverzeichnis erzeugt.
|
||||||
- Temporäre Dateien (_temp.asm, .cfg) werden nach Verarbeitung gelöscht.
|
- Temporäre Dateien (_temp.asm, .cfg) werden nach Verarbeitung gelöscht.
|
||||||
|
|
||||||
### Hinweise
|
### Hinweise
|
||||||
|
|
||||||
- Solid Edge muss installiert sein, da das Skript über COM darauf zugreift.
|
- 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 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.
|
- Fehlerhafte oder fehlende Platzhalter werden übersprungen und führen nicht zum Abbruch des gesamten Prozesses.
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -41,22 +62,27 @@ python lib/create_assemblies.py --in <Eingabeordner> --out <Ausgabeordner>
|
|||||||
## 2. save_stl
|
## 2. save_stl
|
||||||
|
|
||||||
### Zweck
|
### 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
|
### Aufrufmöglichkeiten
|
||||||
|
|
||||||
#### Über die Batch-Datei (empfohlen unter Windows):
|
**Über die Batch-Datei (empfohlen unter Windows):**
|
||||||
|
|
||||||
```bat
|
```bat
|
||||||
bin\save_stl.bat --in <Eingabeordner> --out <Ausgabeordner>
|
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
|
```sh
|
||||||
python lib/save_stl.py --in <Eingabeordner> --out <Ausgabeordner>
|
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)
|
- `--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)
|
- `--out`: Zielordner für die STL-Dateien (optional, Standard: ./work/STL_Export)
|
||||||
|
|
||||||
@@ -69,6 +95,7 @@ python lib/save_stl.py --in <Eingabeordner> --out <Ausgabeordner>
|
|||||||
- Temporäre .cfg- und .log-Dateien werden nach dem Export gelöscht.
|
- Temporäre .cfg- und .log-Dateien werden nach dem Export gelöscht.
|
||||||
|
|
||||||
### Hinweise
|
### Hinweise
|
||||||
|
|
||||||
- Solid Edge muss installiert sein, da das Skript über COM darauf zugreift.
|
- 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).
|
- 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.
|
- Nach dem Export werden überflüssige .cfg- und .log-Dateien im Eingabe- und Ausgabeverzeichnis entfernt.
|
||||||
@@ -78,16 +105,25 @@ python lib/save_stl.py --in <Eingabeordner> --out <Ausgabeordner>
|
|||||||
## 3. read_variables
|
## 3. read_variables
|
||||||
|
|
||||||
### Zweck
|
### 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
|
### 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
|
```sh
|
||||||
python lib/read_variables.py --in <Eingabeordner> --out <Ausgabeordner>
|
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)
|
- `--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)
|
- `--out`: Zielordner für die JSON-Ausgabe (optional, Standard: Umgebungsvariable PROJECT_WORK oder ./work)
|
||||||
|
|
||||||
@@ -97,17 +133,18 @@ python lib/read_variables.py --in <Eingabeordner> --out <Ausgabeordner>
|
|||||||
- .par-Dateien im angegebenen Eingabeordner
|
- .par-Dateien im angegebenen Eingabeordner
|
||||||
- **Output:**
|
- **Output:**
|
||||||
- Eine JSON-Datei im Ausgabeverzeichnis, benannt nach dem Eingabeordner (z.B. input.json), mit folgendem Aufbau:
|
- Eine JSON-Datei im Ausgabeverzeichnis, benannt nach dem Eingabeordner (z.B. input.json), mit folgendem Aufbau:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"Dateiname_ohne_Endung": {
|
"Dateiname_ohne_Endung": {
|
||||||
"breite": <Wert>,
|
"breite": <Wert>,
|
||||||
"hoehe": <Wert>
|
"hoehe": <Wert>
|
||||||
},
|
}
|
||||||
...
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Hinweise
|
### Hinweise
|
||||||
|
|
||||||
- Solid Edge muss installiert sein, da das Skript über COM darauf zugreift.
|
- Solid Edge muss installiert sein, da das Skript über COM darauf zugreift.
|
||||||
- Die Variablen werden mit 2000 multipliziert und auf drei Nachkommastellen gerundet.
|
- 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.
|
- 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:**
|
## 4. diff_dimensions
|
||||||
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:**
|
### Zweck
|
||||||
- Python (mit win32com)
|
|
||||||
- Solid Edge (für COM-Zugriff)
|
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.
|
||||||
- **Fehlerbehandlung:**
|
|
||||||
Fehlerhafte oder fehlende Dateien werden übersprungen, der Prozess läuft weiter.
|
### 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
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user