Document the planned DXF-to-JSON-to-SCL generator pipeline
Add a Roadmap section to README.md and CLAUDE.md describing the two still-to-be-written lib/ tools (tro_export.py, scl_gen.py) that will turn the annotated CAD drawing into a JSON layout model and then into TIA-Portal-importable SCL, including the --skip-json shortcut. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -23,30 +23,64 @@ erzeugt. Diese drei Werkzeuge liegen als CLI-Tools in `lib/` und sind über
|
||||
`bin/`-Wrapper aufrufbar (siehe unten). Details, Domänenmodell und die
|
||||
Roadmap zum Generator stehen in `doc/`, allen voran `doc/Python_Scripts.md`.
|
||||
|
||||
## Roadmap
|
||||
|
||||
`tro_annotate.py` ist aktuell die letzte Stufe: Der Nutzer kann die annotierte
|
||||
DXF-Kopie danach von Hand weiterbearbeiten — TROs verschieben, ergänzen oder
|
||||
deren Typ ändern (`TRO_INSERT`/`TRO_EDIT` im BricsCAD-Menü, siehe
|
||||
`doc/HundM/BricsCAD_TRO_Symbol.md`). Geplant sind zwei weitere Tools, die diese
|
||||
Zeichnung bis zum fertigen SCL-Code weiterführen:
|
||||
|
||||
1. **`tro_export.py`** (geplant) — liest die (ggf. von Hand nachbearbeitete)
|
||||
annotierte DXF zusammen mit dem CSV-Export und leitet daraus die
|
||||
JSON-Layout-Datei nach dem in `doc/HundM/Json_Layout-Konzept.md`
|
||||
beschriebenen Schema ab (`plc`, `controlUnits`, `sensors[]`, `conveyors[]`,
|
||||
`tros[]`, `loadingBooms[]`, `emptyCarrBuffers[]`, `routing`, `jamAreas[]`,
|
||||
`scanners[]`, `connections[]`, `destinations[]`). Timing-Werte pro TRO
|
||||
(`trailingTime`, `handlingTime`, `senFree`, `senWait`, `jamTime`, ...)
|
||||
kommen dabei standardmäßig aus der typspezifischen Default-Tabelle
|
||||
(`doc/TRO_Typen.md`); trägt das CAD-Symbol einen `OVERRIDE_TIMING_JSON`-Wert
|
||||
(siehe `doc/HundM/BricsCAD_TRO_Symbol.md`), gewinnt der Override. Die
|
||||
erzeugte JSON-Datei ist danach von Hand editierbar, um einzelne Defaults
|
||||
oder Zeiten anzupassen, bevor daraus SCL generiert wird.
|
||||
2. **`scl_gen.py`** (geplant) — liest die JSON-Layout-Datei und erzeugt daraus
|
||||
die `.scl`-Skeleton-Dateien für den direkten TIA-Portal-Import (`FB_Main`,
|
||||
`FB_CallSensors`, `FC_Direction`, `FC_Call_Jams` je Steuerung). Mit dem
|
||||
Schalter `--skip-json` läuft dieser Schritt auch ohne manuell
|
||||
nachbearbeitete JSON-Datei: `scl_gen.py` liest dann DXF und CSV direkt (wie
|
||||
`tro_export.py`) und erzeugt sofort SCL mit den Typ-Defaults, ohne eine
|
||||
Zwischen-JSON-Datei zu schreiben oder einzulesen — sinnvoll, wenn an den
|
||||
Defaults nichts manuell angepasst werden muss.
|
||||
|
||||
Beide Tools bekommen wie üblich ein `bin/<name>.bat`/`.sh`-Wrapper-Paar und
|
||||
werden in `doc/Python_Scripts.md` dokumentiert, sobald sie existieren.
|
||||
|
||||
## Projektstruktur
|
||||
|
||||
sps_skel/
|
||||
bin/ Umgebungsskripte + ein .bat/.sh-Wrapper-Paar je CLI-Tool
|
||||
setenv.bat/.sh Umgebungsvariablen setzen
|
||||
install_py.bat/.sh venv erstellen + pip install
|
||||
activate_venv.bat/.sh venv aktivieren
|
||||
get_cmd.bat/.sh Shell mit Umgebung oeffnen
|
||||
material_flow.bat/.sh Wrapper fuer lib/material_flow.py
|
||||
tro_flow.bat/.sh Wrapper fuer lib/tro_flow.py
|
||||
tro_annotate.bat/.sh Wrapper fuer lib/tro_annotate.py
|
||||
cad/ generiertes BricsCAD-LISP (tro_types.lsp) fuer den TROEDIT-Dialog
|
||||
cfg/ Konfigurationsdateien (INI/JSON); dxf_registration.json
|
||||
data/ Eingabedaten - CSV-Exporte, DXF (nicht im Git)
|
||||
doc/ Dokumentation, siehe doc/Python_Scripts.md
|
||||
examples/ Beispieldateien
|
||||
lib/ Python-Quellcode (CLI-Tools + Bibliotheken)
|
||||
log/ Log-Dateien (nicht im Git)
|
||||
results/ Ergebnisse der CLI-Tools (.dot/.svg/.md/.dxf, nicht im Git)
|
||||
tests/ Unit Tests
|
||||
.gitignore
|
||||
LICENSE
|
||||
README.md
|
||||
requirements.txt
|
||||
```text
|
||||
sps_skel/
|
||||
bin/ Umgebungsskripte + ein .bat/.sh-Wrapper-Paar je CLI-Tool
|
||||
setenv.bat/.sh Umgebungsvariablen setzen
|
||||
install_py.bat/.sh venv erstellen + pip install
|
||||
activate_venv.bat/.sh venv aktivieren
|
||||
get_cmd.bat/.sh Shell mit Umgebung oeffnen
|
||||
material_flow.bat/.sh Wrapper fuer lib/material_flow.py
|
||||
tro_flow.bat/.sh Wrapper fuer lib/tro_flow.py
|
||||
tro_annotate.bat/.sh Wrapper fuer lib/tro_annotate.py
|
||||
cad/ generiertes BricsCAD-LISP (tro_types.lsp) fuer den TROEDIT-Dialog
|
||||
cfg/ Konfigurationsdateien (INI/JSON); dxf_registration.json
|
||||
data/ Eingabedaten - CSV-Exporte, DXF (nicht im Git)
|
||||
doc/ Dokumentation, siehe doc/Python_Scripts.md
|
||||
examples/ Beispieldateien
|
||||
lib/ Python-Quellcode (CLI-Tools + Bibliotheken)
|
||||
log/ Log-Dateien (nicht im Git)
|
||||
results/ Ergebnisse der CLI-Tools (.dot/.svg/.md/.dxf, nicht im Git)
|
||||
tests/ Unit Tests
|
||||
.gitignore
|
||||
LICENSE
|
||||
README.md
|
||||
requirements.txt
|
||||
```
|
||||
|
||||
## Umgebungsvariablen
|
||||
|
||||
@@ -74,28 +108,38 @@ Roadmap zum Generator stehen in `doc/`, allen voran `doc/Python_Scripts.md`.
|
||||
|
||||
### Setup (Windows)
|
||||
|
||||
bin\install_py.bat
|
||||
```bat
|
||||
bin\install_py.bat
|
||||
```
|
||||
|
||||
### Setup (Linux / macOS)
|
||||
|
||||
bash bin/install_py.sh
|
||||
```sh
|
||||
bash bin/install_py.sh
|
||||
```
|
||||
|
||||
## Nutzung
|
||||
|
||||
### Umgebung setzen
|
||||
|
||||
bin\setenv.bat # Windows
|
||||
source bin/setenv.sh # Linux / macOS
|
||||
```bat
|
||||
bin\setenv.bat # Windows
|
||||
source bin/setenv.sh # Linux / macOS
|
||||
```
|
||||
|
||||
### Shell mit gesetzten Variablen oeffnen
|
||||
|
||||
bin\get_cmd.bat # Windows
|
||||
source bin/get_cmd.sh # Linux / macOS
|
||||
```bat
|
||||
bin\get_cmd.bat # Windows
|
||||
source bin/get_cmd.sh # Linux / macOS
|
||||
```
|
||||
|
||||
### venv aktivieren
|
||||
|
||||
bin\activate_venv.bat # Windows
|
||||
source bin/activate_venv.sh # Linux / macOS
|
||||
```bat
|
||||
bin\activate_venv.bat # Windows
|
||||
source bin/activate_venv.sh # Linux / macOS
|
||||
```
|
||||
|
||||
### CLI-Tools ausführen
|
||||
|
||||
@@ -105,14 +149,16 @@ setzt die Umgebung, aktiviert `.venv` und ruft dann das Python-Modul auf.
|
||||
`%SKEL_DATA%` aufgelöst) oder einen vollen Pfad; Ausgaben landen in
|
||||
`%SKEL_RESULTS%`.
|
||||
|
||||
REM 1) Materialfluss der mechanischen Objekte
|
||||
bin\material_flow.bat --file mubea.csv --tosvg --doc
|
||||
```bat
|
||||
REM 1) Materialfluss der mechanischen Objekte
|
||||
bin\material_flow.bat --file mubea.csv --tosvg --doc
|
||||
|
||||
REM 2) TRO-Liste + eigenes Flussdiagramm ableiten
|
||||
bin\tro_flow.bat --file mubea.csv --tosvg --doc
|
||||
REM 2) TRO-Liste + eigenes Flussdiagramm ableiten
|
||||
bin\tro_flow.bat --file mubea.csv --tosvg --doc
|
||||
|
||||
REM 3) TROs als Marker-Symbole in eine Kopie der CAD-Zeichnung einbrennen
|
||||
bin\tro_annotate.bat --file mubea.csv --dxf 500573_60_1.dxf --flow --fb --legend
|
||||
REM 3) TROs als Marker-Symbole in eine Kopie der CAD-Zeichnung einbrennen
|
||||
bin\tro_annotate.bat --file mubea.csv --dxf 500573_60_1.dxf --flow --fb --legend
|
||||
```
|
||||
|
||||
Alle Switches, Ausgabedateien und Exit-Codes der drei Tools sind in
|
||||
[`doc/Python_Scripts.md`](doc/Python_Scripts.md) dokumentiert; das
|
||||
|
||||
Reference in New Issue
Block a user