111 lines
3.7 KiB
Markdown
111 lines
3.7 KiB
Markdown
# Kabeltool - Automatisierte Kabellängenermittlung
|
|
|
|
Automatisiertes Toolset zur Ermittlung von Kabellängen in industriellen Anlagenlayouts. Aus einer DXF-Zeichnung werden Gerätepositionen und Kabeltrassen extrahiert, optimale Kabelwege berechnet und Stücklisten mit SIVAS-Artikelnummern erzeugt.
|
|
|
|
## Workflows
|
|
|
|
| | Workflow | Skript | Beschreibung | Ausgabe |
|
|
|---|----------|--------|--------------|---------|
|
|
| <img src="doc/img/Icons/Icon_getex.png" width="64"> | **Cable Routing** | `getexdraw.bat` | Vollständige Kabelberechnung mit Wegführung und Stücklisten | `*_cables.dxf`, `*_cables.xlsx`, `*_BOM.xlsx` |
|
|
| <img src="doc/img/Icons/Icon_portal.png" width="64"> | **I/O Conversion** | `ioconverter.bat` | Export von Gerätelisten für TIA Portal, WSCAD u.a. | `*-TIA.xlsx`, `*-WSCAD.xlsx` |
|
|
| <img src="doc/img/Icons/dxf2txt.png" width="64"> | **Text Extraction** | `extract.bat` | Textextraktion aus DXF für Übersetzung | `*_texts.xlsx`, `*_texts.json` |
|
|
| <img src="doc/img/Icons/dxfCs.png" width="64"> | **Translation** | `tr2dxf_<lang>.bat` | Übersetzung von DXF-Texten (CS, EN, FR, IT, ES) | `*_<lang>.dxf` |
|
|
|
|
## Verwendung
|
|
|
|
DXF-Datei per **Drag & Drop** auf die Desktop-Verknüpfung ziehen (erstellt via `bin\dropItem_create.bat`) oder direkt aufrufen:
|
|
|
|
```bash
|
|
bin\getexdraw.bat <meine_anlage.dxf>
|
|
```
|
|
|
|
## Pipelines
|
|
|
|
### Cable Routing (`getexdraw.bat`)
|
|
|
|
```text
|
|
DXF-Datei
|
|
1. getpositions.py --> Positionen extrahieren --> *_positionsdraw.json
|
|
2. routing.py --> Kabelwege berechnen --> *_todraw.json
|
|
3. drawdxf.py --> DXF + Excel erzeugen --> *_cables.dxf, *_cables.xlsx, *_BOM.xlsx
|
|
```
|
|
|
|
### I/O Conversion (`ioconverter.bat`)
|
|
|
|
```text
|
|
DXF-Datei
|
|
1. getpositions.py --> Positionen extrahieren --> *_positionsconv.json
|
|
2. portalexport.py --> Excel-Export erzeugen --> *-TIA.xlsx, *-WSCAD.xlsx, *-EA.xlsx
|
|
```
|
|
|
|
### Text Extraction & Translation (`extract.bat` / `tr2dxf_<lang>.bat`)
|
|
|
|
```text
|
|
DXF-Datei
|
|
1. translate.py --extract --> Texte extrahieren --> *_texts.xlsx, *_texts.json
|
|
2. translate.py --translate --> Texte übersetzen --> *_<lang>.dxf
|
|
```
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
# Repository klonen
|
|
git clone http://gitea.schoenenberger.de/mistangl/kabellaengen.git
|
|
|
|
# Python-Abhängigkeiten installieren
|
|
bin\install_py.bat
|
|
|
|
# Desktop-Verknüpfungen erstellen
|
|
bin\dropItem_create.bat
|
|
```
|
|
|
|
**Voraussetzung**: Python 3.x (lokal installiert oder via `NETWORK_INTERPRETER_PATH` Umgebungsvariable).
|
|
|
|
## Konfiguration
|
|
|
|
Konfigurationsdateien in `cfg/` steuern das Verhalten:
|
|
|
|
| Datei | Zweck |
|
|
|-------|-------|
|
|
| `allgemein.cfg` | Layernamen, geometrische Toleranzen |
|
|
| `BMK.cfg` | Betriebsmittelkennzeichnung, Kabeltyp-Zuordnung, Routing-Regeln |
|
|
| `kabel.cfg` | SIVAS-Artikelnummern je Kabeltyp und Kabellänge |
|
|
| `bezeichner.cfg` | Artikelnummern-Bezeichner (automatisch aus SIVAS ergänzt) |
|
|
|
|
> **Hinweis**: Neuer BMK-Prefix muss in `BMK.cfg` unter `[Routing-Include]` **und** `[Cable-Mapping]` eingetragen werden. Die zugewiesene Kabel-Sektion muss in `kabel.cfg` existieren.
|
|
|
|
## Tests
|
|
|
|
```bash
|
|
# Alle Tests
|
|
bin\run_tests.bat
|
|
|
|
# Einzeltest
|
|
bin\run_test.bat easy
|
|
|
|
# Unit-Tests
|
|
bin\run_unittests.bat
|
|
```
|
|
|
|
## Projektstruktur
|
|
|
|
```text
|
|
bin/ Batch- und Shell-Skripte
|
|
cfg/ Konfigurationsdateien
|
|
lib/ Python-Module
|
|
work/ Arbeitsverzeichnis (Ausgabedateien)
|
|
testdata/ Test-DXF-Dateien und Referenzdaten
|
|
data/ SIVAS-Artikeldaten (CSV)
|
|
doc/ Dokumentation (Deutsch)
|
|
```
|
|
|
|
## Dokumentation
|
|
|
|
- [Anwenderdokumentation](doc/Anwenderdoku.md) - Vollständige Anleitung mit Fehlerbehandlung
|
|
- [Kurzanleitung / Fehlerfälle](doc/Anwenderdoku_kurz.md) - Kompakte Referenz
|
|
- [Übersetzungsworkflow](doc/translate.md) - Dokumentation zum Textextraktions- und Übersetzungssystem
|
|
|
|
## Lizenz
|
|
|
|
Intern - Schoenenberger
|