diff --git a/doc/Anwenderdoku_kurz.md b/doc/Anwenderdoku_kurz.md
index c2ff829..521b254 100644
--- a/doc/Anwenderdoku_kurz.md
+++ b/doc/Anwenderdoku_kurz.md
@@ -42,30 +42,31 @@ Im auf dem Desktop erzeugten Ordner findet sich das eigentliche Programm *create
Die Ausgabe schreibt:
```text
-folgende Datei wurde uebergeben: Pfad\zu\meiner\dxfdatei.dxf
--- hole Positionen
-reading file ..done
+=== Fetching Positions ===
+Given .dxf-file is ASCII-dxf. Proceeding to use iterative functions. Process may take longer.
+
+Validating given configs: Checking for inconsistency.
+No Inconsistencies found. Continuing with routing process.
+
writing results to a json file ...
done
--- erzeuge Graph mit Routing
+
+=== Creating Graph for Routing ===
writing results to a json file ...
done
---zeichne Kabel in dxf Datei
-creating new .dxf ..
-done
-copying layers (Racks, Subdistributors, ...) from original .dxf into new .dxf ..
-done
-creating new .dxf ..
-done
-creating excel file with cable information ..
-done
-C:\10-Develop\kabellaengen\work\dxfdatei_cables.dxf
-C:\10-Develop\kabellaengen\work\dxfdatei_cables.xlsx
-C:\10-Develop\kabellaengen\work\dxfdatei_positions.json
-C:\10-Develop\kabellaengen\work\dxfdatei_reduziert.dxf
-C:\10-Develop\kabellaengen\work\dxfdatei_todraw.json
+
+=== Writing Output Files ===
+Cable-Routes exported to new dxf-file
+Cable-Summary exported to Excel-file
+BOM exported to Excel-file
+
+C:\10-Develop\kabellaengen\work\easy_BOM.xlsx
+C:\10-Develop\kabellaengen\work\easy_cables.dxf
+C:\10-Develop\kabellaengen\work\easy_cables.xlsx
+C:\10-Develop\kabellaengen\work\easy_positions.json
+C:\10-Develop\kabellaengen\work\easy_todraw.json
5 Datei(en) verschoben.
-Drücken sie eine beliebige Taste . . .
+Drücken Sie eine beliebige Taste . . .
```
Das Drücken einer beliebigen Taste beendet das Programm und die Ausgabe kann verwendet werden.
@@ -82,6 +83,7 @@ In den Ordner auf dem Desktop in dem das Kabeltool liegt werden nach Beendigung
|---------------------------|---------------------------------------------------------------------------------------------------|
| `dxfdatei_cables.dxf` | `.dxf`-Datei, **mit Kabelwegen** (z. B. für Import ins Original-Layout als eigenes Layer) und gezeichneten Racks (ggf. in 3D) |
| `dxfdatei_cables.xlsx` | **Excel-Datei** mit Kabellängen, Längenübersicht und Fehler-Übersicht |
+| `dxfdatei_BOM.xlsx` | **Excel-Datei** mit Gesamtstückliste und Unterverteiler-spezifisicher Stückliste |
| `dxfdatei_positions` | **Zwischendatei** (nicht für Endnutzer bestimmt) |
| `dxfdatei_todraw` | **Zwischendatei** (nicht für Endnutzer bestimmt) |
@@ -96,29 +98,34 @@ Die standardmäßig erstellte und abgelegte Ausgabedatei `dxfdatei_cables.xlsx`
**Length by ID**:
zeigt die Kabel-ID, die tatsächliche Länge des Kabels, die Kabel-Atikelnummer und zuletzt den zugeörigen (aber gekürzten Bezeicher) für das Kabel:
-> | Cable-ID | True Length (m) | Cable-ArtNr | Cable-Name (short) |
-> |-----------------|------------------|-------------|----------------------------------|
-> | UC0101-BG3241 | 2,9213 | 722001332 | M12 St-0°/ M12 Bu-90° 3m |
-> | UC0101-BG3240 | 7,1784 | 722001334 | M12 St-0°/ M12 Bu-90° 10m |
-> | UC0101-BG3270 | 15,4686 | 722001336 | M12 St-0°/ M12 Bu-90° 20m |
-> | UC0101-BG3260 | 27,4471 | 722001339 | M12 St-0°/ M12 Bu-90° 30m |
-> | UH01-MA0062 | 10,3015 | 725000015 | 4G1,5mm², Steuerleitung |
-
+| Cable-ID | True Length (m) | Cable-ArtNr | Cable-Name (short) |
+|-----------------|------------------|-------------|----------------------------------|
+| UC0101-BG3241 | 2,9213 | 722001332 | M12 St-0°/ M12 Bu-90° 3m |
+| UC0101-BG3240 | 7,1784 | 722001334 | M12 St-0°/ M12 Bu-90° 10m |
+| UC0101-BG3270 | 15,4686 | 722001336 | M12 St-0°/ M12 Bu-90° 20m |
+| UC0101-BG3260 | 27,4471 | 722001339 | M12 St-0°/ M12 Bu-90° 30m |
+| UH01-MA0062 | 10,3015 | 725000015 | 4G1,5mm², Steuerleitung |
**Cables SIVAS**:
zeigt die SIVAS-Nummer der Kabel und daneben die benötigte Anzahl an Kabeln in diesem Layout bzw. (für den Fall von Kabeln als Meterware, z.b. bei Motoren) die kummulierte benötigte Länge:
-> | Cable-ArtNr | Amount (pcs) | Cumm. Length (m) |
-> |-------------|--------------|------------------|
-> | 722001332 | 1 | |
-> | 722001334 | 1 | |
-> | 722001336 | 1 | |
-> | 722001339 | 1 | |
-> | 725000015 | | 11 |
+| Cable-ArtNr | Amount (pcs) | Cumm. Length (m) |
+|-------------|--------------|------------------|
+| 722001332 | 1 | |
+| 722001334 | 1 | |
+| 722001336 | 1 | |
+| 722001339 | 1 | |
+| 725000015 | | 11 |
-**Cables SIVAS**:
+**Rack-Lengths**:
zeigt die Längen der einzelnen Kabeltrassen-Segmente anhand deren Nummerierung innerhalb der dxf Datei. Diese Ausgabe dient der Überprüfung der benötigten Gesamtlänge der Kabeltrassen.
+| Rack-ID | Length (m) |
+|------------|------------|
+| Rack_1 | 6,5 |
+| Rack_2-1 | 3,5 |
+| Rack_2-2 | 15 |
+
#### Erweiterte Ausgabe im Fehlerfall:
Für den Fall, dass während des Programmablaufs Fehler auftreten bzw. Fehler im Layout erkannt werden, werden diese in weitere Worksheets geschrieben. Diese Worksheets tragen das Präfix *ERR*
@@ -145,7 +152,7 @@ Für den Fall, dass während des Programmablaufs Fehler auftreten bzw. Fehler im
Diese Datei enthält eine vollständige **Stückliste (BOM)** aller im Layout erkannten Komponenten – also sowohl aller Sensoren/Aktoren als auch der Kabel, die zum Einsatz kommen. Die Datei besteht aus zwei Tabellenblättern:
#### 1. BOM (Gesamtstückliste):
-Zeigt für jede verwendete Artikelnummer den Namen laut bezeichner.cfg, die Gesamtanzahl bzw. Gesamtlänge und unterscheidet dabei automatisch zwischen Sensoren und Kabeln.
+Zeigt für jede verwendete Artikelnummer den Namen laut bezeichner.cfg, die Gesamtanzahl bzw. Gesamtlänge. Sensoren (bzw. andere Komponenten mit Artikelnr) werden über ihre Artikelnummer gezählt. Kabel werden – sofern Meterware (z.B. Steuerleitungen für Motoren) – über die summierte Länge dargestellt, andernfalls über Stückzahl.
| Art.-Number | Amount (pcs) | Length (m) | Name (SIVAS) |
|-------------|--------------|------------|----------------------------------------|
@@ -153,7 +160,6 @@ Zeigt für jede verwendete Artikelnummer den Namen laut bezeichner.cfg, die Gesa
| 725000015 | | 24 | Steuerleitung MA, 4G1,5mm² |
| 839220147 | 5 | | Reflexionslichttaster XYZ |
-Sensoren (bzw. andere Komponenten mit Artikelnr) werden über ihre Artikelnummer gezählt. Kabel werden – sofern Meterware (z.B. Steuerleitungen für Motoren) – über die summierte Länge dargestellt, andernfalls über Stückzahl.
#### 2. BOM by UV (Stückliste pro Unterverteiler):
@@ -202,139 +208,50 @@ Nachfolgende Aufzählung zeigt zeigt den Aufbau und Zweck der `.cfg`-Dateien fü
- Beschreibung der Funktion
- Beispielhafte Einträge
+
### allgemein.cfg
Diese Datei steuert das Einlesen von Layern und definiert geometrische Toleranzen.
-#### `[GetPos-Layer_Racks]`
-**Was?** Layernamen, in denen Kabelpritschen (Racks) enthalten sind.
-
-| Layername (Beispiel) |
-|----------------------------------------|
-| PRITSCHE_200-60_OMNIFLO |
-| 0-0_ILS_Pritsche_200-60_Inbound |
-| 0-0_Omniflo_Pritsche_200-60_AMR |
-
-#### `[GetPos-Layer_Distributors]`
-**Was?** Layernamen, die Unterverteiler beinhalten.
-
-| Layername (Beispiel) |
-|----------------------------------|
-| 0-0_ILS_UNTERVERTEILER |
-| UNTERVERTEILER |
-
-#### `[GetPos-Layer_Tunnel]`
-**Was?** Layernamen für Tunnel.
-
-| Layername (Beispiel) |
-|-----------------------------|
-| Busverteiler-Kennzeichnung |
-
-#### `[GetPos-Layer_Equipment]`
-**Was?** Layernamen von Sensoren, Motoren, IOs etc.
-
-| Layername (Beispiel) |
-|------------------------------|
-| 0-0_ILS_MOTOR |
-| MOTOR |
-| REALE_POSITION_IO |
-
-#### `[GetPos-Geom-Sensor]`
-**Was?** Geometrische Maße von Sensor-Markern zur Mittelpunktsberechnung.
-
-| Attribut | Wert (Beispiel) |
-|----------|-----------------|
-| Breite | 80 |
-| Hoehe | 90 |
-
-#### `[Racks]`
-**Was?** Maximale Distanz (Toleranz) zwischen benachbarten Racks zum "Snappen".
-
-| Attribut | Wert (Beispiel) |
-|------------------|-----------------|
-| SnapTolerances | 200 |
-
-#### `[Sensoren]`
-**Was?** Maximale Distanz zwischen Sensoren/Motoren und Racks für Verknüpfung.
-
-| Attribut | Wert (Beispiel) |
-|----------------------|-----------------|
-| ConnectionTolerances | 3000 |
+| Abschnitt | Beschreibung | Beispiel(e) |
+|---------------------------|------------------------------------------------------------|----------------------------------------------------|
+| `[GetPos-Layer_Racks]` | Layer mit Kabelpritschen (Racks) | PRITSCHE_200-60_OMNIFLO
0-0_ILS_Pritsche_200-60 |
+| `[GetPos-Layer_Distributors]` | Layer mit Unterverteilern | 0-0_ILS_UNTERVERTEILER
UNTERVERTEILER |
+| `[GetPos-Layer_Tunnel]` | Layer für Tunnel | Busverteiler-Kennzeichnung |
+| `[GetPos-Layer_Equipment]`| Layer mit Sensoren, Motoren, IOs etc. | 0-0_ILS_MOTOR
MOTOR
REALE_POSITION_IO |
+| `[GetPos-Geom-Sensor]` | Maße von Sensor-Markern zur Mittelpunktberechnung | Breite = 80
Höhe = 90 |
+| `[Racks]` | Snap-Toleranz zwischen benachbarten Racks | SnapTolerances = 200 |
+| `[Sensoren]` | Verbindungstoleranz Sensoren ↔ Racks | ConnectionTolerances = 3000 |
### BMK.cfg
Diese Datei steuert, **welche Betriebsmittelkennzeichen (BMK)** beim Routing berücksichtigt werden und welche **Kabeltypen** zugewiesen sind.
-#### `[Routing-Include]`
-**Was?** BMK-Kürzel, die beim Routing **berücksichtigt** werden.
-
-| Kürzel | Bedeutung / Beispiel |
-|--------|----------------------|
-| MA | Motoren |
-| QM | Ventile |
-| BX | Scanner |
-
-#### `[Routing-Ignore]`
-**Was?** BMKs, die ignoriert werden (z.B. Schaltschrank-Innenleben).
-
-| Kürzel | Beispielkomponente |
-|--------|----------------------------|
-| FC | Frequenzumrichter |
-| QA | Sicherungen / Schütze |
-
-#### `[Cable-Mapping]`
-**Was?** Verknüpfung von BMKs zu Kabelgruppen (aus `kabel.cfg`).
-
-| BMK | Zugewiesene Kabelgruppe(n) |
-|-------------|--------------------------------|
-| MA | MA |
-| MB | WD_Q |
-| BX | WF_B, WD_I |
-| BG-829422026| WD_I-829422026 |
-
-#### `[Length-Adjustments]`
-**Was?** Korrektur von Kabellängen (z.B. vorkonfektionierte Sensorleitungen).
-
-| BMK | Abzuziehende Länge (m) |
-|-----|------------------------|
-| BX | 4 |
+| Abschnitt | Beschreibung | Beispiel(e) |
+|----------------------|------------------------------------------------------|--------------------------------------------------|
+| `[Routing-Include]` | BMKs, die beim Routing berücksichtigt werden | MA = Motoren
QM = Ventile
BX = Scanner |
+| `[Routing-Ignore]` | BMKs, die ignoriert werden | FC = Frequenzumrichter
QA = Sicherungen |
+| `[Cable-Mapping]` | Zuordnung BMK → Kabelgruppe(n) (aus `kabel.cfg`) | MA → MA
MB → WD_Q
BX → WF_B, WD_I |
+| `[Length-Adjustments]`| Kabellängen-Korrektur (z. B. vorkonf. Sensorleitung) | BX → 4 m abziehen |
### kabel.cfg
-Diese Datei enthält die **SIVAS-Nummern je Kabellänge und -typ**, sowie die **Bezeichnungen** der SIVAS-Nummern.
+Diese Datei enthält die **SIVAS-Nummern je Kabellänge und -typ** sowie einen Abschnitt für **spezifische Kabelgruppen**
-#### Kabelgruppen (Beispiel: `[WD_Q]`, `[WD_I]`, `[WF_B]`)
-**Was?** Zuordnung von Kabellängen zu SIVAS-Sachnummern.
+| Abschnitt / Gruppe | Beschreibung | Beispiel(e) |
+|----------------------------|-----------------------------------------------|---------------------------------------------------|
+| `[WD_Q]`, `[WD_I]`, `[WF_B]` | Kabellängen je Gruppe + zugehörige SIVAS-Nr. | 1.0 m → 722001300
2.5 m → 722001338
5.0 m → 726001045 |
+| sensorspezifische Gruppen:
`[WD_I-829422026]`
`[WD_I-720002003]` | Kabellisten für bestimmte Artikelnummern |
5.0 m → 722001353
10.0 m → 722001354 |
-| Länge (m) | SIVAS-Nr. | Beispielgruppe |
-|-----------|------------|----------------|
-| 1.0 | 722001300 | WD_Q (Ventile) |
-| 2.5 | 722001338 | WD_I (Sensoren)|
-| 5.0 | 726001045 | WF_B (Scanner) |
-
-#### Sensorspezifische Gruppen
-**Was?** Besondere Kabellisten für spezifische Sensor-Artikelnummern.
-
-| Gruppe | Länge (m) | SIVAS-Nr. |
-|---------------------|-----------|-------------|
-| WD_I-829422026 | 5.0 | 722001353 |
-| WD_I-720002003 | 10.0 | 722001354 |
### bezeichner.cfg
Diese Datei enthält Bezeichner zu den verwendeten SIVAS-Artikelnummern. Sie beinhaltet sowohl die Bezeichner (laut SIVAS) für die Bauteil-Artikelnummern als auch für die Kabel. Die Datei wird im Laufe eines Routing-Prozesses bei Bedarf angepasst und mittels einer SIVAS-Datenbankabfage (bei bestehender VPN-Verbindung bzw. im lokalen Firmennetz am Standort) erweitert.
-#### `[Sivasnummern]`
-Enthält die bekannten SIVAS-Artikelnummern mit zugehörigen Bezeichnern, z.B.:
-
-| Sivasnummer | Bezeichner |
-|-------------|-------------------------------------------------|
-| 725000015 | 4G1,5mm², Steuerleitung |
-| 722001300 | Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 1m |
-| 722001301 | Verb.-Leitung M12 St-0°/ M8 Bu-0° PUR UL/CSA 2m |
-
-#### `[Missing]`
-Fehlende Nummern, die im Layout verwendet wurden, aber noch keinen Bezeichner besitzen. Diese werden automatisch per SIVAS-Datenbank ergänzt (sofern erreichbar). Hierzu wird im Kommandofeld eine entsprechende Benachrichtigung angezeigt.
+| Abschnitt | Beschreibung | Beispiel(e) |
+|-------------------|----------------------------------------------------------------|--------------------------------------------------|
+| `[Sivasnummern]` | Bekannte SIVAS-Nr. mit
zugehörigem Bezeichner | 725000015 → 4G1,5mm² Steuerleitung
722001300 → Verb.-Leitung M12 St/M8 Bu 1 m |
+| `[Missing]` | Fehlende Nummern, die im Layout vorkommen, aber unbenannt sind | Automatisch ergänzt bei VPN/SIVAS-Datenbankzugriff |
## Validierung der Konfigurationsdateien
diff --git a/doc/Anwenderdoku_kurz.pdf b/doc/Anwenderdoku_kurz.pdf
index 325c5b1..7ae7bef 100644
Binary files a/doc/Anwenderdoku_kurz.pdf and b/doc/Anwenderdoku_kurz.pdf differ