117 lines
4.2 KiB
Markdown
117 lines
4.2 KiB
Markdown
# set_einfuegepunkt
|
|
|
|
Setzt den Einfuegepunkt (`$INSBASE`) von Omniflo DXF-Dateien anhand geometrischer Kriterien.
|
|
|
|
## Aufruf
|
|
|
|
```
|
|
bin\set_einfuegepunkt.bat [--schalter] [--number SIVASNR]
|
|
```
|
|
|
|
Das Batch-Skript ruft `setenv.bat` auf und startet `lib/set_einfuegepkt.py` mit den uebergebenen Argumenten.
|
|
|
|
## Datenquellen
|
|
|
|
| Pfad | Inhalt |
|
|
|---|---|
|
|
| `data/json/omniflo_boegen.json` | Liste aller Boegen mit Sivasnr, ProfilTyp, Radius, KurvenWinkel etc. |
|
|
| `data/json/omniflo_weichen.json` | Liste aller Weichen mit Sivasnr, ProfilTyp, WeichenTyp, KurvenWinkel etc. |
|
|
| `data/omniflo/*.dxf` | Die DXF-Quelldateien (je Sivasnr eine Datei) |
|
|
|
|
Die JSON-Dateien liefern die IDs (Sivasnr) und Metadaten zur Filterung. Die DXF-Dateien enthalten die Geometrie (Linien, Boegen), aus der der Einfuegepunkt berechnet wird.
|
|
|
|
## Ablauf
|
|
|
|
1. JSON-Datei einlesen und nach Schalter-Kriterien filtern
|
|
2. Fuer jede gefilterte Sivasnr die DXF-Datei aus `data/omniflo/` laden
|
|
3. Einfuegepunkt gemaess Typ-Kriterium geometrisch berechnen
|
|
4. `$INSBASE` im DXF-Header setzen und Datei nach `results/` speichern
|
|
|
|
## Schalter
|
|
|
|
### --boegen
|
|
|
|
Alle Eintraege aus `omniflo_boegen.json` (27 Items, KurvenWinkel 22.5/45/67.5/90/180).
|
|
|
|
**Kriterium:** Schnittpunkt der Tangenten am Anfangs- und Endpunkt der Bogenkurve. Bei 180-Grad-Boegen wird der Mittelpunkt zwischen Start und Ende verwendet.
|
|
|
|
### --weichen45
|
|
|
|
Einzel-, Doppel- und Dreiwegeweichen mit KurvenWinkel 45 (32 Items).
|
|
|
|
**Kriterium:** Schnittpunkt der laengsten vertikalen Linie mit der Tangente am oberen Bogenpunkt. Bei mehreren Boegen wird der mit dem hoechsten Y-Wert gewaehlt.
|
|
|
|
### --weichen90
|
|
|
|
Einzel-, Doppel- und Dreiwegeweichen mit KurvenWinkel 90 (24 Items).
|
|
|
|
**Kriterium:** Wie `--weichen45`.
|
|
|
|
### --weichenkoerper
|
|
|
|
Alle Weichen mit KurvenWinkel 22.5 (8 Items: Einzel-/Doppel-/Dreiwegeweiche).
|
|
|
|
**Kriterium:** Schnittpunkt der laengsten Diagonale mit der laengsten vertikalen Linie (Konvergenzpunkt aller Linien).
|
|
|
|
### --weichen-parallel
|
|
|
|
Einzel-, Doppel- und Dreiwegeweichen mit KurvenWinkel 0, ohne Sternweiche (8 Items).
|
|
|
|
**Kriterium:** Wie `--weichenkoerper`.
|
|
|
|
### --delta
|
|
|
|
Deltaweichen (1 Item).
|
|
|
|
**Kriterium:** Mittelpunkt der laengsten horizontalen Linie.
|
|
|
|
### --dreifachweiche
|
|
|
|
Dreifachweichen (6 Items).
|
|
|
|
**Kriterium:** Mittelpunkt der laengsten horizontalen Linie.
|
|
|
|
### --sternweiche
|
|
|
|
Sternweiche (1 Item).
|
|
|
|
**Kriterium:** Zentrum, berechnet als Mittelpunkt der laengsten horizontalen Linie (entspricht dem Schnittpunkt der horizontalen und vertikalen Mittelachse).
|
|
|
|
### --number SIVASNR
|
|
|
|
Optionaler Filter: nur die angegebene 9-stellige Sivasnr verarbeiten. Kombinierbar mit jedem Typ-Schalter.
|
|
|
|
### --show-omniflo
|
|
|
|
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
|
|
|
|
## Abdeckung
|
|
|
|
Alle 107 Items (27 Boegen + 80 Weichen) sind exklusiv genau einem Schalter zugeordnet. Keine Ueberlappungen, keine Luecken.
|
|
|
|
## Uebersicht aller Schalter
|
|
|
|
| Schalter | Items | WeichenTyp | KurvenWinkel | Einfuegepunkt-Kriterium |
|
|
|---|---|---|---|---|
|
|
| `--boegen` | 27 | - | 22.5, 45, 67.5, 90, 180 | Tangentenschnittpunkt am Bogen (180: Mittelpunkt) |
|
|
| `--weichen45` | 32 | Einzel-, Doppel-, Dreiwegeweiche | 45 | Tangente oberer Bogenpunkt x laengste Vertikale |
|
|
| `--weichen90` | 24 | Einzel-, Doppel-, Dreiwegeweiche | 90 | Tangente oberer Bogenpunkt x laengste Vertikale |
|
|
| `--weichenkoerper` | 8 | Einzel-, Doppel-, Dreiwegeweiche | 22.5 | Laengste Diagonale x laengste Vertikale |
|
|
| `--weichen-parallel` | 8 | Einzel-, Doppel-, Dreiwegeweiche | 0 | Laengste Diagonale x laengste Vertikale |
|
|
| `--dreifachweiche` | 6 | Dreifachweiche | 90 | Mittelpunkt laengste Horizontale |
|
|
| `--delta` | 1 | Deltaweiche | 90 | Mittelpunkt laengste Horizontale |
|
|
| `--sternweiche` | 1 | Sternweiche | 0 | Zentrum (Mittelpunkt laengste Horizontale) |
|
|
| **Gesamt** | **107** | | | |
|
|
|
|
## Umgebungsvariablen
|
|
|
|
Werden durch `bin/setenv.bat` gesetzt:
|
|
|
|
| Variable | Verwendung |
|
|
|---|---|
|
|
| `DXFM_DATA` | Pfad zu `data/` (JSON + DXF Quelldateien) |
|
|
| `DXFM_RESULTS` | Pfad zu `results/` (Ausgabe) |
|