# 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. Die Übersetzungswerkzeuge ermöglichen den einfachen Transfer der .dxf Dateien in eine andere Sprache. ## Liste der vorhandenen Werkzeuge | | Workflow | Skript | Beschreibung | Ausgabe | |---|----------|--------|--------------|---------| | | **Cable Routing** | `getexdraw.bat` | Vollständige Kabelberechnung mit Wegführung und Stücklisten | `*_cables.dxf`, `*_cables.xlsx`, `*_BOM.xlsx` | | | **I/O Conversion** | `ioconverter.bat` | Export von Gerätelisten für TIA Portal, WSCAD u.a. | `*-TIA.xlsx`, `*-WSCAD.xlsx` | | | **Text Extraction** | `extract.bat` | Textextraktion aus DXF für Übersetzung | `*_texts.xlsx`, `*_texts.json` | | | **Translation** | `tr2dxf_.bat` | Übersetzung von DXF-Texten (CS, EN, FR, IT, ES) | `*_.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 ``` ## 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_.bat`) ```text DXF-Datei 1. translate.py --extract --> Texte extrahieren --> *_texts.xlsx, *_texts.json 2. translate.py --translate --> Texte übersetzen --> *_.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 - [I/O Converter](doc/Anwenderdoku_ioconverter.md) - EA-Listen und TIA-Portal/WSCAD-Export - [Übersetzungsworkflow](doc/translate.md) - Dokumentation zum Textextraktions- und Übersetzungssystem - [Symbole](doc/Symbole_und_Benennungen.md) - Beschreibung des Aufbaus und Attribute der zu verwendenden Symbole, damit die Erkennung funktioniert ## Lizenz Intern - Schoenenberger