Beispieldateien der Übersicht für alle Einfügepunkte und alle Koordinatensysteme in Doku dazu
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
+235
-1
@@ -1,3 +1,49 @@
|
||||
- [set\_einfuegepunkt](#set_einfuegepunkt)
|
||||
- [Aufruf](#aufruf)
|
||||
- [Datenquellen](#datenquellen)
|
||||
- [Ablauf](#ablauf)
|
||||
- [Schalter](#schalter)
|
||||
- [--boegen](#--boegen)
|
||||
- [--weichen45](#--weichen45)
|
||||
- [--weichen90](#--weichen90)
|
||||
- [--weichenkoerper](#--weichenkoerper)
|
||||
- [--weichen-parallel](#--weichen-parallel)
|
||||
- [--delta](#--delta)
|
||||
- [--dreifachweiche](#--dreifachweiche)
|
||||
- [--sternweiche](#--sternweiche)
|
||||
- [--number SIVASNR](#--number-sivasnr)
|
||||
- [--show-omniflo](#--show-omniflo)
|
||||
- [Abdeckung](#abdeckung)
|
||||
- [Uebersicht aller Schalter](#uebersicht-aller-schalter)
|
||||
- [Umgebungsvariablen](#umgebungsvariablen)
|
||||
- [set\_koords](#set_koords)
|
||||
- [Aufruf](#aufruf-1)
|
||||
- [Datenquellen](#datenquellen-1)
|
||||
- [Ablauf](#ablauf-1)
|
||||
- [Schalter](#schalter-1)
|
||||
- [--k1set](#--k1set)
|
||||
- [--k2set](#--k2set)
|
||||
- [--k3set](#--k3set)
|
||||
- [--k4set](#--k4set)
|
||||
- [--set-all](#--set-all)
|
||||
- [--force](#--force)
|
||||
- [--show-omniflo](#--show-omniflo-1)
|
||||
- [--test](#--test)
|
||||
- [--number SIVASNR](#--number-sivasnr-1)
|
||||
- [Uebersicht K-Zuordnung](#uebersicht-k-zuordnung)
|
||||
- [Umgebungsvariablen](#umgebungsvariablen-1)
|
||||
- [attradd](#attradd)
|
||||
- [Aufruf](#aufruf-2)
|
||||
- [Datenquellen](#datenquellen-2)
|
||||
- [Ablauf](#ablauf-2)
|
||||
- [Konfiguration (attradd.cfg)](#konfiguration-attraddcfg)
|
||||
- [Schalter](#schalter-2)
|
||||
- [--number SIVASNR / -n SIVASNR](#--number-sivasnr---n-sivasnr)
|
||||
- [--dry-run / -d](#--dry-run---d)
|
||||
- [Umgebungsvariablen](#umgebungsvariablen-2)
|
||||
|
||||
|
||||
|
||||
# set_einfuegepunkt
|
||||
|
||||
Setzt den Einfuegepunkt (`$INSBASE`) von Omniflo DXF-Dateien anhand geometrischer Kriterien.
|
||||
@@ -35,6 +81,9 @@ Alle Eintraege aus `omniflo_boegen.json` (27 Items, KurvenWinkel 22.5/45/67.5/90
|
||||
|
||||
**Kriterium:** Schnittpunkt der Tangenten am Anfangs- und Endpunkt der Bogenkurve. Bei 180-Grad-Boegen wird der Mittelpunkt zwischen Start und Ende verwendet.
|
||||
|
||||
Hier die Bögen:
|
||||
.
|
||||
|
||||
### --weichen45
|
||||
|
||||
Einzel-, Doppel- und Dreiwegeweichen mit KurvenWinkel 45 (32 Items).
|
||||
@@ -86,7 +135,10 @@ Optionaler Filter: nur die angegebene 9-stellige Sivasnr verarbeiten. Kombinierb
|
||||
Erzeugt eine Uebersichts-DXF (`results/omniflo_uebersicht.dxf`) mit allen Omniflo-Elementen. Die Elemente werden in Reihen nach Typ gruppiert angezeigt. Jedes Element erhaelt:
|
||||
- Den Dateinamen als Beschriftung oberhalb
|
||||
- Ein rotes Kreuz am Einfuegepunkt
|
||||
- Eine blaue Linie vom Einfuegepunkt zum tiefsten Punkt des Elements
|
||||
|
||||
Hier die Weichen
|
||||
.
|
||||
Hier die erzeugte [dxf Datei der Einfügepunkte als Beispiel](dxf/omniflo_uebersicht.dxf) des letzte Laufs
|
||||
|
||||
## Abdeckung
|
||||
|
||||
@@ -114,3 +166,185 @@ Werden durch `bin/setenv.bat` gesetzt:
|
||||
|---|---|
|
||||
| `DXFM_DATA` | Pfad zu `data/` (JSON + DXF Quelldateien) |
|
||||
| `DXFM_RESULTS` | Pfad zu `results/` (Ausgabe) |
|
||||
|
||||
---
|
||||
|
||||
# set_koords
|
||||
|
||||
Setzt Koordinatensystem-Bloecke (K1, K2, K3, K4) in Omniflo DXF-Dateien. Jeder Block enthaelt drei Linien vom Ursprung: rot (X-Achse, Laenge 1), gruen (Y-Achse, Laenge 2), blau (Z-Achse, Laenge 3).
|
||||
|
||||
## Aufruf
|
||||
|
||||
```
|
||||
python lib/set_koords.py [--schalter] [--number SIVASNR] [--force]
|
||||
```
|
||||
|
||||
## Datenquellen
|
||||
|
||||
| Pfad | Inhalt |
|
||||
|---|---|
|
||||
| `data/json/omniflo_boegen.json` | Liste aller Boegen mit Sivasnr, ProfilTyp etc. |
|
||||
| `data/json/omniflo_weichen.json` | Liste aller Weichen mit Sivasnr, ProfilTyp etc. |
|
||||
| `data/omniflo/*.dxf` / `results/*.dxf` | DXF-Quelldateien (bevorzugt aus results/, Fallback data/omniflo/) |
|
||||
|
||||
## Ablauf
|
||||
|
||||
1. JSON-Daten und SWITCH_FILTERS (aus utils.py) laden
|
||||
2. Fuer jede gefilterte Sivasnr die DXF-Datei laden
|
||||
3. Kx-Position geometrisch berechnen (abhaengig von Typ und Schalter)
|
||||
4. Block-Referenz mit korrekter Rotation einfuegen und DXF nach `results/` speichern
|
||||
|
||||
## Schalter
|
||||
|
||||
### --k1set
|
||||
|
||||
K1 an alle Boegen und Weichen setzen.
|
||||
|
||||
- **Boegen:** Beginn der obersten horizontalen Linie. x rechts, y oben, z aus Zeichenebene (rz=0).
|
||||
- **Weichen:** Beginn der untersten vertikalen Linie. x oben, y links, z aus Zeichenebene (rz=90).
|
||||
|
||||
### --k2set
|
||||
|
||||
K2 an alle Boegen und Weichen setzen (linker Bogenzweig). Nutzt dieselben SWITCH_FILTERS wie set_einfuegepkt.py.
|
||||
|
||||
- **Boegen:** Position am anderen Ende der Kette (Gerade-Bogen-Gerade). x tangential zur Linie, zur Bogenmitte zeigend. 180-Grad-Sonderfall: rz=0.
|
||||
- **Weichen (weichen45, weichen90, weichen_parallel):** Folgt dem Bogenzweig bis zum Ende. x tangential, bei Doppelweichen: linker Zweig.
|
||||
- **Weichenkoerper:** Ende der linken langen Diagonale.
|
||||
- **Dreifach-/Delta-/Sternweiche:** Linkes Ende der laengsten horizontalen Linie.
|
||||
|
||||
### --k3set
|
||||
|
||||
K3 an Weichen mit 2+ Boegen setzen (rechter Zweig). Gleiche Logik wie K2, aber rechter Ast (groesstes x). Nur bei: Doppelweichen, Dreiwegeweichen, Dreifachweiche, Delta, Stern, Weichenkoerper Doppel/Dreiwege.
|
||||
|
||||
### --k4set
|
||||
|
||||
K4 an Weichen setzen (oberes Ende der K1-Linie). Rotation wie K1 (rz=90). Kein K4 bei: Boegen, Doppelweiche, Dreifachweiche, Deltaweiche.
|
||||
|
||||
### --set-all
|
||||
|
||||
Alle Koordinatensysteme (K1-K4) in einem Durchgang setzen.
|
||||
|
||||
### --force
|
||||
|
||||
Bestehende Kx ueberschreiben (sonst skip wenn vorhanden). Duplikate werden immer bereinigt (letztes bleibt).
|
||||
|
||||
### --show-omniflo
|
||||
|
||||
Erzeugt eine Uebersichts-DXF (`results/koords_uebersicht.dxf`) mit allen Omniflo-Elementen und farbigen Kreuzen an den K-Positionen:
|
||||
|
||||
| Koordinatensystem | Farbe |
|
||||
|---|---|
|
||||
| K1 | rot |
|
||||
| K2 | orange |
|
||||
| K3 | gelb |
|
||||
| K4 | gruen |
|
||||
|
||||
So sehen in der Übersicht die Markierungen von K1 bis K4 aus:
|
||||
Hier eine Übersicht wie die gesamte Datei aussieht
|
||||

|
||||
|
||||
Hier die erzeugte [dxf Datei mit den Koordinatensystemen](dxf/koords_uebersicht.dxf) als Beispiel des letzte Laufs
|
||||
|
||||
|
||||
### --test
|
||||
|
||||
Erzeugt Testdatei (`results/ks_test.dxf`) mit 4 Koordinatensystemen und verifiziert das Ruecklesen.
|
||||
|
||||
### --number SIVASNR
|
||||
|
||||
Nur die angegebene 9-stellige Sivasnr verarbeiten. Kombinierbar mit jedem Schalter.
|
||||
|
||||
## Uebersicht K-Zuordnung
|
||||
|
||||
| K | Boegen | Weichen | Weichenkoerper | Dreifach/Delta/Stern |
|
||||
|---|---|---|---|---|
|
||||
| K1 | Oberste H-Linie (rz=0) | Unterste V-Linie (rz=90) | Unterste V-Linie (rz=90) | Unterste V-Linie (rz=90) |
|
||||
| K2 | Anderes Kettenende | Linker Bogenzweig | Linke Diagonale | Linkes H-Linienende |
|
||||
| K3 | - | Rechter Bogenzweig (2+ Boegen) | Rechte Diagonale (2+ Diag.) | Rechtes H-Linienende |
|
||||
| K4 | - | Oberes K1-Linienende | Oberes K1-Linienende | Sternweiche: ja |
|
||||
|
||||
## Umgebungsvariablen
|
||||
|
||||
| Variable | Verwendung |
|
||||
|---|---|
|
||||
| `DXFM_DATA` | Pfad zu `data/` (JSON + DXF Quelldateien) |
|
||||
| `DXFM_RESULTS` | Pfad zu `results/` (Ausgabe) |
|
||||
|
||||
---
|
||||
|
||||
# attradd
|
||||
|
||||
Fuegt Attribute (ATTDEF) zu allen Omniflo DXF-Dateien hinzu. Die Attribut-Tags und deren Werte werden ueber eine Konfigurationsdatei gesteuert.
|
||||
|
||||
## Aufruf
|
||||
|
||||
```
|
||||
python lib/attradd.py [--number SIVASNR] [--dry-run]
|
||||
```
|
||||
|
||||
## Datenquellen
|
||||
|
||||
| Pfad | Inhalt |
|
||||
|---|---|
|
||||
| `cfg/attradd.cfg` | Attribut-Konfiguration (Tags und Quellfelder je Elementtyp) |
|
||||
| `data/json/omniflo_boegen.json` | Liste aller Boegen mit Metadaten |
|
||||
| `data/json/omniflo_weichen.json` | Liste aller Weichen mit Metadaten |
|
||||
| `data/omniflo/*.dxf` | DXF-Quelldateien |
|
||||
|
||||
## Ablauf
|
||||
|
||||
1. Konfiguration aus `cfg/attradd.cfg` lesen
|
||||
2. JSON-Daten laden und Lookup-Tabelle (Sivasnr -> Typ + Eintrag) erstellen
|
||||
3. Fuer jede Sivasnr die DXF-Datei oeffnen, bestehende ATTDEFs entfernen
|
||||
4. Neue ATTDEFs gemaess Config einfuegen (Layer `ATTRIB`, unterhalb der Geometrie)
|
||||
5. Ergebnis nach `results/omniflo/` speichern
|
||||
|
||||
## Konfiguration (attradd.cfg)
|
||||
|
||||
Die Config-Datei ist im INI-Format mit Abschnitten je Elementtyp:
|
||||
|
||||
```ini
|
||||
[bogen]
|
||||
BESCHR = ProfilTyp
|
||||
ARTINR = Sivasnr
|
||||
TEILEART = "Omniflo Kurve"
|
||||
LAYER = "A-OF-Bogen"
|
||||
RADIUS = Radius
|
||||
WINKEL = KurvenWinkel
|
||||
SIVASNR_TEF = SivasnrTEF
|
||||
|
||||
[weiche]
|
||||
BESCHR = ProfilTyp
|
||||
ARTINR = Sivasnr
|
||||
TEILEART = "Omniflo Weiche"
|
||||
LAYER = "A-OF-Weiche"
|
||||
WEICHENTYP = WeichenTyp
|
||||
WINKEL = KurvenWinkel
|
||||
RADIUS = Breite
|
||||
SIVASNR_TEF = SivasnrTEF
|
||||
```
|
||||
|
||||
Quellwerte koennen sein:
|
||||
- **JSON-Feldname** (z.B. `ProfilTyp`) - Wert wird aus dem JSON-Eintrag gelesen
|
||||
- **Fester Text** in Anfuehrungszeichen (z.B. `"Omniflo Kurve"`)
|
||||
- **Platzhalter** `{sivasnr}` - wird durch die Sivasnr ersetzt
|
||||
|
||||
## Schalter
|
||||
|
||||
### --number SIVASNR / -n SIVASNR
|
||||
|
||||
Nur die angegebene Sivasnr verarbeiten.
|
||||
|
||||
### --dry-run / -d
|
||||
|
||||
Nur anzeigen welche Attribute gesetzt wuerden, ohne DXF-Dateien zu schreiben.
|
||||
|
||||
## Umgebungsvariablen
|
||||
|
||||
| Variable | Verwendung |
|
||||
|---|---|
|
||||
| `DXFM_DATA` | Pfad zu `data/` (JSON + DXF Quelldateien) |
|
||||
| `DXFM_CFG` | Pfad zu `cfg/` (attradd.cfg) |
|
||||
| `DXFM_RESULTS` | Pfad zu `results/` (Ausgabe nach `results/omniflo/`) |
|
||||
|
||||
Alle drei haben Fallback auf relative Pfade vom Projektverzeichnis.
|
||||
|
||||
Reference in New Issue
Block a user