Files
kabellaengen/doc/plant.py_docu.md
T

55 lines
2.2 KiB
Markdown

# Dokumentation der Funktionsweise einzelner Funktionen und Ausgaben aus `plant.py` bzw. `routing.py`
## Aufbau des Graphen in unterschiedlichen Ausbaustufen
Die nachfolgenden Bilder zeigen den schrittweisen Aufbau des Graphen aus dem System:
1. **Nur Racks**
![Graph nur mit Racks](img\plant.py\racks.png)
2. **Racks + Sensoren**
![Graph mit Racks und Sensoren](img\plant.py\racks_sensors.png)
3. **Racks + Sensoren + Unterverteiler**
![Kompletter Graph mit Racks, Sensoren und Unterverteilern](img\plant.py\racks_sensors_dists.png)
---
## Funktionsweise ausgewählter Funktionen
### Beispiel 1: `join_racks`
Problematik: Racks sind in dxf-Dateien teileweise nicht formschlüssig aneinander angefügt.
-> Echte Schnittpunkte sowie "beinahe" Schnittpunkte im Toleranzbereich müssen identifiziert werden und die Kabeltrassen dort verbunden werden.
Hierfür wird "Toleranz-Kreis" festgelegt, welcher das Rack entlangläuft:
![Step 1](img\join_racks\join_racks_1.png)
![Step 2](img\join_racks\join_racks_2.png)
Bei einem Schnittpunkt des Kreises mit einem anderen Rack, wird der Aufpunkt des gefunden Racks mit dem entlangzulaufenden Rack verbunden und ein Knoten an dieser Stelle erstellt:
![Step 3](img\join_racks\join_racks_3.png)
![Step 4](img\join_racks\join_racks_4.png)
### Beispiel 2: `connect_sensors_to_racks`
Problematik: Sensoren liegen nicht direkt auf Racks und haben keine Information, auf welchem Rack sie am besten angebunden werden.
-> Algorithmus sucht ausgeend von realem Sensor Punkt das nächstgelegene Rack und stelle die kürzeste Vebindung mittels einem "virtuellen Rack" her.
Situation: Horizontales (R1) und vetikales (R2) Rack. Sensor (S) nahe dem Kreuzungspunkt.
![Step 0](img\connect_sensors_to_racks\connect_sensors_to_racks_1.png)
Schritt 1: Zeichnen eines Kreises um den Sensor. Schnittpunkt mit Rack?
![Step 1](img\connect_sensors_to_racks\connect_sensors_to_racks_2.png)
Schritt 2: Wenn kein Schnittpunkt -> vergrößern des Kreises
![Step 2](img\connect_sensors_to_racks\connect_sensors_to_racks_3.png)
Schritt 3: Erzeugung des Aufpunktes auf geschnittenem Rack und verbinden des Aufpunktes mit dem Sensorpunkt via "virtuellem Rack" (vR1)
![Step 3](img\connect_sensors_to_racks\connect_sensors_to_racks_4.png)