Merge branch 'master' of https://gitea.schoenenberger.de/Schoenenberger_Systeme_GmbH/dxfmakros
This commit is contained in:
+76
-5
@@ -11,6 +11,7 @@
|
|||||||
;; Datei-/Skriptnamen sind fest im Code hinterlegt (*export-filenames*).
|
;; Datei-/Skriptnamen sind fest im Code hinterlegt (*export-filenames*).
|
||||||
;; ============================================================
|
;; ============================================================
|
||||||
|
|
||||||
|
(vl-load-com)
|
||||||
|
|
||||||
;; --- Export-Konfiguration aus cfg/export.cfg laden ---
|
;; --- Export-Konfiguration aus cfg/export.cfg laden ---
|
||||||
;; Nutzt den zentralen INI-Parser aus ssg_core.lsp (ssg-load-ini / ssg-ini-get /
|
;; Nutzt den zentralen INI-Parser aus ssg_core.lsp (ssg-load-ini / ssg-ini-get /
|
||||||
@@ -78,6 +79,47 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
;; --- Safearray/Variant-Rueckgabe von vla-getboundingbox in Liste wandeln ---
|
||||||
|
;; BricsCAD liefert ein Safearray, AutoCAD ein Variant mit Safearray.
|
||||||
|
(defun csv:pt->list (v)
|
||||||
|
(cond
|
||||||
|
((= (type v) 'variant) (vlax-safearray->list (vlax-variant-value v)))
|
||||||
|
((= (type v) 'safearray) (vlax-safearray->list v))
|
||||||
|
((listp v) v)
|
||||||
|
(t nil)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
;; --- Bounding-Box (WCS, achsparallel) eines INSERT-Blocks ermitteln ---
|
||||||
|
;; Erzwingt vorher ein vla-update (Regen), da vla-getboundingbox sonst auf
|
||||||
|
;; nicht-regenerierten oder auf eingefrorenen Layern liegenden Bloecken scheitert.
|
||||||
|
;; Rueckgabe: Liste (cx cy cz dx dy dz) -- Mittelpunkt + Ausdehnung, oder nil bei Fehler.
|
||||||
|
(defun csv:get-bbox (ename / obj res minpt maxpt)
|
||||||
|
(setq obj (vlax-ename->vla-object ename))
|
||||||
|
(vl-catch-all-apply 'vla-update (list obj))
|
||||||
|
(setq res
|
||||||
|
(vl-catch-all-apply
|
||||||
|
'(lambda ( / ll ur)
|
||||||
|
(vla-getboundingbox obj 'll 'ur)
|
||||||
|
(list (csv:pt->list ll) (csv:pt->list ur)))))
|
||||||
|
(if (vl-catch-all-error-p res)
|
||||||
|
nil
|
||||||
|
(progn
|
||||||
|
(setq minpt (car res))
|
||||||
|
(setq maxpt (cadr res))
|
||||||
|
(list
|
||||||
|
(/ (+ (car minpt) (car maxpt)) 2.0)
|
||||||
|
(/ (+ (cadr minpt) (cadr maxpt)) 2.0)
|
||||||
|
(/ (+ (caddr minpt) (caddr maxpt)) 2.0)
|
||||||
|
(- (car maxpt) (car minpt))
|
||||||
|
(- (cadr maxpt) (cadr minpt))
|
||||||
|
(- (caddr maxpt) (caddr minpt))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
;; --- Attribute eines INSERT-Blocks als JSON-Objekt lesen ---
|
;; --- Attribute eines INSERT-Blocks als JSON-Objekt lesen ---
|
||||||
;; ename = Entity-Name des INSERT
|
;; ename = Entity-Name des INSERT
|
||||||
;; Rueckgabe: String wie {"TAG1":"Wert1","TAG2":"Wert2"}
|
;; Rueckgabe: String wie {"TAG1":"Wert1","TAG2":"Wert2"}
|
||||||
@@ -111,7 +153,9 @@
|
|||||||
|
|
||||||
|
|
||||||
;; --- Einen INSERT-Block als JSON-Objekt schreiben ---
|
;; --- Einen INSERT-Block als JSON-Objekt schreiben ---
|
||||||
(defun csv:block-to-json (ename / ed blk-name layer pt rotation handle attribs)
|
;; include-bbox = T -> zusaetzlich Bounding-Box (Mitte + Ausdehnung) ermitteln
|
||||||
|
;; und als "bbox"-Objekt anhaengen (nur fuer EXPORTCSV, nicht fuer EXPORTSIVAS).
|
||||||
|
(defun csv:block-to-json (ename include-bbox / ed blk-name layer pt rotation handle attribs bbox bbox-json)
|
||||||
(setq ed (entget ename))
|
(setq ed (entget ename))
|
||||||
(setq blk-name (cdr (assoc 2 ed)))
|
(setq blk-name (cdr (assoc 2 ed)))
|
||||||
(setq layer (cdr (assoc 8 ed)))
|
(setq layer (cdr (assoc 8 ed)))
|
||||||
@@ -120,6 +164,26 @@
|
|||||||
(setq handle (cdr (assoc 5 ed)))
|
(setq handle (cdr (assoc 5 ed)))
|
||||||
(if (null rotation) (setq rotation 0.0))
|
(if (null rotation) (setq rotation 0.0))
|
||||||
(setq attribs (csv:read-attribs ename))
|
(setq attribs (csv:read-attribs ename))
|
||||||
|
(setq bbox-json "")
|
||||||
|
(if include-bbox
|
||||||
|
(progn
|
||||||
|
(setq bbox (csv:get-bbox ename))
|
||||||
|
(if bbox
|
||||||
|
(setq bbox-json
|
||||||
|
(strcat
|
||||||
|
",\"bbox\":{"
|
||||||
|
"\"cx\":" (rtos (nth 0 bbox) 2 4)
|
||||||
|
",\"cy\":" (rtos (nth 1 bbox) 2 4)
|
||||||
|
",\"cz\":" (rtos (nth 2 bbox) 2 4)
|
||||||
|
",\"dx\":" (rtos (nth 3 bbox) 2 4)
|
||||||
|
",\"dy\":" (rtos (nth 4 bbox) 2 4)
|
||||||
|
",\"dz\":" (rtos (nth 5 bbox) 2 4)
|
||||||
|
"}"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
(strcat
|
(strcat
|
||||||
" {\"block_name\":\"" (csv:json-escape blk-name) "\""
|
" {\"block_name\":\"" (csv:json-escape blk-name) "\""
|
||||||
",\"layer\":\"" (csv:json-escape layer) "\""
|
",\"layer\":\"" (csv:json-escape layer) "\""
|
||||||
@@ -129,6 +193,7 @@
|
|||||||
",\"z\":" (rtos (if (caddr pt) (caddr pt) 0.0) 2 4)
|
",\"z\":" (rtos (if (caddr pt) (caddr pt) 0.0) 2 4)
|
||||||
",\"rotation\":" (rtos (* (/ rotation pi) 180.0) 2 4)
|
",\"rotation\":" (rtos (* (/ rotation pi) 180.0) 2 4)
|
||||||
",\"attribs\":" attribs
|
",\"attribs\":" attribs
|
||||||
|
bbox-json
|
||||||
"}"
|
"}"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -203,7 +268,9 @@
|
|||||||
;; label = Anzeigename (z.B. "EXPORTCSV")
|
;; label = Anzeigename (z.B. "EXPORTCSV")
|
||||||
;; py-name = Python-Skript-Name (z.B. "export_csv.py")
|
;; py-name = Python-Skript-Name (z.B. "export_csv.py")
|
||||||
;; csv-name = Ergebnis-CSV-Name (z.B. "export.csv")
|
;; csv-name = Ergebnis-CSV-Name (z.B. "export.csv")
|
||||||
(defun csv:run-export (label py-name csv-name / ss i ename fh out-pfad
|
;; include-bbox = T -> Bounding-Box je Block ermitteln und mit exportieren
|
||||||
|
;; (siehe csv:block-to-json); fuer EXPORTSIVAS nil.
|
||||||
|
(defun csv:run-export (label py-name csv-name include-bbox / ss i ename fh out-pfad
|
||||||
py-skript ergebnis-pfad cmd first-block count out-dir)
|
py-skript ergebnis-pfad cmd first-block count out-dir)
|
||||||
;; Vor dem Export: IDs aller Bloecke sicherstellen und Duplikate korrigieren
|
;; Vor dem Export: IDs aller Bloecke sicherstellen und Duplikate korrigieren
|
||||||
(princ (ssg-textf "exp-check-ids" (list label)))
|
(princ (ssg-textf "exp-check-ids" (list label)))
|
||||||
@@ -254,7 +321,7 @@
|
|||||||
(if (not first-block)
|
(if (not first-block)
|
||||||
(write-line "," fh)
|
(write-line "," fh)
|
||||||
)
|
)
|
||||||
(write-line (csv:block-to-json ename) fh)
|
(write-line (csv:block-to-json ename include-bbox) fh)
|
||||||
(setq first-block nil)
|
(setq first-block nil)
|
||||||
(setq i (1+ i))
|
(setq i (1+ i))
|
||||||
)
|
)
|
||||||
@@ -289,14 +356,18 @@
|
|||||||
(defun c:EXPORTSIVAS ()
|
(defun c:EXPORTSIVAS ()
|
||||||
(csv:run-export "EXPORTSIVAS"
|
(csv:run-export "EXPORTSIVAS"
|
||||||
(export:filename "sivas_script")
|
(export:filename "sivas_script")
|
||||||
(export:filename "sivas_csv"))
|
(export:filename "sivas_csv")
|
||||||
|
nil)
|
||||||
)
|
)
|
||||||
|
|
||||||
;; --- EXPORTCSV: Einfache Item-Liste aller Bloecke (ohne Summierung) ---
|
;; --- EXPORTCSV: Einfache Item-Liste aller Bloecke (ohne Summierung) ---
|
||||||
|
;; Ermittelt zusaetzlich je Block eine Bounding-Box (siehe csv:get-bbox),
|
||||||
|
;; die im Python-Skript als Position/Boundingbox-Spalten ausgegeben wird.
|
||||||
(defun c:EXPORTCSV ()
|
(defun c:EXPORTCSV ()
|
||||||
(csv:run-export "EXPORTCSV"
|
(csv:run-export "EXPORTCSV"
|
||||||
(export:filename "csv_script")
|
(export:filename "csv_script")
|
||||||
(export:filename "csv_csv"))
|
(export:filename "csv_csv")
|
||||||
|
T)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+86
-5
@@ -1,14 +1,19 @@
|
|||||||
@echo off
|
@echo off
|
||||||
|
setlocal EnableDelayedExpansion
|
||||||
REM ================================================================
|
REM ================================================================
|
||||||
REM run_tests.bat - Testausfuehrung fuer SSG_LIB
|
REM run_tests.bat - Testausfuehrung fuer SSG_LIB
|
||||||
REM
|
REM
|
||||||
REM Schalter:
|
REM Schalter:
|
||||||
REM --check Fuehrt pytest-Validierung aus
|
REM --check Fuehrt pytest-Validierung aus
|
||||||
REM (ohne) Zeigt Hilfe an
|
REM --diff_references Vergleicht CSVs in tests\reference und tests\output,
|
||||||
|
REM ruft bei Unterschieden das Diff-Tool (meld) auf
|
||||||
|
REM (ohne) Zeigt Hilfe an
|
||||||
REM
|
REM
|
||||||
REM Beispiele:
|
REM Beispiele:
|
||||||
REM bin\run_tests.bat --check
|
REM bin\run_tests.bat --check
|
||||||
REM bin\run_tests.bat --check test_kreisel.py
|
REM bin\run_tests.bat --check test_kreisel.py
|
||||||
|
REM bin\run_tests.bat --diff_references
|
||||||
|
REM bin\run_tests.bat --diff_references kreisel_tests_export.csv
|
||||||
REM ================================================================
|
REM ================================================================
|
||||||
|
|
||||||
REM Umgebung setzen
|
REM Umgebung setzen
|
||||||
@@ -23,6 +28,8 @@ if exist "%DXFMAKRO%\.venv\Scripts\activate.bat" (
|
|||||||
|
|
||||||
set DO_CHECK=0
|
set DO_CHECK=0
|
||||||
set CHECK_ARG=
|
set CHECK_ARG=
|
||||||
|
set DO_DIFF=0
|
||||||
|
set DIFF_ARG=
|
||||||
|
|
||||||
REM Argumente parsen
|
REM Argumente parsen
|
||||||
:parse_args
|
:parse_args
|
||||||
@@ -36,11 +43,20 @@ if "%~1"=="--check" (
|
|||||||
shift
|
shift
|
||||||
goto :parse_args
|
goto :parse_args
|
||||||
)
|
)
|
||||||
|
if "%~1"=="--diff_references" (
|
||||||
|
set DO_DIFF=1
|
||||||
|
if not "%~2"=="" (
|
||||||
|
set "DIFF_ARG=%~2"
|
||||||
|
shift
|
||||||
|
)
|
||||||
|
shift
|
||||||
|
goto :parse_args
|
||||||
|
)
|
||||||
echo Unbekannter Schalter: %~1
|
echo Unbekannter Schalter: %~1
|
||||||
goto :show_help
|
goto :show_help
|
||||||
|
|
||||||
:after_args
|
:after_args
|
||||||
if %DO_CHECK%==0 goto :show_help
|
if %DO_CHECK%==0 if %DO_DIFF%==0 goto :show_help
|
||||||
|
|
||||||
REM ================================================================
|
REM ================================================================
|
||||||
REM --check: pytest-Validierung
|
REM --check: pytest-Validierung
|
||||||
@@ -79,18 +95,83 @@ if %DO_CHECK%==1 (
|
|||||||
echo ================================================================
|
echo ================================================================
|
||||||
)
|
)
|
||||||
|
|
||||||
|
REM ================================================================
|
||||||
|
REM --diff_references: CSV-Referenzvergleich
|
||||||
|
REM ================================================================
|
||||||
|
if %DO_DIFF%==1 (
|
||||||
|
echo.
|
||||||
|
echo ================================================================
|
||||||
|
echo REFERENZVERGLEICH ^(--diff_references^)
|
||||||
|
echo ================================================================
|
||||||
|
|
||||||
|
if not defined DXFM_DIFFTOOL (
|
||||||
|
echo.
|
||||||
|
echo FEHLER: Kein Diff-Tool ^(meld^) gefunden - siehe setenv.bat.
|
||||||
|
echo meld installieren: https://meldmerge.org
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
set DIFF_COUNT=0
|
||||||
|
|
||||||
|
if not "%DIFF_ARG%"=="" (
|
||||||
|
if not exist "%DXFM_TESTREF%\%DIFF_ARG%" (
|
||||||
|
echo FEHLER: Referenzdatei nicht gefunden: %DXFM_TESTREF%\%DIFF_ARG%
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
call :diff_one "%DXFM_TESTREF%\%DIFF_ARG%"
|
||||||
|
) else (
|
||||||
|
for %%F in ("%DXFM_TESTREF%\*.csv") do call :diff_one "%%F"
|
||||||
|
)
|
||||||
|
|
||||||
|
echo.
|
||||||
|
if !DIFF_COUNT!==0 (
|
||||||
|
echo ================================================================
|
||||||
|
echo ERGEBNIS: KEINE UNTERSCHIEDE GEFUNDEN
|
||||||
|
echo ================================================================
|
||||||
|
) else (
|
||||||
|
echo ================================================================
|
||||||
|
echo ERGEBNIS: !DIFF_COUNT! DATEI^(EN^) MIT UNTERSCHIEDEN
|
||||||
|
echo ================================================================
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
exit /b 0
|
exit /b 0
|
||||||
|
|
||||||
|
REM ----------------------------------------------------------------
|
||||||
|
REM :diff_one <referenzdatei>
|
||||||
|
REM Vergleicht eine Referenzdatei mit der gleichnamigen Output-Datei
|
||||||
|
REM und ruft bei Unterschieden das Diff-Tool auf.
|
||||||
|
REM ----------------------------------------------------------------
|
||||||
|
:diff_one
|
||||||
|
set "REF_FILE=%~1"
|
||||||
|
set "OUT_FILE=%DXFM_TESTOUT%\%~nx1"
|
||||||
|
if not exist "%OUT_FILE%" (
|
||||||
|
echo WARNUNG: Keine Output-Datei fuer %~nx1 gefunden - uebersprungen.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
fc "%REF_FILE%" "%OUT_FILE%" >nul 2>nul
|
||||||
|
if errorlevel 1 (
|
||||||
|
set /a DIFF_COUNT+=1
|
||||||
|
echo Unterschied: %~nx1
|
||||||
|
"%DXFM_DIFFTOOL%" "%REF_FILE%" "%OUT_FILE%"
|
||||||
|
)
|
||||||
|
goto :eof
|
||||||
|
|
||||||
:show_help
|
:show_help
|
||||||
echo.
|
echo.
|
||||||
echo Aufruf: bin\run_tests.bat --check [testdatei]
|
echo Aufruf: bin\run_tests.bat --check [testdatei]
|
||||||
|
echo bin\run_tests.bat --diff_references [csv-datei]
|
||||||
echo.
|
echo.
|
||||||
echo Schalter:
|
echo Schalter:
|
||||||
echo --check Fuehrt pytest-Validierung fuer alle Module aus
|
echo --check Fuehrt pytest-Validierung fuer alle Module aus
|
||||||
echo --check test_kreisel.py Validiert nur Kreisel-Tests
|
echo --check test_kreisel.py Validiert nur Kreisel-Tests
|
||||||
|
echo --diff_references Vergleicht alle CSVs in tests\reference/output,
|
||||||
|
echo ruft bei Unterschieden meld auf
|
||||||
|
echo --diff_references datei.csv Vergleicht nur die angegebene CSV-Datei
|
||||||
echo.
|
echo.
|
||||||
echo Workflow:
|
echo Workflow:
|
||||||
echo 1. In BricsCAD: SSG_RUN_ALL_TESTS ausfuehren
|
echo 1. In BricsCAD: SSG_RUN_ALL_TESTS ausfuehren
|
||||||
echo 2. bin\run_tests.bat --check
|
echo 2. bin\run_tests.bat --check
|
||||||
|
echo 3. bin\run_tests.bat --diff_references
|
||||||
echo.
|
echo.
|
||||||
exit /b 1
|
exit /b 1
|
||||||
|
|||||||
@@ -41,6 +41,18 @@ if exist "C:\Program Files\Bricsys\BricsCAD V25 de_DE\bricscad.exe" (
|
|||||||
echo Keine BricsCAD-Installation gefunden.
|
echo Keine BricsCAD-Installation gefunden.
|
||||||
)
|
)
|
||||||
|
|
||||||
|
REM Diff-Tool fuer Referenzvergleich (run_tests.bat --diff_references) ermitteln
|
||||||
|
set "DXFM_DIFFTOOL="
|
||||||
|
for /f "delims=" %%D in ('where meld 2^>nul') do (
|
||||||
|
if not defined DXFM_DIFFTOOL set "DXFM_DIFFTOOL=%%D"
|
||||||
|
)
|
||||||
|
if not defined DXFM_DIFFTOOL (
|
||||||
|
if exist "C:\Program Files\Meld\Meld.exe" set "DXFM_DIFFTOOL=C:\Program Files\Meld\Meld.exe"
|
||||||
|
)
|
||||||
|
if not defined DXFM_DIFFTOOL (
|
||||||
|
echo HINWEIS: Kein Diff-Tool ^(meld^) gefunden - run_tests.bat --diff_references steht nicht zur Verfuegung.
|
||||||
|
)
|
||||||
|
|
||||||
REM Ueberladen von Umgebungsvariablen durch _setenv.bat (z.B. DXFM_DIM=3D)
|
REM Ueberladen von Umgebungsvariablen durch _setenv.bat (z.B. DXFM_DIM=3D)
|
||||||
if exist "%~dp0_setenv.bat" (
|
if exist "%~dp0_setenv.bat" (
|
||||||
echo Lade lokale Umgebungseinstellungen aus _setenv.bat...
|
echo Lade lokale Umgebungseinstellungen aus _setenv.bat...
|
||||||
@@ -95,6 +107,7 @@ echo DXFMAKRO = %DXFMAKRO%
|
|||||||
echo DXFM_DIM = %DXFM_DIM%
|
echo DXFM_DIM = %DXFM_DIM%
|
||||||
echo DXFM_BLOCKS = %DXFM_BLOCKS%
|
echo DXFM_BLOCKS = %DXFM_BLOCKS%
|
||||||
echo DXFM_OMNIFLO = %DXFM_OMNIFLO%
|
echo DXFM_OMNIFLO = %DXFM_OMNIFLO%
|
||||||
|
echo DXFM_DIFFTOOL = %DXFM_DIFFTOOL%
|
||||||
echo ================================================================
|
echo ================================================================
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
|
|||||||
@@ -27,3 +27,41 @@ pattern_variofoerderer= VF_*
|
|||||||
pattern_gefaellestrecke= GF_*
|
pattern_gefaellestrecke= GF_*
|
||||||
pattern_strecke_module= Vario*, Staustrecke*, AUS_Element*, EIN_Element*
|
pattern_strecke_module= Vario*, Staustrecke*, AUS_Element*, EIN_Element*
|
||||||
pattern_ks_subblocks= KS_EIN, KS_AUS, K1, K2, K3, K4
|
pattern_ks_subblocks= KS_EIN, KS_AUS, K1, K2, K3, K4
|
||||||
|
|
||||||
|
[Planquadrate]
|
||||||
|
section=Planquadrate_AN
|
||||||
|
|
||||||
|
# hier kann man im csv Export aus den Koordinaten der Bauteile die Planquadrate berechnen lassen, in denen sie liegen
|
||||||
|
# Zählung ist numerisch oder Alphabetisch möglich, Schrittweite in m (z.B. 2m pro Spalte, 4m pro Zeile)
|
||||||
|
# liegt man im ersten Quadrat, ist diese A/1, oder 1/1 oder 1/A, je nach Formatierung. Die Zählung beginnt immer bei 1
|
||||||
|
[Planquadrate_NA]
|
||||||
|
# z.B. 1/A
|
||||||
|
x_step=2
|
||||||
|
x_description=numerisch # zahlen, von links nach rechts, 2m pro Spalte
|
||||||
|
y_step=4
|
||||||
|
y_description=alphabetisch # Buchstaben von unten nach oben, 4m pro Zeile
|
||||||
|
format= {x}/{y} # Formatierung der Planquadrate, {y} und {x} werden durch die berechneten gerundeten Werte der Objektkoordinaten ersetzt
|
||||||
|
|
||||||
|
[Planquadrate_AN]
|
||||||
|
# z.B. A/1
|
||||||
|
x_step=2
|
||||||
|
x_description=alphabetisch # Buchstaben, von links nach rechts, 2m pro Spalte
|
||||||
|
y_step=2
|
||||||
|
y_description=alphabetisch # Zahlen von unten nach oben, 2m pro Zeile
|
||||||
|
format= {x}/{y}
|
||||||
|
|
||||||
|
[Planquadrate_NN]
|
||||||
|
# z.B. 2/5
|
||||||
|
x_step=2
|
||||||
|
x_description=numerisch # Zahlen, von links nach rechts, 2m pro Spalte
|
||||||
|
y_step=4
|
||||||
|
y_description=numerisch # Zahlen von unten nach oben, 4m pro Zeile
|
||||||
|
format= {x}/{y}
|
||||||
|
|
||||||
|
[Nachbarschaft]
|
||||||
|
# Toleranz fuer die Nachbarschaftserkennung beim CSV-Export (Spalte "Nachbarn").
|
||||||
|
# Die Bounding-Box jedes Elements wird um die Haelfte dieses Werts nach allen
|
||||||
|
# Seiten erweitert, bevor per STRtree (shapely) auf Ueberschneidung mit anderen
|
||||||
|
# Elementen geprueft wird - zwei Elemente mit einem Abstand <= toleranz_mm
|
||||||
|
# (z.B. zwei Kreisel) gelten dann ebenfalls als benachbart. Wert in mm.
|
||||||
|
toleranz_mm=200
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104025,
|
"Sivasnr": 821104025,
|
||||||
"ProfilTyp": "APB 110 R 550/22,5° – 84/522",
|
"ProfilTyp": "APB 110 R 550/22,5 – 84/522",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 22.5,
|
"KurvenWinkel": 22.5,
|
||||||
"Breite": 84,
|
"Breite": 84,
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "821104025+0_B10090",
|
"Sivasnr": "821104025+0_B10090",
|
||||||
"ProfilTyp": "APB 110 R 550/22,5° – 84/522 mit TEF Innen",
|
"ProfilTyp": "APB 110 R 550/22,5 – 84/522 mit TEF Innen",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 22.5,
|
"KurvenWinkel": 22.5,
|
||||||
"Breite": 84,
|
"Breite": 84,
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "821104025+0_B10091",
|
"Sivasnr": "821104025+0_B10091",
|
||||||
"ProfilTyp": "APB 110 R 550/22,5° – 84/522 mit TEF Aussen",
|
"ProfilTyp": "APB 110 R 550/22,5 – 84/522 mit TEF Aussen",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 22.5,
|
"KurvenWinkel": 22.5,
|
||||||
"Breite": 84,
|
"Breite": 84,
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104021,
|
"Sivasnr": 821104021,
|
||||||
"ProfilTyp": "APB 110 R 400/45° – 400/670",
|
"ProfilTyp": "APB 110 R 400/45 – 400/670",
|
||||||
"Radius": 400,
|
"Radius": 400,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Breite": 400,
|
"Breite": 400,
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104026,
|
"Sivasnr": 821104026,
|
||||||
"ProfilTyp": "APB 110 R 550/45° – 232/610",
|
"ProfilTyp": "APB 110 R 550/45 – 232/610",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Breite": 232,
|
"Breite": 232,
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "821104026+0_B10071",
|
"Sivasnr": "821104026+0_B10071",
|
||||||
"ProfilTyp": "APB 110 R 550/45° – 232/610 mit TEF Innen",
|
"ProfilTyp": "APB 110 R 550/45 – 232/610 mit TEF Innen",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Breite": 232,
|
"Breite": 232,
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104037,
|
"Sivasnr": 821104037,
|
||||||
"ProfilTyp": "APB 110 R 550/45° – 205/337",
|
"ProfilTyp": "APB 110 R 550/45 – 205/337",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Breite": 205,
|
"Breite": 205,
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104029,
|
"Sivasnr": 821104029,
|
||||||
"ProfilTyp": "APB 110 R 550/45° 191/552",
|
"ProfilTyp": "APB 110 R 550/45 191/552",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Breite": 191,
|
"Breite": 191,
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104031,
|
"Sivasnr": 821104031,
|
||||||
"ProfilTyp": "APB 110 R 630/45° – 400/825",
|
"ProfilTyp": "APB 110 R 630/45 – 400/825",
|
||||||
"Radius": 630,
|
"Radius": 630,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Breite": 400,
|
"Breite": 400,
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "821104031+0_B10060",
|
"Sivasnr": "821104031+0_B10060",
|
||||||
"ProfilTyp": "APB 110 R 630/45° – 400/825 mit TEF Aussen",
|
"ProfilTyp": "APB 110 R 630/45 – 400/825 mit TEF Aussen",
|
||||||
"Radius": 630,
|
"Radius": 630,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Breite": 400,
|
"Breite": 400,
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "821104031+0_B10070",
|
"Sivasnr": "821104031+0_B10070",
|
||||||
"ProfilTyp": "APB 110 R 630/45° – 400/825 mit TEF Innen",
|
"ProfilTyp": "APB 110 R 630/45 – 400/825 mit TEF Innen",
|
||||||
"Radius": 630,
|
"Radius": 630,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Breite": 400,
|
"Breite": 400,
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104024,
|
"Sivasnr": 821104024,
|
||||||
"ProfilTyp": "APB 110 R 400/67,5° – 339/508",
|
"ProfilTyp": "APB 110 R 400/67,5 – 339/508",
|
||||||
"Radius": 400,
|
"Radius": 400,
|
||||||
"KurvenWinkel": 67.5,
|
"KurvenWinkel": 67.5,
|
||||||
"Breite": 339,
|
"Breite": 339,
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "821104024+0_B10081",
|
"Sivasnr": "821104024+0_B10081",
|
||||||
"ProfilTyp": "APB 110 R 400/67,5° – 339/508 mit TEF Innen",
|
"ProfilTyp": "APB 110 R 400/67,5 – 339/508 mit TEF Innen",
|
||||||
"Radius": 400,
|
"Radius": 400,
|
||||||
"KurvenWinkel": 67.5,
|
"KurvenWinkel": 67.5,
|
||||||
"Breite": 339,
|
"Breite": 339,
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104027,
|
"Sivasnr": 821104027,
|
||||||
"ProfilTyp": "APB 110 R 550/67,5° – 488/778",
|
"ProfilTyp": "APB 110 R 550/67,5 – 488/778",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 67.5,
|
"KurvenWinkel": 67.5,
|
||||||
"Breite": 448,
|
"Breite": 448,
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "821104027+0_B10080",
|
"Sivasnr": "821104027+0_B10080",
|
||||||
"ProfilTyp": "APB 110 R 550/67,5° – 488/778 mit TEF Innen",
|
"ProfilTyp": "APB 110 R 550/67,5 – 488/778 mit TEF Innen",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 67.5,
|
"KurvenWinkel": 67.5,
|
||||||
"Breite": 448,
|
"Breite": 448,
|
||||||
@@ -154,7 +154,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104028,
|
"Sivasnr": 821104028,
|
||||||
"ProfilTyp": "APB 110 R 550/67,5° – 420/582",
|
"ProfilTyp": "APB 110 R 550/67,5 – 420/582",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 67.5,
|
"KurvenWinkel": 67.5,
|
||||||
"Breite": 420,
|
"Breite": 420,
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104065,
|
"Sivasnr": 821104065,
|
||||||
"ProfilTyp": "APB 110 R 550/67,5° – 498/758",
|
"ProfilTyp": "APB 110 R 550/67,5 – 498/758",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 67.5,
|
"KurvenWinkel": 67.5,
|
||||||
"Breite": 498,
|
"Breite": 498,
|
||||||
@@ -174,7 +174,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821094101,
|
"Sivasnr": 821094101,
|
||||||
"ProfilTyp": "APB 60 R 515/90° – 135/135",
|
"ProfilTyp": "APB 60 R 515/90 – 135/135",
|
||||||
"Radius": 515,
|
"Radius": 515,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 650,
|
"Breite": 650,
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821094040,
|
"Sivasnr": 821094040,
|
||||||
"ProfilTyp": "APB 60 R 515/90° – 295/295",
|
"ProfilTyp": "APB 60 R 515/90 – 295/295",
|
||||||
"Radius": 515,
|
"Radius": 515,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 810,
|
"Breite": 810,
|
||||||
@@ -194,7 +194,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104022,
|
"Sivasnr": 821104022,
|
||||||
"ProfilTyp": "APB 110 R 400/90° – 500/500",
|
"ProfilTyp": "APB 110 R 400/90 – 500/500",
|
||||||
"Radius": 400,
|
"Radius": 400,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 500,
|
"Breite": 500,
|
||||||
@@ -204,7 +204,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104030,
|
"Sivasnr": 821104030,
|
||||||
"ProfilTyp": "APB 110 R 500/90° – 550/550",
|
"ProfilTyp": "APB 110 R 500/90 – 550/550",
|
||||||
"Radius": 500,
|
"Radius": 500,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 550,
|
"Breite": 550,
|
||||||
@@ -214,7 +214,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104033,
|
"Sivasnr": 821104033,
|
||||||
"ProfilTyp": "APB 110 R 630/90° – 800/800",
|
"ProfilTyp": "APB 110 R 630/90 – 800/800",
|
||||||
"Radius": 630,
|
"Radius": 630,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 800,
|
"Breite": 800,
|
||||||
@@ -224,7 +224,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "821104033+0_B10040",
|
"Sivasnr": "821104033+0_B10040",
|
||||||
"ProfilTyp": "APB 110 R 630/90° – 800/800 mit TEF Aussen",
|
"ProfilTyp": "APB 110 R 630/90 – 800/800 mit TEF Aussen",
|
||||||
"Radius": 630,
|
"Radius": 630,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 800,
|
"Breite": 800,
|
||||||
@@ -234,7 +234,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "821104033+0_B10050",
|
"Sivasnr": "821104033+0_B10050",
|
||||||
"ProfilTyp": "APB 110 R 630/90° – 800/800 mit TEF Innen",
|
"ProfilTyp": "APB 110 R 630/90 – 800/800 mit TEF Innen",
|
||||||
"Radius": 630,
|
"Radius": 630,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 800,
|
"Breite": 800,
|
||||||
@@ -244,7 +244,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104035,
|
"Sivasnr": 821104035,
|
||||||
"ProfilTyp": "APB 110 R 630/90° – 850/870",
|
"ProfilTyp": "APB 110 R 630/90 – 850/870",
|
||||||
"Radius": 630,
|
"Radius": 630,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 850,
|
"Breite": 850,
|
||||||
@@ -254,7 +254,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104041,
|
"Sivasnr": 821104041,
|
||||||
"ProfilTyp": "APB 110 R 630/90° – 850/690",
|
"ProfilTyp": "APB 110 R 630/90 – 850/690",
|
||||||
"Radius": 630,
|
"Radius": 630,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 850,
|
"Breite": 850,
|
||||||
@@ -264,7 +264,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104034,
|
"Sivasnr": 821104034,
|
||||||
"ProfilTyp": "APB 110 R 630/90° – 850/890",
|
"ProfilTyp": "APB 110 R 630/90 – 850/890",
|
||||||
"Radius": 630,
|
"Radius": 630,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 850,
|
"Breite": 850,
|
||||||
@@ -274,7 +274,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104066,
|
"Sivasnr": 821104066,
|
||||||
"ProfilTyp": "APB 110 R 550/90° – 900/605",
|
"ProfilTyp": "APB 110 R 550/90 – 900/605",
|
||||||
"Radius": 550,
|
"Radius": 550,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Breite": 900,
|
"Breite": 900,
|
||||||
@@ -284,7 +284,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 821104043,
|
"Sivasnr": 821104043,
|
||||||
"ProfilTyp": "APB 110 R 630/180° – 1300/800",
|
"ProfilTyp": "APB 110 R 630/180 – 1300/800",
|
||||||
"Radius": 650,
|
"Radius": 650,
|
||||||
"KurvenWinkel": 180,
|
"KurvenWinkel": 180,
|
||||||
"Breite": 1300,
|
"Breite": 1300,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372001,
|
"Sivasnr": 834372001,
|
||||||
"ProfilTyp": "WEICHE S 45°-L-350/700, KPL. MIT M",
|
"ProfilTyp": "WEICHE S 45-L-350/700, KPL. MIT M",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372002,
|
"Sivasnr": 834372002,
|
||||||
"ProfilTyp": "WEICHE S 45°-L-350/700, KPL. MIT P",
|
"ProfilTyp": "WEICHE S 45-L-350/700, KPL. MIT P",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372002+0_BG090090",
|
"Sivasnr": "834372002+0_BG090090",
|
||||||
"ProfilTyp": "WEICHE S 45°-L-350/700, KPL. MIT P mit TEF Innen",
|
"ProfilTyp": "WEICHE S 45-L-350/700, KPL. MIT P mit TEF Innen",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372004,
|
"Sivasnr": 834372004,
|
||||||
"ProfilTyp": "WEICHE S 45°-R-350/700, KPL. MIT M",
|
"ProfilTyp": "WEICHE S 45-R-350/700, KPL. MIT M",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372005,
|
"Sivasnr": 834372005,
|
||||||
"ProfilTyp": "WEICHE S 45°-R-350/700, KPL. MIT P",
|
"ProfilTyp": "WEICHE S 45-R-350/700, KPL. MIT P",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372005+0_BG090090",
|
"Sivasnr": "834372005+0_BG090090",
|
||||||
"ProfilTyp": "WEICHE S 45°-R-350/700, KPL. MIT P mit TEF Innen",
|
"ProfilTyp": "WEICHE S 45-R-350/700, KPL. MIT P mit TEF Innen",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372007,
|
"Sivasnr": 834372007,
|
||||||
"ProfilTyp": "WEICHE S 45°-L-400/750, KPL. MIT M",
|
"ProfilTyp": "WEICHE S 45-L-400/750, KPL. MIT M",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372008,
|
"Sivasnr": 834372008,
|
||||||
"ProfilTyp": "WEICHE S 45°-L-400/750, KPL. MIT P",
|
"ProfilTyp": "WEICHE S 45-L-400/750, KPL. MIT P",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372008+0_BG190090",
|
"Sivasnr": "834372008+0_BG190090",
|
||||||
"ProfilTyp": "WEICHE S 45°-L-400/750, KPL. MIT P mit TEF Ihnen",
|
"ProfilTyp": "WEICHE S 45-L-400/750, KPL. MIT P mit TEF Ihnen",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372010,
|
"Sivasnr": 834372010,
|
||||||
"ProfilTyp": "WEICHE S 45°-R-400/750, KPL. MIT M",
|
"ProfilTyp": "WEICHE S 45-R-400/750, KPL. MIT M",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372011,
|
"Sivasnr": 834372011,
|
||||||
"ProfilTyp": "WEICHE S 45°-R-400/750, KPL. MIT P",
|
"ProfilTyp": "WEICHE S 45-R-400/750, KPL. MIT P",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -133,7 +133,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372011+0_BG190090",
|
"Sivasnr": "834372011+0_BG190090",
|
||||||
"ProfilTyp": "WEICHE S 45°-R-400/750, KPL. MIT P mit TEF Ihnen",
|
"ProfilTyp": "WEICHE S 45-R-400/750, KPL. MIT P mit TEF Ihnen",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372021,
|
"Sivasnr": 834372021,
|
||||||
"ProfilTyp": "WEICHE S 90°-L-500/600, KPL. MIT M",
|
"ProfilTyp": "WEICHE S 90-L-500/600, KPL. MIT M",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -157,7 +157,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372022,
|
"Sivasnr": 834372022,
|
||||||
"ProfilTyp": "WEICHE S 90°-L-500/600, KPL. MIT P",
|
"ProfilTyp": "WEICHE S 90-L-500/600, KPL. MIT P",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372024,
|
"Sivasnr": 834372024,
|
||||||
"ProfilTyp": "WEICHE S 90°-R-500/600, KPL. MIT M",
|
"ProfilTyp": "WEICHE S 90-R-500/600, KPL. MIT M",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -181,7 +181,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372025,
|
"Sivasnr": 834372025,
|
||||||
"ProfilTyp": "WEICHE S 90°-R-500/600, KPL. MIT P",
|
"ProfilTyp": "WEICHE S 90-R-500/600, KPL. MIT P",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -193,7 +193,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372027,
|
"Sivasnr": 834372027,
|
||||||
"ProfilTyp": "WEICHE S 90°-L-700/700, KPL. MIT M",
|
"ProfilTyp": "WEICHE S 90-L-700/700, KPL. MIT M",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -205,7 +205,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372028,
|
"Sivasnr": 834372028,
|
||||||
"ProfilTyp": "WEICHE S 90°-L-700/700, KPL. MIT P",
|
"ProfilTyp": "WEICHE S 90-L-700/700, KPL. MIT P",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372028+0_BG080090",
|
"Sivasnr": "834372028+0_BG080090",
|
||||||
"ProfilTyp": "WEICHE S 90°-L-700/700, KPL. MIT P mit TEF Innen",
|
"ProfilTyp": "WEICHE S 90-L-700/700, KPL. MIT P mit TEF Innen",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372030,
|
"Sivasnr": 834372030,
|
||||||
"ProfilTyp": "WEICHE S 90°-R-700/700, KPL. MIT M",
|
"ProfilTyp": "WEICHE S 90-R-700/700, KPL. MIT M",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -241,7 +241,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372031,
|
"Sivasnr": 834372031,
|
||||||
"ProfilTyp": "WEICHE S 90°-R-700/700, KPL. MIT P",
|
"ProfilTyp": "WEICHE S 90-R-700/700, KPL. MIT P",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -253,7 +253,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372031+0_BG080090",
|
"Sivasnr": "834372031+0_BG080090",
|
||||||
"ProfilTyp": "WEICHE S 90°-R-700/700, KPL. MIT P mit TEF Innen",
|
"ProfilTyp": "WEICHE S 90-R-700/700, KPL. MIT P mit TEF Innen",
|
||||||
"WeichenTyp": "Einzelweiche",
|
"WeichenTyp": "Einzelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -313,7 +313,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372100,
|
"Sivasnr": 834372100,
|
||||||
"ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT M",
|
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT M",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -324,7 +324,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372101,
|
"Sivasnr": 834372101,
|
||||||
"ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT P",
|
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -335,7 +335,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG090090+834372101",
|
"Sivasnr": "0_BG090090+834372101",
|
||||||
"ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT P mit TEF links",
|
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P mit TEF links",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -346,7 +346,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372101+0_BG090090",
|
"Sivasnr": "834372101+0_BG090090",
|
||||||
"ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT P mit TEF rechts",
|
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P mit TEF rechts",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -357,7 +357,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG090090+834372101+0_BG090090",
|
"Sivasnr": "0_BG090090+834372101+0_BG090090",
|
||||||
"ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT P mit TEF beideseitig",
|
"ProfilTyp": "WEICHE S D 45-350/700, KPL. MIT P mit TEF beideseitig",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -368,7 +368,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372103,
|
"Sivasnr": 834372103,
|
||||||
"ProfilTyp": "WEICHE S D 45°-400/750, KPL. MIT M",
|
"ProfilTyp": "WEICHE S D 45-400/750, KPL. MIT M",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -379,7 +379,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372104,
|
"Sivasnr": 834372104,
|
||||||
"ProfilTyp": "WEICHE S D 45°-400/750, KPL. MIT P",
|
"ProfilTyp": "WEICHE S D 45-400/750, KPL. MIT P",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -390,7 +390,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG190090+834372104",
|
"Sivasnr": "0_BG190090+834372104",
|
||||||
"ProfilTyp": "WEICHE S D 45°-400/750, KPL. MIT P mit TEF links",
|
"ProfilTyp": "WEICHE S D 45-400/750, KPL. MIT P mit TEF links",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -401,7 +401,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372104+0_BG190090",
|
"Sivasnr": "834372104+0_BG190090",
|
||||||
"ProfilTyp": "WEICHE S D 45°-400/750, KPL. MIT P mit TEF rechts",
|
"ProfilTyp": "WEICHE S D 45-400/750, KPL. MIT P mit TEF rechts",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -412,7 +412,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG190090+834372104+0_BG190090",
|
"Sivasnr": "0_BG190090+834372104+0_BG190090",
|
||||||
"ProfilTyp": "WEICHE S D 45°-400/750, KPL. MIT P mit TEF beideseitig",
|
"ProfilTyp": "WEICHE S D 45-400/750, KPL. MIT P mit TEF beideseitig",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -423,7 +423,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372106,
|
"Sivasnr": 834372106,
|
||||||
"ProfilTyp": "WEICHE S D 90°-500/600, KPL. MIT M",
|
"ProfilTyp": "WEICHE S D 90-500/600, KPL. MIT M",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -434,7 +434,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372107,
|
"Sivasnr": 834372107,
|
||||||
"ProfilTyp": "WEICHE S D 90°-500/600, KPL. MIT P",
|
"ProfilTyp": "WEICHE S D 90-500/600, KPL. MIT P",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -445,7 +445,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372109,
|
"Sivasnr": 834372109,
|
||||||
"ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT M",
|
"ProfilTyp": "WEICHE S D 90-700/700, KPL. MIT M",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -456,7 +456,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372110,
|
"Sivasnr": 834372110,
|
||||||
"ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT P",
|
"ProfilTyp": "WEICHE S D 90-700/700, KPL. MIT P",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -467,7 +467,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG080090+834372110",
|
"Sivasnr": "0_BG080090+834372110",
|
||||||
"ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT P mit TEF links",
|
"ProfilTyp": "WEICHE S D 90-700/700, KPL. MIT P mit TEF links",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -478,7 +478,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372110+0_BG080090",
|
"Sivasnr": "834372110+0_BG080090",
|
||||||
"ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT P mit TEF rechts",
|
"ProfilTyp": "WEICHE S D 90-700/700, KPL. MIT P mit TEF rechts",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -489,7 +489,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG080090+834372110+0_BG080090",
|
"Sivasnr": "0_BG080090+834372110+0_BG080090",
|
||||||
"ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT P mit TEF beideseitig",
|
"ProfilTyp": "WEICHE S D 90-700/700, KPL. MIT P mit TEF beideseitig",
|
||||||
"WeichenTyp": "Doppelweiche",
|
"WeichenTyp": "Doppelweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -522,7 +522,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372200,
|
"Sivasnr": 834372200,
|
||||||
"ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT M",
|
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT M",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -533,7 +533,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372201,
|
"Sivasnr": 834372201,
|
||||||
"ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT P",
|
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -544,7 +544,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG090090+834372201",
|
"Sivasnr": "0_BG090090+834372201",
|
||||||
"ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT P mit TEF links",
|
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P mit TEF links",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -555,7 +555,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372201+0_BG090090",
|
"Sivasnr": "834372201+0_BG090090",
|
||||||
"ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT P mit TEF rechts",
|
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P mit TEF rechts",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -566,7 +566,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG090090+834372201+0_BG090090",
|
"Sivasnr": "0_BG090090+834372201+0_BG090090",
|
||||||
"ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT P mit TEF beideseitig",
|
"ProfilTyp": "WEICHE S T 45-350/700, KPL. MIT P mit TEF beideseitig",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -577,7 +577,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372203,
|
"Sivasnr": 834372203,
|
||||||
"ProfilTyp": "WEICHE S T 45°-400/750, KPL. MIT M",
|
"ProfilTyp": "WEICHE S T 45-400/750, KPL. MIT M",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -588,7 +588,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372204,
|
"Sivasnr": 834372204,
|
||||||
"ProfilTyp": "WEICHE S T 45°-400/750, KPL. MIT P",
|
"ProfilTyp": "WEICHE S T 45-400/750, KPL. MIT P",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -599,7 +599,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG190090+834372204",
|
"Sivasnr": "0_BG190090+834372204",
|
||||||
"ProfilTyp": "WEICHE S T 45°-400/750, KPL. MIT P mit TEF links",
|
"ProfilTyp": "WEICHE S T 45-400/750, KPL. MIT P mit TEF links",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -610,7 +610,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372204+0_BG190090",
|
"Sivasnr": "834372204+0_BG190090",
|
||||||
"ProfilTyp": "WEICHE S T 45°-400/750, KPL. MIT P mit TEF rechts",
|
"ProfilTyp": "WEICHE S T 45-400/750, KPL. MIT P mit TEF rechts",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -621,7 +621,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG190090+834372204+0_BG190090",
|
"Sivasnr": "0_BG190090+834372204+0_BG190090",
|
||||||
"ProfilTyp": "WEICHE S T 45°-400/750, KPL. MIT P mit TEF beideseitig",
|
"ProfilTyp": "WEICHE S T 45-400/750, KPL. MIT P mit TEF beideseitig",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -632,7 +632,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372206,
|
"Sivasnr": 834372206,
|
||||||
"ProfilTyp": "WEICHE S T 90°-500/600, KPL. MIT M",
|
"ProfilTyp": "WEICHE S T 90-500/600, KPL. MIT M",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -643,7 +643,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372207,
|
"Sivasnr": 834372207,
|
||||||
"ProfilTyp": "WEICHE S T 90°-500/600, KPL. MIT P",
|
"ProfilTyp": "WEICHE S T 90-500/600, KPL. MIT P",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -654,7 +654,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372209,
|
"Sivasnr": 834372209,
|
||||||
"ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT M",
|
"ProfilTyp": "WEICHE S T 90-700/700, KPL. MIT M",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "M",
|
"Schaltungstyp": "M",
|
||||||
@@ -665,7 +665,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 834372210,
|
"Sivasnr": 834372210,
|
||||||
"ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT P",
|
"ProfilTyp": "WEICHE S T 90-700/700, KPL. MIT P",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -676,7 +676,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG080090+834372210",
|
"Sivasnr": "0_BG080090+834372210",
|
||||||
"ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT P mit TEF links",
|
"ProfilTyp": "WEICHE S T 90-700/700, KPL. MIT P mit TEF links",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -687,7 +687,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "834372210+0_BG080090",
|
"Sivasnr": "834372210+0_BG080090",
|
||||||
"ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT P mit TEF rechts",
|
"ProfilTyp": "WEICHE S T 90-700/700, KPL. MIT P mit TEF rechts",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
@@ -698,7 +698,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": "0_BG080090+834372210+0_BG080090",
|
"Sivasnr": "0_BG080090+834372210+0_BG080090",
|
||||||
"ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT P mit TEF beideseitig",
|
"ProfilTyp": "WEICHE S T 90-700/700, KPL. MIT P mit TEF beideseitig",
|
||||||
"WeichenTyp": "Dreiwegeweiche",
|
"WeichenTyp": "Dreiwegeweiche",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"Schaltungstyp": "P",
|
"Schaltungstyp": "P",
|
||||||
|
|||||||
@@ -1,30 +1,30 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10001,
|
"Sivasnr": "0_B10001",
|
||||||
"Beschreibung": "Antribestation links für TEF links",
|
"Beschreibung": "Antriebstation links für TEF links",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": ,
|
"KurvenWinkel": "",
|
||||||
"innen":
|
"innen": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10020,
|
"Sivasnr": "0_B10020",
|
||||||
"Beschreibung": "Antribestation rechts für TEF rechts",
|
"Beschreibung": "Antriebstation rechts für TEF rechts",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": ,
|
"KurvenWinkel": "",
|
||||||
"innen":
|
"innen": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": YYYYY,
|
"Sivasnr": "-",
|
||||||
"Beschreibung": "Umlenkspannstation links für TEF links",
|
"Beschreibung": "Umlenkspannstation links für TEF links",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": ,
|
"KurvenWinkel": "",
|
||||||
"innen":
|
"innen": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": YYYYY,
|
"Sivasnr": "-",
|
||||||
"Beschreibung": "Umlenkspannstation rechts für TEF rechts",
|
"Beschreibung": "Umlenkspannstation rechts für TEF rechts",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": ,
|
"KurvenWinkel": "",
|
||||||
"innen":
|
"innen": ""
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,62 +1,62 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10040,
|
"Sivasnr": "0_B10040",
|
||||||
"Beschreibung": "TEF Bogen 90° R725",
|
"Beschreibung": "TEF Bogen 90° R725",
|
||||||
"Radius": 725,
|
"Radius": 725,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"innen": false
|
"innen": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10050,
|
"Sivasnr": "0_B10050",
|
||||||
"Beschreibung": "TEF Bogen 90° R535",
|
"Beschreibung": "TEF Bogen 90° R535",
|
||||||
"Radius": 535,
|
"Radius": 535,
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10060,
|
"Sivasnr": "0_B10060",
|
||||||
"Beschreibung": "TEF Bogen 45° R725",
|
"Beschreibung": "TEF Bogen 45° R725",
|
||||||
"Radius": 725,
|
"Radius": 725,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"innen": false
|
"innen": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10070,
|
"Sivasnr": "0_B10070",
|
||||||
"Beschreibung": "TEF Bogen 45° R535",
|
"Beschreibung": "TEF Bogen 45° R535",
|
||||||
"Radius": 535,
|
"Radius": 535,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10071,
|
"Sivasnr": "0_B10071",
|
||||||
"Beschreibung": "TEF Bogen 45° R450 für S C Delta 1600",
|
"Beschreibung": "TEF Bogen 45° R450 für S C Delta 1600",
|
||||||
"Radius": 450,
|
"Radius": 450,
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10080,
|
"Sivasnr": "0_B10080",
|
||||||
"Beschreibung": "TEF Bogen 67.5° R400",
|
"Beschreibung": "TEF Bogen 67.5° R400",
|
||||||
"Radius": 400,
|
"Radius": 400,
|
||||||
"KurvenWinkel": 67.5,
|
"KurvenWinkel": 67.5,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10081,
|
"Sivasnr": "0_B10081",
|
||||||
"Beschreibung": "TEF Bogen 67.5° R250",
|
"Beschreibung": "TEF Bogen 67.5° R250",
|
||||||
"Radius": 250,
|
"Radius": 250,
|
||||||
"KurvenWinkel": 67.5,
|
"KurvenWinkel": 67.5,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10090,
|
"Sivasnr": "0_B10090",
|
||||||
"Beschreibung": "TEF Bogen 22.5° R450",
|
"Beschreibung": "TEF Bogen 22.5° R450",
|
||||||
"Radius": 450,
|
"Radius": 450,
|
||||||
"KurvenWinkel": 22.5,
|
"KurvenWinkel": 22.5,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": 0_B10091,
|
"Sivasnr": "0_B10091",
|
||||||
"Beschreibung": "TEF Bogen 22.5° R650",
|
"Beschreibung": "TEF Bogen 22.5° R650",
|
||||||
"Radius": 650,
|
"Radius": 650,
|
||||||
"KurvenWinkel": 22.5,
|
"KurvenWinkel": 22.5,
|
||||||
|
|||||||
+20
-20
@@ -1,71 +1,71 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"Sivasnr": _BG080090,
|
"Sivasnr": "_BG080090",
|
||||||
"Beschreibung": "TEF Bogen für Weiche S 90° 700/700 links",
|
"Beschreibung": "TEF Bogen für Weiche S 90° 700/700 links",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": _BG080090,
|
"Sivasnr": "_BG080090",
|
||||||
"Beschreibung": "TEF Bogen für Weiche S 90° 700/700 rechts",
|
"Beschreibung": "TEF Bogen für Weiche S 90° 700/700 rechts",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": _BG081090,
|
"Sivasnr": "_BG081090",
|
||||||
"Beschreibung": "TEF Bogen für Weiche S 90° 500/600 links",
|
"Beschreibung": "TEF Bogen für Weiche S 90° 500/600 links",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": _BG081090,
|
"Sivasnr": "_BG081090",
|
||||||
"Beschreibung": "TEF Bogen für Weiche S 90° 500/600 rechts",
|
"Beschreibung": "TEF Bogen für Weiche S 90° 500/600 rechts",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": _BG190090,
|
"Sivasnr": "_BG190090",
|
||||||
"Beschreibung": "TEF Bogen für Weiche S 45° 400/750 links",
|
"Beschreibung": "TEF Bogen für Weiche S 45° 400/750 links",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": _BG190090,
|
"Sivasnr": "_BG190090",
|
||||||
"Beschreibung": "TEF Bogen für Weiche S 45° 400/750 rechts",
|
"Beschreibung": "TEF Bogen für Weiche S 45° 400/750 rechts",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": _BG090090,
|
"Sivasnr": "_BG090090",
|
||||||
"Beschreibung": "TEF Bogen für Weiche S 45° 350/700 links",
|
"Beschreibung": "TEF Bogen für Weiche S 45° 350/700 links",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": _BG090090,
|
"Sivasnr": "_BG090090",
|
||||||
"Beschreibung": "TEF Bogen für Weiche S 45° 350/700 rechts",
|
"Beschreibung": "TEF Bogen für Weiche S 45° 350/700 rechts",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": 45,
|
"KurvenWinkel": 45,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": _BG071090,
|
"Sivasnr": "_BG071090",
|
||||||
"Beschreibung": "TEF Bogen für Weiche S C Delta 1600/800 links",
|
"Beschreibung": "TEF Bogen für Weiche S C Delta 1600/800 links",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"innen": true
|
"innen": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Sivasnr": _BG071090,
|
"Sivasnr": "_BG071090",
|
||||||
"Beschreibung": "TEF Bogen für Weiche S C Delta 1600/800 rechts",
|
"Beschreibung": "TEF Bogen für Weiche S C Delta 1600/800 rechts",
|
||||||
"Radius": ,
|
"Radius": "",
|
||||||
"KurvenWinkel": 90,
|
"KurvenWinkel": 90,
|
||||||
"innen": true
|
"innen": true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ omniflo_weichen : dialog {
|
|||||||
: popup_list {
|
: popup_list {
|
||||||
key = "profiltyp";
|
key = "profiltyp";
|
||||||
label = "Profiltyp-Auswahl:";
|
label = "Profiltyp-Auswahl:";
|
||||||
width = 50;
|
width = 65;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+83
-2
@@ -11,7 +11,19 @@ Aufruf:
|
|||||||
python export_csv.py <export_raw.json> <data_dir> <output.csv>
|
python export_csv.py <export_raw.json> <data_dir> <output.csv>
|
||||||
|
|
||||||
CSV-Format:
|
CSV-Format:
|
||||||
Elementnummer;TeileArt;TeileId;NachbarIds;Bezeichnung;Planquadrat;rotation;Merkmale
|
Elementnummer;TeileArt;TeileId;Bezeichnung;Planquadrat;Anzahl;Position;Boundingbox;Nachbarn;Merkmale
|
||||||
|
|
||||||
|
Position und Boundingbox stammen aus der von export.lsp (csv:get-bbox, per
|
||||||
|
vla-getboundingbox) ermittelten Bounding-Box je Block:
|
||||||
|
Position = Mittenkoordinate x, y, z
|
||||||
|
Boundingbox = Ausdehnung (Laenge, Breite, Hoehe) in x, y, z
|
||||||
|
Planquadrat wird aus der x/y-Koordinate des Blocks berechnet, siehe
|
||||||
|
export_planquadrat.py ([Planquadrate] in cfg/export.cfg).
|
||||||
|
Nachbarn = kommaseparierte TeileId-Liste ueberschneidender Elemente (Bounding-
|
||||||
|
Box-Ueberschneidung in der x/y-Ebene per shapely-STRtree, Toleranz konfigurierbar
|
||||||
|
ueber [Nachbarschaft] -> toleranz_mm in cfg/export.cfg), siehe export_neighbors.py.
|
||||||
|
Position, Boundingbox, Planquadrat und Nachbarn sind nur fuer EXPORTCSV
|
||||||
|
vorhanden (nicht EXPORTSIVAS) - siehe csv:run-export.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import json
|
import json
|
||||||
@@ -19,8 +31,12 @@ import sys
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from export_blockpatterns import load_patterns, matches_any
|
from export_blockpatterns import load_patterns, matches_any
|
||||||
|
from export_planquadrat import load_planquadrat_config, compute_planquadrat
|
||||||
|
from export_neighbors import load_neighbor_tolerance_mm, compute_neighbor_ids
|
||||||
|
|
||||||
BLOCKPATTERNS = load_patterns()
|
BLOCKPATTERNS = load_patterns()
|
||||||
|
PLANQUADRAT_CFG = load_planquadrat_config()
|
||||||
|
NEIGHBOR_TOLERANCE_MM = load_neighbor_tolerance_mm()
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
@@ -219,6 +235,44 @@ def build_kreisel_merkmale(block):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# Bounding-Box-Spalten (Position/Boundingbox)
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
def bbox_columns(block):
|
||||||
|
"""Liest die von export.lsp (csv:get-bbox) ermittelte Bounding-Box.
|
||||||
|
|
||||||
|
Rueckgabe: dict mit "position" (Mittenkoordinate x,y,z) und "boundingbox"
|
||||||
|
(Ausdehnung x,y,z) als Strings, oder leere Strings falls kein bbox-Feld
|
||||||
|
vorhanden ist (z.B. EXPORTSIVAS oder die synthetische Omniflo-Sum-Zeile).
|
||||||
|
"_bbox" enthaelt zusaetzlich die rohen Zahlenwerte fuer die Nachbarschafts-
|
||||||
|
erkennung (siehe export_neighbors.py), wird nicht in die CSV geschrieben.
|
||||||
|
"""
|
||||||
|
bbox = block.get("bbox")
|
||||||
|
if not bbox:
|
||||||
|
return {"position": "", "boundingbox": "", "_bbox": None}
|
||||||
|
return {
|
||||||
|
"position": f'{bbox.get("cx", 0):.2f}, {bbox.get("cy", 0):.2f}, {bbox.get("cz", 0):.2f}',
|
||||||
|
"boundingbox": f'{bbox.get("dx", 0):.2f}, {bbox.get("dy", 0):.2f}, {bbox.get("dz", 0):.2f}',
|
||||||
|
"_bbox": bbox,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def planquadrat_column(block):
|
||||||
|
"""Berechnet das Planquadrat aus x/y des Blocks (siehe export_planquadrat.py).
|
||||||
|
|
||||||
|
Leerer String, wenn keine Planquadrat-Konfiguration geladen werden konnte
|
||||||
|
(fehlende/unvollstaendige [Planquadrate]-Sektion in cfg/export.cfg).
|
||||||
|
"""
|
||||||
|
if PLANQUADRAT_CFG is None:
|
||||||
|
return ""
|
||||||
|
x = block.get("x")
|
||||||
|
y = block.get("y")
|
||||||
|
if x is None or y is None:
|
||||||
|
return ""
|
||||||
|
return compute_planquadrat(float(x), float(y), PLANQUADRAT_CFG)
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Bekannte Blocknamen
|
# Bekannte Blocknamen
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
@@ -268,7 +322,9 @@ def process_blocks(blocks, lookup):
|
|||||||
"teileart": "Omniflo Kurve",
|
"teileart": "Omniflo Kurve",
|
||||||
"teileid": shape_id,
|
"teileid": shape_id,
|
||||||
"bezeichnung": f"OFBogen :{bogen_count}",
|
"bezeichnung": f"OFBogen :{bogen_count}",
|
||||||
|
"planquadrat": planquadrat_column(block),
|
||||||
"merkmale": build_bogen_merkmale(block, eintrag),
|
"merkmale": build_bogen_merkmale(block, eintrag),
|
||||||
|
**bbox_columns(block),
|
||||||
})
|
})
|
||||||
|
|
||||||
elif typ == "weiche":
|
elif typ == "weiche":
|
||||||
@@ -279,7 +335,9 @@ def process_blocks(blocks, lookup):
|
|||||||
"teileart": "Omniflo Weiche",
|
"teileart": "Omniflo Weiche",
|
||||||
"teileid": shape_id,
|
"teileid": shape_id,
|
||||||
"bezeichnung": f"OFWeiche :{weiche_count[wt]}",
|
"bezeichnung": f"OFWeiche :{weiche_count[wt]}",
|
||||||
|
"planquadrat": planquadrat_column(block),
|
||||||
"merkmale": build_weiche_merkmale(block, eintrag),
|
"merkmale": build_weiche_merkmale(block, eintrag),
|
||||||
|
**bbox_columns(block),
|
||||||
})
|
})
|
||||||
subtyp = weichensubtyp(block, eintrag)
|
subtyp = weichensubtyp(block, eintrag)
|
||||||
if subtyp == "weichenkoerper":
|
if subtyp == "weichenkoerper":
|
||||||
@@ -304,7 +362,9 @@ def process_blocks(blocks, lookup):
|
|||||||
"teileart": "Omniflo Gerade",
|
"teileart": "Omniflo Gerade",
|
||||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||||
"bezeichnung": f"OFGerade :{gerade_count}",
|
"bezeichnung": f"OFGerade :{gerade_count}",
|
||||||
|
"planquadrat": planquadrat_column(block),
|
||||||
"merkmale": build_gerade_merkmale(block),
|
"merkmale": build_gerade_merkmale(block),
|
||||||
|
**bbox_columns(block),
|
||||||
})
|
})
|
||||||
len_ap110_mm += get_laenge_mm(block)
|
len_ap110_mm += get_laenge_mm(block)
|
||||||
continue
|
continue
|
||||||
@@ -318,7 +378,9 @@ def process_blocks(blocks, lookup):
|
|||||||
"teileart": "ILS 2.0 Strecke",
|
"teileart": "ILS 2.0 Strecke",
|
||||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||||
"bezeichnung": f"VarioFoerderer :{vf_count}",
|
"bezeichnung": f"VarioFoerderer :{vf_count}",
|
||||||
|
"planquadrat": planquadrat_column(block),
|
||||||
"merkmale": build_variofoerderer_merkmale(block),
|
"merkmale": build_variofoerderer_merkmale(block),
|
||||||
|
**bbox_columns(block),
|
||||||
})
|
})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -331,7 +393,9 @@ def process_blocks(blocks, lookup):
|
|||||||
"teileart": "ILS 2.0 Gefaellestrecke",
|
"teileart": "ILS 2.0 Gefaellestrecke",
|
||||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||||
"bezeichnung": f"Gefaellestrecke :{gf_count}",
|
"bezeichnung": f"Gefaellestrecke :{gf_count}",
|
||||||
|
"planquadrat": planquadrat_column(block),
|
||||||
"merkmale": build_variofoerderer_merkmale(block),
|
"merkmale": build_variofoerderer_merkmale(block),
|
||||||
|
**bbox_columns(block),
|
||||||
})
|
})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -345,7 +409,9 @@ def process_blocks(blocks, lookup):
|
|||||||
"teileart": "ILS 2.0 Eckrad",
|
"teileart": "ILS 2.0 Eckrad",
|
||||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||||
"bezeichnung": f"Eckrad :{eckrad_count}",
|
"bezeichnung": f"Eckrad :{eckrad_count}",
|
||||||
|
"planquadrat": planquadrat_column(block),
|
||||||
"merkmale": build_kreisel_merkmale(block),
|
"merkmale": build_kreisel_merkmale(block),
|
||||||
|
**bbox_columns(block),
|
||||||
})
|
})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -358,7 +424,9 @@ def process_blocks(blocks, lookup):
|
|||||||
"teileart": "ILS 2.0 Kreisel",
|
"teileart": "ILS 2.0 Kreisel",
|
||||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||||
"bezeichnung": f"Kreisel :{kreisel_count}",
|
"bezeichnung": f"Kreisel :{kreisel_count}",
|
||||||
|
"planquadrat": planquadrat_column(block),
|
||||||
"merkmale": build_kreisel_merkmale(block),
|
"merkmale": build_kreisel_merkmale(block),
|
||||||
|
**bbox_columns(block),
|
||||||
})
|
})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -371,7 +439,9 @@ def process_blocks(blocks, lookup):
|
|||||||
"teileart": "ILS 2.0 Strecke - Modul",
|
"teileart": "ILS 2.0 Strecke - Modul",
|
||||||
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
"teileid": block.get("attribs", {}).get("ID", "0000"),
|
||||||
"bezeichnung": f"Streckenmodul :{strecke_modul_count}",
|
"bezeichnung": f"Streckenmodul :{strecke_modul_count}",
|
||||||
|
"planquadrat": planquadrat_column(block),
|
||||||
"merkmale": {"Blockname": bname},
|
"merkmale": {"Blockname": bname},
|
||||||
|
**bbox_columns(block),
|
||||||
})
|
})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -382,11 +452,18 @@ def process_blocks(blocks, lookup):
|
|||||||
"teileart": "Omniflo Sum",
|
"teileart": "Omniflo Sum",
|
||||||
"teileid": "autogenerated_of_json",
|
"teileid": "autogenerated_of_json",
|
||||||
"bezeichnung": "Omniflo sum",
|
"bezeichnung": "Omniflo sum",
|
||||||
|
"planquadrat": "",
|
||||||
"merkmale": build_omni_sum_merkmale(
|
"merkmale": build_omni_sum_merkmale(
|
||||||
bogen_count, cnt_wk, cnt_einzel, cnt_delta, cnt_doppel, cnt_stern,
|
bogen_count, cnt_wk, cnt_einzel, cnt_delta, cnt_doppel, cnt_stern,
|
||||||
len_ap110_mm, len_ap60_mm),
|
len_ap110_mm, len_ap60_mm),
|
||||||
|
"position": "",
|
||||||
|
"boundingbox": "",
|
||||||
})
|
})
|
||||||
|
|
||||||
|
neighbor_ids = compute_neighbor_ids(items, NEIGHBOR_TOLERANCE_MM)
|
||||||
|
for item, nachbarn in zip(items, neighbor_ids):
|
||||||
|
item["nachbarn"] = nachbarn
|
||||||
|
|
||||||
return items
|
return items
|
||||||
|
|
||||||
|
|
||||||
@@ -401,7 +478,11 @@ def format_csv_line(item):
|
|||||||
f';"{item["teileart"]}"'
|
f';"{item["teileart"]}"'
|
||||||
f';"{item["teileid"]}"'
|
f';"{item["teileid"]}"'
|
||||||
f';"{item["bezeichnung"]}"'
|
f';"{item["bezeichnung"]}"'
|
||||||
|
f';"{item["planquadrat"]}"'
|
||||||
f';1'
|
f';1'
|
||||||
|
f';"{item["position"]}"'
|
||||||
|
f';"{item["boundingbox"]}"'
|
||||||
|
f';"{item["nachbarn"]}"'
|
||||||
f';{merkmale_json}'
|
f';{merkmale_json}'
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -433,7 +514,7 @@ def main():
|
|||||||
|
|
||||||
items = process_blocks(blocks, lookup)
|
items = process_blocks(blocks, lookup)
|
||||||
|
|
||||||
header = "Elementnummer;TeileArt;TeileId;Bezeichnung;Anzahl;Merkmale"
|
header = "Elementnummer;TeileArt;TeileId;Bezeichnung;Planquadrat;Anzahl;Position;Boundingbox;Nachbarn;Merkmale"
|
||||||
with open(output_csv, "w", encoding="utf-8") as f:
|
with open(output_csv, "w", encoding="utf-8") as f:
|
||||||
f.write(header + "\n")
|
f.write(header + "\n")
|
||||||
for item in items:
|
for item in items:
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
export_neighbors.py - Ermittelt benachbarte Elemente ueber die Bounding-Box (STRtree).
|
||||||
|
|
||||||
|
Zwei Elemente gelten als benachbart, wenn ihre Bounding-Boxes sich in der
|
||||||
|
x/y-Ebene (Grundriss, Z/Hoehe wird ignoriert) ueberschneiden. Um auch nah
|
||||||
|
beieinander liegende, aber nicht direkt beruehrende Elemente (z.B. Kreisel)
|
||||||
|
als benachbart zu erkennen, wird jede Bounding-Box vor der Pruefung um die
|
||||||
|
Haelfte der konfigurierten Toleranz nach allen Seiten erweitert - zwei
|
||||||
|
Elemente mit einem Abstand <= toleranz_mm gelten dann ebenfalls als
|
||||||
|
benachbart. Die Toleranz wird aus cfg/export.cfg ([Nachbarschaft] ->
|
||||||
|
toleranz_mm) gelesen.
|
||||||
|
|
||||||
|
Nur von export_csv.py genutzt (EXPORTCSV), nicht von export_sivas.py.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import configparser
|
||||||
|
|
||||||
|
from shapely.geometry import box
|
||||||
|
from shapely.strtree import STRtree
|
||||||
|
|
||||||
|
from export_blockpatterns import cfg_path_from_env
|
||||||
|
|
||||||
|
|
||||||
|
def load_neighbor_tolerance_mm(cfg_path=None):
|
||||||
|
"""Liest die Nachbarschafts-Toleranz (mm) aus export.cfg. Default: 0."""
|
||||||
|
if cfg_path is None:
|
||||||
|
cfg_path = cfg_path_from_env()
|
||||||
|
parser = configparser.ConfigParser(inline_comment_prefixes=("#",))
|
||||||
|
parser.read(cfg_path, encoding="utf-8")
|
||||||
|
return parser.getfloat("Nachbarschaft", "toleranz_mm", fallback=0.0)
|
||||||
|
|
||||||
|
|
||||||
|
def compute_neighbor_ids(items, tolerance_mm):
|
||||||
|
"""Ermittelt je Item die IDs (item["teileid"]) ueberschneidender Nachbarn.
|
||||||
|
|
||||||
|
items = Liste von dict mit "teileid" und optional "_bbox"
|
||||||
|
({"cx","cy","dx","dy",...}, siehe export.lsp csv:get-bbox / export_csv.py
|
||||||
|
bbox_columns). Items ohne _bbox (z.B. die synthetische Omniflo-Sum-Zeile)
|
||||||
|
haben keine Nachbarn.
|
||||||
|
|
||||||
|
Rueckgabe: Liste von kommaseparierten Nachbar-ID-Strings, positionsgleich
|
||||||
|
zu items (nicht ueber die ID dedupliziert, da TeileId nicht zwingend
|
||||||
|
eindeutig ist).
|
||||||
|
"""
|
||||||
|
idx_with_bbox = [i for i, it in enumerate(items) if it.get("_bbox")]
|
||||||
|
result = [""] * len(items)
|
||||||
|
if len(idx_with_bbox) < 2:
|
||||||
|
return result
|
||||||
|
|
||||||
|
half_tol = tolerance_mm / 2.0
|
||||||
|
geoms = []
|
||||||
|
for i in idx_with_bbox:
|
||||||
|
bb = items[i]["_bbox"]
|
||||||
|
minx = bb["cx"] - bb["dx"] / 2.0 - half_tol
|
||||||
|
maxx = bb["cx"] + bb["dx"] / 2.0 + half_tol
|
||||||
|
miny = bb["cy"] - bb["dy"] / 2.0 - half_tol
|
||||||
|
maxy = bb["cy"] + bb["dy"] / 2.0 + half_tol
|
||||||
|
geoms.append(box(minx, miny, maxx, maxy))
|
||||||
|
|
||||||
|
tree = STRtree(geoms)
|
||||||
|
for local_i, global_i in enumerate(idx_with_bbox):
|
||||||
|
hits = tree.query(geoms[local_i], predicate="intersects")
|
||||||
|
neighbor_ids = [
|
||||||
|
items[idx_with_bbox[int(local_j)]]["teileid"]
|
||||||
|
for local_j in hits
|
||||||
|
if int(local_j) != local_i
|
||||||
|
]
|
||||||
|
result[global_i] = ", ".join(neighbor_ids)
|
||||||
|
|
||||||
|
return result
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
export_planquadrat.py - Berechnet das Planquadrat eines Blocks aus x/y-Koordinate.
|
||||||
|
|
||||||
|
Liest die aktive Planquadrat-Konfiguration aus cfg/export.cfg
|
||||||
|
([Planquadrate] -> section=<Name der Sub-Sektion>, z.B. Planquadrate_AN) und
|
||||||
|
rundet die x/y-Koordinate eines Blocks (mm, wie im Roh-JSON von export.lsp)
|
||||||
|
je Achse auf die konfigurierte Schrittweite (in Metern) herunter.
|
||||||
|
|
||||||
|
Nur von export_csv.py genutzt (EXPORTCSV), nicht von export_sivas.py.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import configparser
|
||||||
|
|
||||||
|
from export_blockpatterns import cfg_path_from_env
|
||||||
|
|
||||||
|
|
||||||
|
def load_planquadrat_config(cfg_path=None):
|
||||||
|
"""Liest die aktive Planquadrat-Konfiguration aus export.cfg.
|
||||||
|
|
||||||
|
Rueckgabe: dict mit x_step_mm, x_alpha, y_step_mm, y_alpha, format,
|
||||||
|
oder None, wenn [Planquadrate] bzw. die referenzierte Sub-Sektion fehlt.
|
||||||
|
"""
|
||||||
|
if cfg_path is None:
|
||||||
|
cfg_path = cfg_path_from_env()
|
||||||
|
# inline_comment_prefixes noetig, da export.cfg Werte wie
|
||||||
|
# "numerisch # zahlen, von links nach rechts, 2m pro Spalte" nutzt.
|
||||||
|
parser = configparser.ConfigParser(inline_comment_prefixes=("#",))
|
||||||
|
parser.read(cfg_path, encoding="utf-8")
|
||||||
|
|
||||||
|
if not parser.has_section("Planquadrate"):
|
||||||
|
return None
|
||||||
|
section_name = parser.get("Planquadrate", "section", fallback=None)
|
||||||
|
if not section_name or not parser.has_section(section_name):
|
||||||
|
return None
|
||||||
|
|
||||||
|
sec = parser[section_name]
|
||||||
|
return {
|
||||||
|
"x_step_mm": float(sec.get("x_step", "1")) * 1000.0,
|
||||||
|
"x_alpha": sec.get("x_description", "numerisch").strip().lower().startswith("alpha"),
|
||||||
|
"y_step_mm": float(sec.get("y_step", "1")) * 1000.0,
|
||||||
|
"y_alpha": sec.get("y_description", "numerisch").strip().lower().startswith("alpha"),
|
||||||
|
"format": sec.get("format", "{x}/{y}").strip(),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def _index_to_alpha(n):
|
||||||
|
"""Wandelt einen 1-basierten Index in eine Buchstaben-Bezeichnung um.
|
||||||
|
|
||||||
|
1=A, 26=Z, 27=AA, 28=AB, ... (wie Excel-Spaltennamen).
|
||||||
|
"""
|
||||||
|
result = ""
|
||||||
|
while n > 0:
|
||||||
|
n, remainder = divmod(n - 1, 26)
|
||||||
|
result = chr(65 + remainder) + result
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def _index_for(coord_mm, step_mm):
|
||||||
|
"""1-basierter Planquadrat-Index einer Koordinate fuer eine Schrittweite."""
|
||||||
|
return int(coord_mm // step_mm) + 1
|
||||||
|
|
||||||
|
|
||||||
|
def compute_planquadrat(x_mm, y_mm, cfg):
|
||||||
|
"""Berechnet die Planquadrat-Bezeichnung fuer eine x/y-Koordinate (mm)."""
|
||||||
|
x_idx = _index_for(x_mm, cfg["x_step_mm"])
|
||||||
|
y_idx = _index_for(y_mm, cfg["y_step_mm"])
|
||||||
|
x_label = _index_to_alpha(x_idx) if cfg["x_alpha"] else str(x_idx)
|
||||||
|
y_label = _index_to_alpha(y_idx) if cfg["y_alpha"] else str(y_idx)
|
||||||
|
return cfg["format"].format(x=x_label, y=y_label)
|
||||||
+7
-37
@@ -4,7 +4,7 @@
|
|||||||
export_sivas.py - Erzeugt Sivas-Export-CSV mit gruppierten Zeilen und Summierungszeilen.
|
export_sivas.py - Erzeugt Sivas-Export-CSV mit gruppierten Zeilen und Summierungszeilen.
|
||||||
|
|
||||||
Neues CSV-Format:
|
Neues CSV-Format:
|
||||||
Nr;TeileArt;SivasNummer;Bezeichnung;Dispogruppe;Anzahl;Laenge[mm];Hoehe[m];IDs;details
|
Nr;TeileArt;SivasNummer;Bezeichnung;Dispogruppe;Anzahl;Laenge[mm];IDs;details
|
||||||
|
|
||||||
- Bezeichnung: Wert des Attributs "Bezeichnung" (Kreisel/Eckrad/VF/GF/Strecke).
|
- Bezeichnung: Wert des Attributs "Bezeichnung" (Kreisel/Eckrad/VF/GF/Strecke).
|
||||||
Bei gruppierten Zeilen (mehrere Bloecke je Zeile) kommasepariert.
|
Bei gruppierten Zeilen (mehrere Bloecke je Zeile) kommasepariert.
|
||||||
@@ -80,13 +80,6 @@ def classify_weiche(eintrag):
|
|||||||
return "einzelweiche"
|
return "einzelweiche"
|
||||||
|
|
||||||
|
|
||||||
def get_hoehe_mm(block):
|
|
||||||
"""Liest HOEHE aus Block-Attributen. Fallback: Z-Koordinate."""
|
|
||||||
attribs = block.get("attribs", {})
|
|
||||||
v = attribs.get("HOEHE") or str(int(block.get("z", 0) or 0)) or "2000"
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
def get_id(block):
|
def get_id(block):
|
||||||
"""Liest das eindeutige ID-Attribut eines Blocks (von ssg-id-check-all vergeben)."""
|
"""Liest das eindeutige ID-Attribut eines Blocks (von ssg-id-check-all vergeben)."""
|
||||||
return block.get("attribs", {}).get("ID", "")
|
return block.get("attribs", {}).get("ID", "")
|
||||||
@@ -101,17 +94,6 @@ def format_sivasnr(sivasnr):
|
|||||||
return ", ".join(p.strip() for p in str(sivasnr).split("+") if p.strip())
|
return ", ".join(p.strip() for p in str(sivasnr).split("+") if p.strip())
|
||||||
|
|
||||||
|
|
||||||
def format_hoehe_m(hoehe_mm_str):
|
|
||||||
"""Konvertiert mm-String nach m mit deutschem Dezimaltrennzeichen."""
|
|
||||||
try:
|
|
||||||
m = float(hoehe_mm_str) / 1000.0
|
|
||||||
if m == int(m):
|
|
||||||
return str(int(m))
|
|
||||||
return f"{m:.1f}".replace(".", ",")
|
|
||||||
except (ValueError, TypeError):
|
|
||||||
return ""
|
|
||||||
|
|
||||||
|
|
||||||
def build_gefaellestrecke_details(block):
|
def build_gefaellestrecke_details(block):
|
||||||
"""Merkmale-Dict fuer eine einzelne ILS Gefaellestrecke (GF_N-Block)."""
|
"""Merkmale-Dict fuer eine einzelne ILS Gefaellestrecke (GF_N-Block)."""
|
||||||
attribs = block.get("attribs", {})
|
attribs = block.get("attribs", {})
|
||||||
@@ -286,10 +268,10 @@ def process_blocks(blocks, lookup):
|
|||||||
items - Liste der CSV-Zeilen als Dicts
|
items - Liste der CSV-Zeilen als Dicts
|
||||||
counters - Zaehler fuer ILS-Automation-Summierungszeile
|
counters - Zaehler fuer ILS-Automation-Summierungszeile
|
||||||
"""
|
"""
|
||||||
# Gruppen: sivasnr_str -> {anzahl, hoehe_mm, ids}
|
# Gruppen: sivasnr_str -> {anzahl, ids}
|
||||||
bogen_groups = {} # sivasnr -> dict
|
bogen_groups = {} # sivasnr -> dict
|
||||||
weiche_groups = {} # sivasnr -> dict
|
weiche_groups = {} # sivasnr -> dict
|
||||||
# Gerade: artinr_str -> {anzahl, laenge_mm_total, hoehe_mm, ids}
|
# Gerade: artinr_str -> {anzahl, laenge_mm_total, ids}
|
||||||
gerade_groups = {}
|
gerade_groups = {}
|
||||||
kreisel_list = [] # Liste von blocks
|
kreisel_list = [] # Liste von blocks
|
||||||
eckrad_ids = [] # IDs aller Eckrad-Bloecke
|
eckrad_ids = [] # IDs aller Eckrad-Bloecke
|
||||||
@@ -340,18 +322,17 @@ def process_blocks(blocks, lookup):
|
|||||||
if bname in lookup:
|
if bname in lookup:
|
||||||
typ, eintrag = lookup[bname]
|
typ, eintrag = lookup[bname]
|
||||||
sivasnr = format_sivasnr(eintrag.get("Sivasnr", bname))
|
sivasnr = format_sivasnr(eintrag.get("Sivasnr", bname))
|
||||||
hoehe = get_hoehe_mm(block)
|
|
||||||
|
|
||||||
if typ == "bogen":
|
if typ == "bogen":
|
||||||
if sivasnr not in bogen_groups:
|
if sivasnr not in bogen_groups:
|
||||||
bogen_groups[sivasnr] = {"anzahl": 0, "hoehe_mm": hoehe, "ids": []}
|
bogen_groups[sivasnr] = {"anzahl": 0, "ids": []}
|
||||||
bogen_groups[sivasnr]["anzahl"] += 1
|
bogen_groups[sivasnr]["anzahl"] += 1
|
||||||
bogen_groups[sivasnr]["ids"].append(get_id(block))
|
bogen_groups[sivasnr]["ids"].append(get_id(block))
|
||||||
counters["anzahl_boegen"] += 1
|
counters["anzahl_boegen"] += 1
|
||||||
|
|
||||||
elif typ == "weiche":
|
elif typ == "weiche":
|
||||||
if sivasnr not in weiche_groups:
|
if sivasnr not in weiche_groups:
|
||||||
weiche_groups[sivasnr] = {"anzahl": 0, "hoehe_mm": hoehe, "ids": []}
|
weiche_groups[sivasnr] = {"anzahl": 0, "ids": []}
|
||||||
weiche_groups[sivasnr]["anzahl"] += 1
|
weiche_groups[sivasnr]["anzahl"] += 1
|
||||||
weiche_groups[sivasnr]["ids"].append(get_id(block))
|
weiche_groups[sivasnr]["ids"].append(get_id(block))
|
||||||
subtyp = classify_weiche(eintrag)
|
subtyp = classify_weiche(eintrag)
|
||||||
@@ -372,7 +353,6 @@ def process_blocks(blocks, lookup):
|
|||||||
attribs = block.get("attribs", {})
|
attribs = block.get("attribs", {})
|
||||||
artinr = attribs.get("ARTINR", "")
|
artinr = attribs.get("ARTINR", "")
|
||||||
key = artinr if artinr else "AP110"
|
key = artinr if artinr else "AP110"
|
||||||
hoehe = get_hoehe_mm(block)
|
|
||||||
laenge = 2000.0
|
laenge = 2000.0
|
||||||
laenge_attr = attribs.get("LAENGE") or attribs.get("A")
|
laenge_attr = attribs.get("LAENGE") or attribs.get("A")
|
||||||
if laenge_attr:
|
if laenge_attr:
|
||||||
@@ -382,7 +362,7 @@ def process_blocks(blocks, lookup):
|
|||||||
pass
|
pass
|
||||||
if key not in gerade_groups:
|
if key not in gerade_groups:
|
||||||
gerade_groups[key] = {
|
gerade_groups[key] = {
|
||||||
"anzahl": 0, "laenge_mm": 0.0, "hoehe_mm": hoehe,
|
"anzahl": 0, "laenge_mm": 0.0,
|
||||||
"artinr": artinr, "ids": [],
|
"artinr": artinr, "ids": [],
|
||||||
}
|
}
|
||||||
gerade_groups[key]["anzahl"] += 1
|
gerade_groups[key]["anzahl"] += 1
|
||||||
@@ -484,7 +464,6 @@ def process_blocks(blocks, lookup):
|
|||||||
"dispgruppe": 10,
|
"dispgruppe": 10,
|
||||||
"anzahl": g["anzahl"],
|
"anzahl": g["anzahl"],
|
||||||
"laenge_mm": "",
|
"laenge_mm": "",
|
||||||
"hoehe_m": format_hoehe_m(g["hoehe_mm"]),
|
|
||||||
"ids": g["ids"],
|
"ids": g["ids"],
|
||||||
"details": {},
|
"details": {},
|
||||||
})
|
})
|
||||||
@@ -500,7 +479,6 @@ def process_blocks(blocks, lookup):
|
|||||||
"dispgruppe": 10,
|
"dispgruppe": 10,
|
||||||
"anzahl": g["anzahl"],
|
"anzahl": g["anzahl"],
|
||||||
"laenge_mm": "",
|
"laenge_mm": "",
|
||||||
"hoehe_m": format_hoehe_m(g["hoehe_mm"]),
|
|
||||||
"ids": g["ids"],
|
"ids": g["ids"],
|
||||||
"details": {},
|
"details": {},
|
||||||
})
|
})
|
||||||
@@ -516,7 +494,6 @@ def process_blocks(blocks, lookup):
|
|||||||
"dispgruppe": 10,
|
"dispgruppe": 10,
|
||||||
"anzahl": g["anzahl"],
|
"anzahl": g["anzahl"],
|
||||||
"laenge_mm": int(g["laenge_mm"]),
|
"laenge_mm": int(g["laenge_mm"]),
|
||||||
"hoehe_m": format_hoehe_m(g["hoehe_mm"]),
|
|
||||||
"ids": g["ids"],
|
"ids": g["ids"],
|
||||||
"details": {},
|
"details": {},
|
||||||
})
|
})
|
||||||
@@ -544,7 +521,6 @@ def process_blocks(blocks, lookup):
|
|||||||
"dispgruppe": 20,
|
"dispgruppe": 20,
|
||||||
"anzahl": len(group["ids"]),
|
"anzahl": len(group["ids"]),
|
||||||
"laenge_mm": "",
|
"laenge_mm": "",
|
||||||
"hoehe_m": "",
|
|
||||||
"ids": group["ids"],
|
"ids": group["ids"],
|
||||||
"details": build_kreisel_details(group["block"]),
|
"details": build_kreisel_details(group["block"]),
|
||||||
})
|
})
|
||||||
@@ -561,7 +537,6 @@ def process_blocks(blocks, lookup):
|
|||||||
"dispgruppe": 20,
|
"dispgruppe": 20,
|
||||||
"anzahl": counters["anzahl_eckraeder"],
|
"anzahl": counters["anzahl_eckraeder"],
|
||||||
"laenge_mm": "",
|
"laenge_mm": "",
|
||||||
"hoehe_m": "",
|
|
||||||
"ids": eckrad_ids,
|
"ids": eckrad_ids,
|
||||||
"details": {},
|
"details": {},
|
||||||
})
|
})
|
||||||
@@ -581,7 +556,6 @@ def process_blocks(blocks, lookup):
|
|||||||
"dispgruppe": 20,
|
"dispgruppe": 20,
|
||||||
"anzahl": len(strecke_ids),
|
"anzahl": len(strecke_ids),
|
||||||
"laenge_mm": "",
|
"laenge_mm": "",
|
||||||
"hoehe_m": "",
|
|
||||||
"ids": strecke_ids,
|
"ids": strecke_ids,
|
||||||
"details": {},
|
"details": {},
|
||||||
})
|
})
|
||||||
@@ -600,7 +574,6 @@ def process_blocks(blocks, lookup):
|
|||||||
"dispgruppe": 20,
|
"dispgruppe": 20,
|
||||||
"anzahl": 1,
|
"anzahl": 1,
|
||||||
"laenge_mm": "",
|
"laenge_mm": "",
|
||||||
"hoehe_m": "",
|
|
||||||
"ids": [get_id(block)],
|
"ids": [get_id(block)],
|
||||||
"details": build_variofoerderer_details(block),
|
"details": build_variofoerderer_details(block),
|
||||||
})
|
})
|
||||||
@@ -629,7 +602,6 @@ def process_blocks(blocks, lookup):
|
|||||||
"dispgruppe": 20,
|
"dispgruppe": 20,
|
||||||
"anzahl": len(group["ids"]),
|
"anzahl": len(group["ids"]),
|
||||||
"laenge_mm": "",
|
"laenge_mm": "",
|
||||||
"hoehe_m": "",
|
|
||||||
"ids": group["ids"],
|
"ids": group["ids"],
|
||||||
"details": details,
|
"details": details,
|
||||||
})
|
})
|
||||||
@@ -673,7 +645,6 @@ def process_blocks(blocks, lookup):
|
|||||||
"dispgruppe": 20,
|
"dispgruppe": 20,
|
||||||
"anzahl": 1,
|
"anzahl": 1,
|
||||||
"laenge_mm": "",
|
"laenge_mm": "",
|
||||||
"hoehe_m": "",
|
|
||||||
"details": automation_details,
|
"details": automation_details,
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -693,7 +664,6 @@ def format_csv_line(item):
|
|||||||
f';{item["dispgruppe"]}'
|
f';{item["dispgruppe"]}'
|
||||||
f';{item["anzahl"]}'
|
f';{item["anzahl"]}'
|
||||||
f';{item["laenge_mm"]}'
|
f';{item["laenge_mm"]}'
|
||||||
f';{item["hoehe_m"]}'
|
|
||||||
f';"{ids_str}"'
|
f';"{ids_str}"'
|
||||||
f';{details_json}'
|
f';{details_json}'
|
||||||
)
|
)
|
||||||
@@ -722,7 +692,7 @@ def main():
|
|||||||
|
|
||||||
items, _ = process_blocks(blocks, lookup)
|
items, _ = process_blocks(blocks, lookup)
|
||||||
|
|
||||||
header = "Nr;TeileArt;SivasNummer;Bezeichnung;Dispogruppe;Anzahl;Laenge[mm];Hoehe[m];IDs;details"
|
header = "Nr;TeileArt;SivasNummer;Bezeichnung;Dispogruppe;Anzahl;Laenge[mm];IDs;details"
|
||||||
with open(output_csv, "w", encoding="utf-8") as f:
|
with open(output_csv, "w", encoding="utf-8") as f:
|
||||||
f.write(header + "\n")
|
f.write(header + "\n")
|
||||||
for item in items:
|
for item in items:
|
||||||
|
|||||||
@@ -3,4 +3,5 @@
|
|||||||
|
|
||||||
ezdxf==1.4.1
|
ezdxf==1.4.1
|
||||||
pytest==9.0.2
|
pytest==9.0.2
|
||||||
|
shapely==2.1.2
|
||||||
|
|
||||||
|
|||||||
@@ -1,109 +1,109 @@
|
|||||||
Elementnummer;TeileArt;TeileId;Bezeichnung;Anzahl;Merkmale
|
Elementnummer;TeileArt;TeileId;Bezeichnung;Planquadrat;Anzahl;Position;Boundingbox;Nachbarn;Merkmale
|
||||||
1;"Omniflo Kurve";"0000";"OFBogen :1";1;{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025"}
|
1;"Omniflo Kurve";"0000";"OFBogen :1";"A/A";1;"";"";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025"}
|
||||||
2;"Omniflo Kurve";"0000";"OFBogen :2";1;{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025+0_B10090"}
|
2;"Omniflo Kurve";"0000";"OFBogen :2";"A/A";1;"";"";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025+0_B10090"}
|
||||||
3;"Omniflo Kurve";"0000";"OFBogen :3";1;{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025+0_B10091"}
|
3;"Omniflo Kurve";"0000";"OFBogen :3";"A/A";1;"";"";"";{"Kurvenwinkel": 22.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104025+0_B10091"}
|
||||||
4;"Omniflo Kurve";"0000";"OFBogen :4";1;{"Kurvenwinkel": 45.0, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104021"}
|
4;"Omniflo Kurve";"0000";"OFBogen :4";"A/A";1;"";"";"";{"Kurvenwinkel": 45.0, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104021"}
|
||||||
5;"Omniflo Kurve";"0000";"OFBogen :5";1;{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104026"}
|
5;"Omniflo Kurve";"0000";"OFBogen :5";"A/A";1;"";"";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104026"}
|
||||||
6;"Omniflo Kurve";"0000";"OFBogen :6";1;{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104026+0_B10071"}
|
6;"Omniflo Kurve";"0000";"OFBogen :6";"A/A";1;"";"";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104026+0_B10071"}
|
||||||
7;"Omniflo Kurve";"0000";"OFBogen :7";1;{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104037"}
|
7;"Omniflo Kurve";"0000";"OFBogen :7";"A/A";1;"";"";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104037"}
|
||||||
8;"Omniflo Kurve";"0000";"OFBogen :8";1;{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104029"}
|
8;"Omniflo Kurve";"0000";"OFBogen :8";"A/A";1;"";"";"";{"Kurvenwinkel": 45.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104029"}
|
||||||
9;"Omniflo Kurve";"0000";"OFBogen :9";1;{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031"}
|
9;"Omniflo Kurve";"0000";"OFBogen :9";"A/A";1;"";"";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031"}
|
||||||
10;"Omniflo Kurve";"0000";"OFBogen :10";1;{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031+0_B10060"}
|
10;"Omniflo Kurve";"0000";"OFBogen :10";"A/A";1;"";"";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031+0_B10060"}
|
||||||
11;"Omniflo Kurve";"0000";"OFBogen :11";1;{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031+0_B10070"}
|
11;"Omniflo Kurve";"0000";"OFBogen :11";"B/A";1;"";"";"";{"Kurvenwinkel": 45.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104031+0_B10070"}
|
||||||
12;"Omniflo Kurve";"0000";"OFBogen :12";1;{"Kurvenwinkel": 67.5, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104024"}
|
12;"Omniflo Kurve";"0000";"OFBogen :12";"B/A";1;"";"";"";{"Kurvenwinkel": 67.5, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104024"}
|
||||||
13;"Omniflo Kurve";"0000";"OFBogen :13";1;{"Kurvenwinkel": 67.5, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104024+0_B10081"}
|
13;"Omniflo Kurve";"0000";"OFBogen :13";"B/A";1;"";"";"";{"Kurvenwinkel": 67.5, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104024+0_B10081"}
|
||||||
14;"Omniflo Kurve";"0000";"OFBogen :14";1;{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104027"}
|
14;"Omniflo Kurve";"0000";"OFBogen :14";"B/A";1;"";"";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104027"}
|
||||||
15;"Omniflo Kurve";"0000";"OFBogen :15";1;{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104027+0_B10080"}
|
15;"Omniflo Kurve";"0000";"OFBogen :15";"B/A";1;"";"";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104027+0_B10080"}
|
||||||
16;"Omniflo Kurve";"0000";"OFBogen :16";1;{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104028"}
|
16;"Omniflo Kurve";"0000";"OFBogen :16";"B/A";1;"";"";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104028"}
|
||||||
17;"Omniflo Kurve";"0000";"OFBogen :17";1;{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104065"}
|
17;"Omniflo Kurve";"0000";"OFBogen :17";"B/A";1;"";"";"";{"Kurvenwinkel": 67.5, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104065"}
|
||||||
18;"Omniflo Kurve";"0000";"OFBogen :18";1;{"Kurvenwinkel": 90.0, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104022"}
|
18;"Omniflo Kurve";"0000";"OFBogen :18";"B/A";1;"";"";"";{"Kurvenwinkel": 90.0, "Radius": 400.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104022"}
|
||||||
19;"Omniflo Kurve";"0000";"OFBogen :19";1;{"Kurvenwinkel": 90.0, "Radius": 500.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104030"}
|
19;"Omniflo Kurve";"0000";"OFBogen :19";"B/A";1;"";"";"";{"Kurvenwinkel": 90.0, "Radius": 500.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104030"}
|
||||||
20;"Omniflo Kurve";"0000";"OFBogen :20";1;{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033"}
|
20;"Omniflo Kurve";"0000";"OFBogen :20";"B/A";1;"";"";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033"}
|
||||||
21;"Omniflo Kurve";"0000";"OFBogen :21";1;{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033+0_B10040"}
|
21;"Omniflo Kurve";"0000";"OFBogen :21";"C/A";1;"";"";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033+0_B10040"}
|
||||||
22;"Omniflo Kurve";"0000";"OFBogen :22";1;{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033+0_B10050"}
|
22;"Omniflo Kurve";"0000";"OFBogen :22";"C/A";1;"";"";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104033+0_B10050"}
|
||||||
23;"Omniflo Kurve";"0000";"OFBogen :23";1;{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104035"}
|
23;"Omniflo Kurve";"0000";"OFBogen :23";"C/A";1;"";"";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104035"}
|
||||||
24;"Omniflo Kurve";"0000";"OFBogen :24";1;{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104041"}
|
24;"Omniflo Kurve";"0000";"OFBogen :24";"C/A";1;"";"";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104041"}
|
||||||
25;"Omniflo Kurve";"0000";"OFBogen :25";1;{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104034"}
|
25;"Omniflo Kurve";"0000";"OFBogen :25";"C/A";1;"";"";"";{"Kurvenwinkel": 90.0, "Radius": 630.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104034"}
|
||||||
26;"Omniflo Kurve";"0000";"OFBogen :26";1;{"Kurvenwinkel": 90.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104066"}
|
26;"Omniflo Kurve";"0000";"OFBogen :26";"C/A";1;"";"";"";{"Kurvenwinkel": 90.0, "Radius": 550.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104066"}
|
||||||
27;"Omniflo Kurve";"0000";"OFBogen :27";1;{"Kurvenwinkel": 180.0, "Radius": 650.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104043"}
|
27;"Omniflo Kurve";"0000";"OFBogen :27";"C/A";1;"";"";"";{"Kurvenwinkel": 180.0, "Radius": 650.0, "Höhe": "2000", "Drehung": 0.0, "SivasNummer": "821104043"}
|
||||||
28;"Omniflo Weiche";"0000";"OFWeiche :1";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342011"}
|
28;"Omniflo Weiche";"0000";"OFWeiche :1";"C/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342011"}
|
||||||
29;"Omniflo Weiche";"0000";"OFWeiche :2";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342001"}
|
29;"Omniflo Weiche";"0000";"OFWeiche :2";"C/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342001"}
|
||||||
30;"Omniflo Weiche";"0000";"OFWeiche :3";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342012"}
|
30;"Omniflo Weiche";"0000";"OFWeiche :3";"C/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342012"}
|
||||||
31;"Omniflo Weiche";"0000";"OFWeiche :4";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342002"}
|
31;"Omniflo Weiche";"0000";"OFWeiche :4";"D/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342002"}
|
||||||
32;"Omniflo Weiche";"0000";"OFWeiche :1";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342100"}
|
32;"Omniflo Weiche";"0000";"OFWeiche :1";"D/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342100"}
|
||||||
33;"Omniflo Weiche";"0000";"OFWeiche :2";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342101"}
|
33;"Omniflo Weiche";"0000";"OFWeiche :2";"D/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342101"}
|
||||||
34;"Omniflo Weiche";"0000";"OFWeiche :1";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342200"}
|
34;"Omniflo Weiche";"0000";"OFWeiche :1";"D/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342200"}
|
||||||
35;"Omniflo Weiche";"0000";"OFWeiche :2";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342201"}
|
35;"Omniflo Weiche";"0000";"OFWeiche :2";"D/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 22.5, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834342201"}
|
||||||
36;"Omniflo Weiche";"0000";"OFWeiche :5";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372001"}
|
36;"Omniflo Weiche";"0000";"OFWeiche :5";"D/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372001"}
|
||||||
37;"Omniflo Weiche";"0000";"OFWeiche :6";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372002"}
|
37;"Omniflo Weiche";"0000";"OFWeiche :6";"D/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372002"}
|
||||||
38;"Omniflo Weiche";"0000";"OFWeiche :7";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372002+0_BG090090"}
|
38;"Omniflo Weiche";"0000";"OFWeiche :7";"D/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372002+0_BG090090"}
|
||||||
39;"Omniflo Weiche";"0000";"OFWeiche :8";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372004"}
|
39;"Omniflo Weiche";"0000";"OFWeiche :8";"D/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372004"}
|
||||||
40;"Omniflo Weiche";"0000";"OFWeiche :9";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372005"}
|
40;"Omniflo Weiche";"0000";"OFWeiche :9";"D/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372005"}
|
||||||
41;"Omniflo Weiche";"0000";"OFWeiche :10";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372005+0_BG090090"}
|
41;"Omniflo Weiche";"0000";"OFWeiche :10";"E/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372005+0_BG090090"}
|
||||||
42;"Omniflo Weiche";"0000";"OFWeiche :11";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372007"}
|
42;"Omniflo Weiche";"0000";"OFWeiche :11";"E/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372007"}
|
||||||
43;"Omniflo Weiche";"0000";"OFWeiche :12";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372008"}
|
43;"Omniflo Weiche";"0000";"OFWeiche :12";"E/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372008"}
|
||||||
44;"Omniflo Weiche";"0000";"OFWeiche :13";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372008+0_BG190090"}
|
44;"Omniflo Weiche";"0000";"OFWeiche :13";"E/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372008+0_BG190090"}
|
||||||
45;"Omniflo Weiche";"0000";"OFWeiche :14";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372010"}
|
45;"Omniflo Weiche";"0000";"OFWeiche :14";"E/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372010"}
|
||||||
46;"Omniflo Weiche";"0000";"OFWeiche :15";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372011"}
|
46;"Omniflo Weiche";"0000";"OFWeiche :15";"E/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372011"}
|
||||||
47;"Omniflo Weiche";"0000";"OFWeiche :16";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372011+0_BG190090"}
|
47;"Omniflo Weiche";"0000";"OFWeiche :16";"E/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372011+0_BG190090"}
|
||||||
48;"Omniflo Weiche";"0000";"OFWeiche :17";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372021"}
|
48;"Omniflo Weiche";"0000";"OFWeiche :17";"E/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372021"}
|
||||||
49;"Omniflo Weiche";"0000";"OFWeiche :18";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372022"}
|
49;"Omniflo Weiche";"0000";"OFWeiche :18";"E/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372022"}
|
||||||
50;"Omniflo Weiche";"0000";"OFWeiche :19";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372024"}
|
50;"Omniflo Weiche";"0000";"OFWeiche :19";"E/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372024"}
|
||||||
51;"Omniflo Weiche";"0000";"OFWeiche :20";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372025"}
|
51;"Omniflo Weiche";"0000";"OFWeiche :20";"F/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372025"}
|
||||||
52;"Omniflo Weiche";"0000";"OFWeiche :21";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372027"}
|
52;"Omniflo Weiche";"0000";"OFWeiche :21";"F/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372027"}
|
||||||
53;"Omniflo Weiche";"0000";"OFWeiche :22";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372028"}
|
53;"Omniflo Weiche";"0000";"OFWeiche :22";"F/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372028"}
|
||||||
54;"Omniflo Weiche";"0000";"OFWeiche :23";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372028+0_BG080090"}
|
54;"Omniflo Weiche";"0000";"OFWeiche :23";"F/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372028+0_BG080090"}
|
||||||
55;"Omniflo Weiche";"0000";"OFWeiche :24";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372030"}
|
55;"Omniflo Weiche";"0000";"OFWeiche :24";"F/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372030"}
|
||||||
56;"Omniflo Weiche";"0000";"OFWeiche :25";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372031"}
|
56;"Omniflo Weiche";"0000";"OFWeiche :25";"F/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372031"}
|
||||||
57;"Omniflo Weiche";"0000";"OFWeiche :26";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372031+0_BG080090"}
|
57;"Omniflo Weiche";"0000";"OFWeiche :26";"F/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372031+0_BG080090"}
|
||||||
58;"Omniflo Weiche";"0000";"OFWeiche :27";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372047"}
|
58;"Omniflo Weiche";"0000";"OFWeiche :27";"F/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372047"}
|
||||||
59;"Omniflo Weiche";"0000";"OFWeiche :28";1;{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372048"}
|
59;"Omniflo Weiche";"0000";"OFWeiche :28";"F/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "1", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372048"}
|
||||||
60;"Omniflo Weiche";"0000";"OFWeiche :29";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372050"}
|
60;"Omniflo Weiche";"0000";"OFWeiche :29";"F/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372050"}
|
||||||
61;"Omniflo Weiche";"0000";"OFWeiche :30";1;{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372051"}
|
61;"Omniflo Weiche";"0000";"OFWeiche :30";"G/A";1;"";"";"";{"Weichentyp": "Einzelweiche", "Richtung": "2", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372051"}
|
||||||
62;"Omniflo Weiche";"0000";"OFWeiche :3";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372100"}
|
62;"Omniflo Weiche";"0000";"OFWeiche :3";"G/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372100"}
|
||||||
63;"Omniflo Weiche";"0000";"OFWeiche :4";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372101"}
|
63;"Omniflo Weiche";"0000";"OFWeiche :4";"G/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372101"}
|
||||||
64;"Omniflo Weiche";"0000";"OFWeiche :5";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090+834372101"}
|
64;"Omniflo Weiche";"0000";"OFWeiche :5";"G/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090+834372101"}
|
||||||
65;"Omniflo Weiche";"0000";"OFWeiche :6";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372101+0_BG090090"}
|
65;"Omniflo Weiche";"0000";"OFWeiche :6";"G/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372101+0_BG090090"}
|
||||||
66;"Omniflo Weiche";"0000";"OFWeiche :7";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090+834372101+0_BG090090"}
|
66;"Omniflo Weiche";"0000";"OFWeiche :7";"G/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090+834372101+0_BG090090"}
|
||||||
67;"Omniflo Weiche";"0000";"OFWeiche :8";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372103"}
|
67;"Omniflo Weiche";"0000";"OFWeiche :8";"G/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372103"}
|
||||||
68;"Omniflo Weiche";"0000";"OFWeiche :9";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372104"}
|
68;"Omniflo Weiche";"0000";"OFWeiche :9";"G/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372104"}
|
||||||
69;"Omniflo Weiche";"0000";"OFWeiche :10";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090+834372104"}
|
69;"Omniflo Weiche";"0000";"OFWeiche :10";"G/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090+834372104"}
|
||||||
70;"Omniflo Weiche";"0000";"OFWeiche :11";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372104+0_BG190090"}
|
70;"Omniflo Weiche";"0000";"OFWeiche :11";"G/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372104+0_BG190090"}
|
||||||
71;"Omniflo Weiche";"0000";"OFWeiche :12";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090+834372104+0_BG190090"}
|
71;"Omniflo Weiche";"0000";"OFWeiche :12";"H/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090+834372104+0_BG190090"}
|
||||||
72;"Omniflo Weiche";"0000";"OFWeiche :13";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372106"}
|
72;"Omniflo Weiche";"0000";"OFWeiche :13";"H/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372106"}
|
||||||
73;"Omniflo Weiche";"0000";"OFWeiche :14";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372107"}
|
73;"Omniflo Weiche";"0000";"OFWeiche :14";"H/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372107"}
|
||||||
74;"Omniflo Weiche";"0000";"OFWeiche :15";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372109"}
|
74;"Omniflo Weiche";"0000";"OFWeiche :15";"H/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372109"}
|
||||||
75;"Omniflo Weiche";"0000";"OFWeiche :16";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372110"}
|
75;"Omniflo Weiche";"0000";"OFWeiche :16";"H/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372110"}
|
||||||
76;"Omniflo Weiche";"0000";"OFWeiche :17";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090+834372110"}
|
76;"Omniflo Weiche";"0000";"OFWeiche :17";"H/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090+834372110"}
|
||||||
77;"Omniflo Weiche";"0000";"OFWeiche :18";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372110+0_BG080090"}
|
77;"Omniflo Weiche";"0000";"OFWeiche :18";"H/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372110+0_BG080090"}
|
||||||
78;"Omniflo Weiche";"0000";"OFWeiche :19";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090+834372110+0_BG080090"}
|
78;"Omniflo Weiche";"0000";"OFWeiche :19";"H/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090+834372110+0_BG080090"}
|
||||||
79;"Omniflo Weiche";"0000";"OFWeiche :20";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372115"}
|
79;"Omniflo Weiche";"0000";"OFWeiche :20";"H/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372115"}
|
||||||
80;"Omniflo Weiche";"0000";"OFWeiche :21";1;{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372116"}
|
80;"Omniflo Weiche";"0000";"OFWeiche :21";"H/A";1;"";"";"";{"Weichentyp": "Doppelweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372116"}
|
||||||
81;"Omniflo Weiche";"0000";"OFWeiche :3";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372200"}
|
81;"Omniflo Weiche";"0000";"OFWeiche :3";"I/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372200"}
|
||||||
82;"Omniflo Weiche";"0000";"OFWeiche :4";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372201"}
|
82;"Omniflo Weiche";"0000";"OFWeiche :4";"I/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372201"}
|
||||||
83;"Omniflo Weiche";"0000";"OFWeiche :5";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090+834372201"}
|
83;"Omniflo Weiche";"0000";"OFWeiche :5";"I/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090+834372201"}
|
||||||
84;"Omniflo Weiche";"0000";"OFWeiche :6";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372201+0_BG090090"}
|
84;"Omniflo Weiche";"0000";"OFWeiche :6";"I/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372201+0_BG090090"}
|
||||||
85;"Omniflo Weiche";"0000";"OFWeiche :7";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090+834372201+0_BG090090"}
|
85;"Omniflo Weiche";"0000";"OFWeiche :7";"I/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG090090+834372201+0_BG090090"}
|
||||||
86;"Omniflo Weiche";"0000";"OFWeiche :8";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372203"}
|
86;"Omniflo Weiche";"0000";"OFWeiche :8";"I/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372203"}
|
||||||
87;"Omniflo Weiche";"0000";"OFWeiche :9";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372204"}
|
87;"Omniflo Weiche";"0000";"OFWeiche :9";"I/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372204"}
|
||||||
88;"Omniflo Weiche";"0000";"OFWeiche :10";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090+834372204"}
|
88;"Omniflo Weiche";"0000";"OFWeiche :10";"I/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090+834372204"}
|
||||||
89;"Omniflo Weiche";"0000";"OFWeiche :11";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372204+0_BG190090"}
|
89;"Omniflo Weiche";"0000";"OFWeiche :11";"I/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372204+0_BG190090"}
|
||||||
90;"Omniflo Weiche";"0000";"OFWeiche :12";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090+834372204+0_BG190090"}
|
90;"Omniflo Weiche";"0000";"OFWeiche :12";"I/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 45.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG190090+834372204+0_BG190090"}
|
||||||
91;"Omniflo Weiche";"0000";"OFWeiche :13";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372206"}
|
91;"Omniflo Weiche";"0000";"OFWeiche :13";"J/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372206"}
|
||||||
92;"Omniflo Weiche";"0000";"OFWeiche :14";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372207"}
|
92;"Omniflo Weiche";"0000";"OFWeiche :14";"J/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372207"}
|
||||||
93;"Omniflo Weiche";"0000";"OFWeiche :15";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372209"}
|
93;"Omniflo Weiche";"0000";"OFWeiche :15";"J/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372209"}
|
||||||
94;"Omniflo Weiche";"0000";"OFWeiche :16";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372210"}
|
94;"Omniflo Weiche";"0000";"OFWeiche :16";"J/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372210"}
|
||||||
95;"Omniflo Weiche";"0000";"OFWeiche :17";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090+834372210"}
|
95;"Omniflo Weiche";"0000";"OFWeiche :17";"J/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090+834372210"}
|
||||||
96;"Omniflo Weiche";"0000";"OFWeiche :18";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372210+0_BG080090"}
|
96;"Omniflo Weiche";"0000";"OFWeiche :18";"J/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372210+0_BG080090"}
|
||||||
97;"Omniflo Weiche";"0000";"OFWeiche :19";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090+834372210+0_BG080090"}
|
97;"Omniflo Weiche";"0000";"OFWeiche :19";"J/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG080090+834372210+0_BG080090"}
|
||||||
98;"Omniflo Weiche";"0000";"OFWeiche :20";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372215"}
|
98;"Omniflo Weiche";"0000";"OFWeiche :20";"J/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372215"}
|
||||||
99;"Omniflo Weiche";"0000";"OFWeiche :21";1;{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372216"}
|
99;"Omniflo Weiche";"0000";"OFWeiche :21";"J/A";1;"";"";"";{"Weichentyp": "Dreiwegeweiche", "Richtung": "7", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372216"}
|
||||||
100;"Omniflo Weiche";"0000";"OFWeiche :1";1;{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372400"}
|
100;"Omniflo Weiche";"0000";"OFWeiche :1";"J/A";1;"";"";"";{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372400"}
|
||||||
101;"Omniflo Weiche";"0000";"OFWeiche :2";1;{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372403"}
|
101;"Omniflo Weiche";"0000";"OFWeiche :2";"K/A";1;"";"";"";{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372403"}
|
||||||
102;"Omniflo Weiche";"0000";"OFWeiche :3";1;{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372404"}
|
102;"Omniflo Weiche";"0000";"OFWeiche :3";"K/A";1;"";"";"";{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372404"}
|
||||||
103;"Omniflo Weiche";"0000";"OFWeiche :4";1;{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG071090+834372404+0_BG071090"}
|
103;"Omniflo Weiche";"0000";"OFWeiche :4";"K/A";1;"";"";"";{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG071090+834372404+0_BG071090"}
|
||||||
104;"Omniflo Weiche";"0000";"OFWeiche :5";1;{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG071090+834372404"}
|
104;"Omniflo Weiche";"0000";"OFWeiche :5";"K/A";1;"";"";"";{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "0_BG071090+834372404"}
|
||||||
105;"Omniflo Weiche";"0000";"OFWeiche :6";1;{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372404+0_BG071090"}
|
105;"Omniflo Weiche";"0000";"OFWeiche :6";"K/A";1;"";"";"";{"Weichentyp": "Dreifachweiche", "Richtung": "3", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": true, "SivasNummer": "834372404+0_BG071090"}
|
||||||
106;"Omniflo Weiche";"0000";"OFWeiche :1";1;{"Weichentyp": "Deltaweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372401"}
|
106;"Omniflo Weiche";"0000";"OFWeiche :1";"K/A";1;"";"";"";{"Weichentyp": "Deltaweiche", "Richtung": "7", "Weichenwinkel": 90.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372401"}
|
||||||
107;"Omniflo Weiche";"0000";"OFWeiche :1";1;{"Weichentyp": "Sternweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372420"}
|
107;"Omniflo Weiche";"0000";"OFWeiche :1";"K/A";1;"";"";"";{"Weichentyp": "Sternweiche", "Richtung": "3", "Weichenwinkel": 0.0, "Höhe": "2000", "Drehung": 0.0, "Antrieb Kurve": false, "SivasNummer": "834372420"}
|
||||||
108;"Omniflo Sum";"autogenerated_of_json";"Omniflo sum";1;{"Anzahl Bögen": 27, "Anzahl Weichengrundkörper": 0, "Anzahl Einwegweichen": 30, "Anzahl Deltaweichen": 7, "Anzahl Doppelweichen und Dreiwegeweichen": 42, "Anzahl Sternweichen": 1, "Gesamtlänge AP110": 0.0, "Gesamtlänge AP60": 0.0}
|
108;"Omniflo Sum";"autogenerated_of_json";"Omniflo sum";"";1;"";"";"";{"Anzahl Bögen": 27, "Anzahl Weichengrundkörper": 0, "Anzahl Einwegweichen": 30, "Anzahl Deltaweichen": 7, "Anzahl Doppelweichen und Dreiwegeweichen": 42, "Anzahl Sternweichen": 1, "Gesamtlänge AP110": 0.0, "Gesamtlänge AP60": 0.0}
|
||||||
|
|||||||
|
Can't render this file because it contains an unexpected character in line 2 and column 42.
|
+10
-10
@@ -202,8 +202,8 @@ class TestFoerdererExportCSV:
|
|||||||
|
|
||||||
def test_header_felder(self):
|
def test_header_felder(self):
|
||||||
"""CSV-Header muss korrekte Spaltenbezeichnungen haben."""
|
"""CSV-Header muss korrekte Spaltenbezeichnungen haben."""
|
||||||
expected = ["Elementnummer", "TeileArt", "TeileId",
|
expected = ["Elementnummer", "TeileArt", "TeileId", "Bezeichnung",
|
||||||
"Bezeichnung", "Anzahl", "Merkmale"]
|
"Planquadrat", "Anzahl", "Position", "Boundingbox", "Nachbarn", "Merkmale"]
|
||||||
for i, name in enumerate(expected):
|
for i, name in enumerate(expected):
|
||||||
assert self.header[i] == name, (
|
assert self.header[i] == name, (
|
||||||
f"Header[{i}]: erwartet '{name}', ist '{self.header[i]}'"
|
f"Header[{i}]: erwartet '{name}', ist '{self.header[i]}'"
|
||||||
@@ -226,19 +226,19 @@ class TestFoerdererExportCSV:
|
|||||||
def test_anzahl_spalte_ist_eins(self):
|
def test_anzahl_spalte_ist_eins(self):
|
||||||
"""Anzahl-Spalte muss fuer alle Zeilen '1' sein."""
|
"""Anzahl-Spalte muss fuer alle Zeilen '1' sein."""
|
||||||
for i, row in enumerate(self.rows):
|
for i, row in enumerate(self.rows):
|
||||||
if len(row) < 5:
|
if len(row) < 6:
|
||||||
continue
|
continue
|
||||||
assert row[4] == "1", (
|
assert row[5] == "1", (
|
||||||
f"Zeile {i + 2}: Anzahl={row[4]}, erwartet 1"
|
f"Zeile {i + 2}: Anzahl={row[5]}, erwartet 1"
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_merkmale_sind_valides_json(self):
|
def test_merkmale_sind_valides_json(self):
|
||||||
"""Merkmale-Spalte muss valides JSON enthalten."""
|
"""Merkmale-Spalte muss valides JSON enthalten."""
|
||||||
for i, row in enumerate(self.rows):
|
for i, row in enumerate(self.rows):
|
||||||
if len(row) < 6:
|
if len(row) < 10:
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
json.loads(row[5])
|
json.loads(row[9])
|
||||||
except json.JSONDecodeError as e:
|
except json.JSONDecodeError as e:
|
||||||
pytest.fail(f"Zeile {i + 2}: Merkmale ist kein valides JSON: {e}")
|
pytest.fail(f"Zeile {i + 2}: Merkmale ist kein valides JSON: {e}")
|
||||||
|
|
||||||
@@ -247,9 +247,9 @@ class TestFoerdererExportCSV:
|
|||||||
required = {"Typ", "Winkel", "DeltaH_mm", "DeltaL_mm",
|
required = {"Typ", "Winkel", "DeltaH_mm", "DeltaL_mm",
|
||||||
"L_VF_m", "Hoehe_Von_mm", "Hoehe_Bis_mm"}
|
"L_VF_m", "Hoehe_Von_mm", "Hoehe_Bis_mm"}
|
||||||
for i, row in enumerate(self.rows):
|
for i, row in enumerate(self.rows):
|
||||||
if len(row) < 6:
|
if len(row) < 10:
|
||||||
continue
|
continue
|
||||||
merkmale = json.loads(row[5])
|
merkmale = json.loads(row[9])
|
||||||
missing = required - set(merkmale.keys())
|
missing = required - set(merkmale.keys())
|
||||||
assert not missing, (
|
assert not missing, (
|
||||||
f"Zeile {i + 2}: Fehlende Merkmale-Felder: {missing}"
|
f"Zeile {i + 2}: Fehlende Merkmale-Felder: {missing}"
|
||||||
@@ -290,7 +290,7 @@ class TestFoerdererExportSivas:
|
|||||||
def test_header_felder(self):
|
def test_header_felder(self):
|
||||||
"""Sivas-CSV-Header muss korrekte Spalten haben."""
|
"""Sivas-CSV-Header muss korrekte Spalten haben."""
|
||||||
expected = ["Nr", "TeileArt", "SivasNummer", "Bezeichnung",
|
expected = ["Nr", "TeileArt", "SivasNummer", "Bezeichnung",
|
||||||
"Dispogruppe", "Anzahl", "Laenge[mm]", "Hoehe[m]", "details"]
|
"Dispogruppe", "Anzahl", "Laenge[mm]", "details"]
|
||||||
for i, name in enumerate(expected):
|
for i, name in enumerate(expected):
|
||||||
assert self.header[i] == name, (
|
assert self.header[i] == name, (
|
||||||
f"Header[{i}]: erwartet '{name}', ist '{self.header[i]}'"
|
f"Header[{i}]: erwartet '{name}', ist '{self.header[i]}'"
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ class TestOmnifloExportUnit:
|
|||||||
out_dir = _output_dir()
|
out_dir = _output_dir()
|
||||||
os.makedirs(out_dir, exist_ok=True)
|
os.makedirs(out_dir, exist_ok=True)
|
||||||
csv_path = os.path.join(out_dir, "omniflo_export.csv")
|
csv_path = os.path.join(out_dir, "omniflo_export.csv")
|
||||||
header = "Elementnummer;TeileArt;TeileId;Bezeichnung;Anzahl;Merkmale"
|
header = "Elementnummer;TeileArt;TeileId;Bezeichnung;Planquadrat;Anzahl;Position;Boundingbox;Nachbarn;Merkmale"
|
||||||
with open(csv_path, "w", encoding="utf-8") as f:
|
with open(csv_path, "w", encoding="utf-8") as f:
|
||||||
f.write(header + "\n")
|
f.write(header + "\n")
|
||||||
for item in self.items:
|
for item in self.items:
|
||||||
@@ -333,7 +333,7 @@ def _reference_dir():
|
|||||||
|
|
||||||
def _normalize_row(line):
|
def _normalize_row(line):
|
||||||
"""Splittet eine CSV-Zeile und ersetzt die TeileId (UUID) durch Platzhalter."""
|
"""Splittet eine CSV-Zeile und ersetzt die TeileId (UUID) durch Platzhalter."""
|
||||||
cols = line.strip().split(";", 5)
|
cols = line.strip().split(";", 9)
|
||||||
if len(cols) >= 3:
|
if len(cols) >= 3:
|
||||||
cols[2] = "<ID>"
|
cols[2] = "<ID>"
|
||||||
return cols
|
return cols
|
||||||
|
|||||||
Reference in New Issue
Block a user