Files
kabellaengen/README.md
T
2026-06-18 11:46:56 +02:00

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