This commit is contained in:
2026-05-11 11:40:47 +02:00
19 changed files with 2675 additions and 81 deletions
+2 -12
View File
@@ -10,24 +10,14 @@
(if (getenv "DXFM_BLOCKS")
(setq modul-pfad (strcat (getenv "DXFM_BLOCKS") "/"))
(progn
(alert "Umgebungsvariable DXFM_BLOCKS nicht gesetzt!\nBitte zuerst bin\\setenv.bat ausfuehren.")
(exit)
)
(progn
(alert
"DXFM_BLOCKS nicht gesetzt!\n\n"
"Bitte fuehren Sie zuerst bin\\setenv.bat aus,\n"
"oder setzen Sie den Pfad manuell mit:\n"
"(setenv \"DXFM_BLOCKS\" \"C:/Users/y.wang/Documents/dxfmakros/Blocks/")"
)
(alert "DXFM_BLOCKS nicht gesetzt!\nBitte zuerst bin\\setenv.bat ausfuehren.")
(exit)
)
)
;; block-pfad neu setzen
(setq *block-path* (getenv "DXFM_BLOCKS"))
(princ (strcat "\nBlock-Pfad: " block-pfad))
(princ (strcat "\nBlock-Pfad: " *block-path*))
;; Basispunkt: Linker Kreis, linkester Tangentenpunkt (links Mitte)
;; ============================================
+878 -38
View File
@@ -1,26 +1,555 @@
;; ============================================================
;; OMNIFLO JSON-DATEN LADEN UND ABFRAGEN
;; Liest omniflo_boegen.json und omniflo_weichen.json ein.
;; Daten werden als Listen von Assoziationslisten gespeichert.
;;
;; Globale Variablen:
;; *OMNI-BOEGEN* - Liste aller Boegen-Eintraege
;; *OMNI-WEICHEN* - Liste aller Weichen-Eintraege
;;
;; Funktionen:
;; (omni:load-data) - Beide JSON-Dateien laden
;; (omni:get-bogen sivasid) - Bogen-Info zu einer SivasId
;; (omni:get-weiche sivasid) - Weichen-Info zu einer SivasId
;; (omni:filter lst key wert) - Eintraege nach Key/Wert filtern
;; ============================================================
;; --- Datei zeilenweise einlesen ---
(defun omni:read-file-lines (datei / f zeile ergebnis)
(setq f (open datei "r"))
(if (null f)
(progn
(princ (strcat "\n[OMNI] FEHLER: Datei nicht gefunden: " datei))
nil
)
(progn
(setq ergebnis nil)
(while (setq zeile (read-line f))
(setq ergebnis (cons zeile ergebnis))
)
(close f)
(reverse ergebnis)
)
)
)
;; --- Whitespace und Komma am Ende einer Zeile entfernen ---
(defun omni:trim (s / len ch)
(setq s (vl-string-trim " \t\r\n" s))
(setq len (strlen s))
(if (and (> len 0) (= (substr s len 1) ","))
(setq s (substr s 1 (1- len)))
)
(vl-string-trim " \t\r\n" s)
)
;; --- JSON-Wert parsen (String, Zahl, null) ---
(defun omni:parse-value (val-str / len)
(setq val-str (omni:trim val-str))
(cond
((= val-str "null") nil)
((= (substr val-str 1 1) "\"")
;; String: Anfuehrungszeichen entfernen
(setq len (strlen val-str))
(if (and (> len 1) (= (substr val-str len 1) "\""))
(substr val-str 2 (- len 2))
val-str
)
)
(T
;; Zahl
(if (vl-string-search "." val-str)
(atof val-str)
(atoi val-str)
)
)
)
)
;; --- Eine Key-Value-Zeile parsen -> dotted pair oder nil ---
(defun omni:parse-kv-line (zeile / pos key rest val)
(setq zeile (omni:trim zeile))
;; Muss mit " beginnen (Key)
(if (and (> (strlen zeile) 0) (= (substr zeile 1 1) "\""))
(progn
;; Key extrahieren: zweites Anfuehrungszeichen finden
;; vl-string-search ist 0-basiert, substr ist 1-basiert
(setq pos (vl-string-search "\"" zeile 1))
(if pos
(progn
(setq key (substr zeile 2 (1- pos)))
;; Rest nach dem schliessenden " extrahieren
(setq rest (substr zeile (+ pos 2)))
;; ":" im Rest finden
(setq pos (vl-string-search ":" rest))
(if pos
(progn
(setq val (substr rest (+ pos 2)))
(cons key (omni:parse-value val))
)
)
)
)
)
)
)
;; --- JSON-Array von flachen Objekten parsen ---
(defun omni:parse-json-array (zeilen / in-obj obj ergebnis zeile kv trimmed)
(setq in-obj nil
obj nil
ergebnis nil
)
(foreach zeile zeilen
(setq trimmed (omni:trim zeile))
(cond
;; Objekt-Start
((= trimmed "{")
(setq in-obj T
obj nil
)
)
;; Objekt-Ende
((or (= trimmed "}") (= trimmed "},"))
(if (and in-obj obj)
(setq ergebnis (cons (reverse obj) ergebnis))
)
(setq in-obj nil)
)
;; Key-Value-Zeile innerhalb eines Objekts
(in-obj
(setq kv (omni:parse-kv-line zeile))
(if kv (setq obj (cons kv obj)))
)
)
)
(reverse ergebnis)
)
;; --- JSON-Datei laden und als Liste von Alists zurueckgeben ---
(defun omni:load-json (datei / zeilen)
(setq zeilen (omni:read-file-lines datei))
(if zeilen
(omni:parse-json-array zeilen)
)
)
;; --- Beide Datensaetze laden ---
(defun omni:load-data ( / data-pfad f-boegen f-weichen)
(setq data-pfad (getenv "DXFM_DATA"))
(if (null data-pfad)
(progn
(princ "\n[OMNI] FEHLER: DXFM_DATA nicht gesetzt!")
nil
)
(progn
;; Boegen laden
(setq f-boegen (strcat data-pfad "/json/omniflo_boegen.json"))
(setq *OMNI-BOEGEN* (omni:load-json f-boegen))
(if *OMNI-BOEGEN*
(princ (strcat "\n[OMNI] " (itoa (length *OMNI-BOEGEN*)) " Boegen geladen."))
(princ (strcat "\n[OMNI] WARNUNG: Keine Boegen geladen aus " f-boegen))
)
;; Weichen laden
(setq f-weichen (strcat data-pfad "/json/omniflo_weichen.json"))
(setq *OMNI-WEICHEN* (omni:load-json f-weichen))
(if *OMNI-WEICHEN*
(princ (strcat "\n[OMNI] " (itoa (length *OMNI-WEICHEN*)) " Weichen geladen."))
(princ (strcat "\n[OMNI] WARNUNG: Keine Weichen geladen aus " f-weichen))
)
T
)
)
)
;; --- SivasId zu String konvertieren (fuer Vergleich) ---
(defun omni:sivasid-to-str (id)
(cond
((= (type id) 'STR) id)
((= (type id) 'INT) (itoa id))
((= (type id) 'REAL) (itoa (fix id)))
(T "")
)
)
;; --- Eintrag anhand SivasId in einer Liste suchen ---
(defun omni:get-by-sivasid (lst sivasid / such-str eintrag sivasnr gefunden)
(setq such-str (omni:sivasid-to-str sivasid))
(setq gefunden nil)
(foreach eintrag lst
(if (null gefunden)
(progn
(setq sivasnr (cdr (assoc "Sivasnr" eintrag)))
(if (= (omni:sivasid-to-str sivasnr) such-str)
(setq gefunden eintrag)
)
)
)
)
gefunden
)
;; --- Bogen anhand SivasId abfragen ---
;; Rueckgabe: Assoziationsliste mit allen Eigenschaften oder nil
;; Beispiel: (omni:get-bogen 821104025)
;; -> (("Sivasnr" . 821104025) ("ProfilTyp" . "APB 110 R 550/22,5...") ...)
(defun omni:get-bogen (sivasid)
(if (null *OMNI-BOEGEN*) (omni:load-data))
(omni:get-by-sivasid *OMNI-BOEGEN* sivasid)
)
;; --- Weiche anhand SivasId abfragen ---
;; Rueckgabe: Assoziationsliste mit allen Eigenschaften oder nil
;; Beispiel: (omni:get-weiche 834372001)
;; -> (("Sivasnr" . 834372001) ("ProfilTyp" . "WEICHE S 45...") ...)
(defun omni:get-weiche (sivasid)
(if (null *OMNI-WEICHEN*) (omni:load-data))
(omni:get-by-sivasid *OMNI-WEICHEN* sivasid)
)
;; --- Eintraege nach beliebigem Key/Wert filtern ---
;; lst = *OMNI-BOEGEN* oder *OMNI-WEICHEN*
;; key = Schluesselname z.B. "KurvenWinkel"
;; wert = Gesuchter Wert z.B. 45
;; Rueckgabe: Liste aller passenden Eintraege
;;
;; Beispiel: (omni:filter *OMNI-BOEGEN* "KurvenWinkel" 45)
;; -> Liste aller 45-Grad-Boegen
;; Beispiel: (omni:filter *OMNI-WEICHEN* "WeichenTyp" "Doppelweiche")
;; -> Liste aller Doppelweichen
(defun omni:filter (lst key wert / eintrag val ergebnis)
(setq ergebnis nil)
(foreach eintrag lst
(setq val (cdr (assoc key eintrag)))
(if (equal val wert)
(setq ergebnis (cons eintrag ergebnis))
)
)
(reverse ergebnis)
)
;; --- Einzelnen Wert aus einem Eintrag lesen ---
;; eintrag = Assoziationsliste (Rueckgabe von omni:get-bogen etc.)
;; key = Schluesselname z.B. "Radius"
;; Beispiel: (omni:val (omni:get-bogen 821104025) "Radius") -> 550
(defun omni:val (eintrag key)
(cdr (assoc key eintrag))
)
;; --- SivasNummern aller Boegen fuer einen bestimmten Winkel ---
;; winkel = KurvenWinkel z.B. 90, 45, 22.5
;; Rueckgabe: Liste von SivasIds (gemischt INT/STR)
;; Beispiel: (omni:boegen-ids 45) -> (821104021 821104026 "821104026+0_B10071" ...)
(defun omni:boegen-ids (winkel / lst eintrag ergebnis)
(if (null *OMNI-BOEGEN*) (omni:load-data))
(setq ergebnis nil)
(foreach eintrag *OMNI-BOEGEN*
(if (equal (cdr (assoc "KurvenWinkel" eintrag)) winkel)
(setq ergebnis (cons (cdr (assoc "Sivasnr" eintrag)) ergebnis))
)
)
(reverse ergebnis)
)
;; --- SivasNummern aller Boegen, gruppiert nach Winkel ---
;; Rueckgabe: Assoziationsliste ((180 . (id ...)) (90 . (id ...)) ...)
;; Beispiel: (omni:boegen-ids-alle)
;; -> ((180 821104043) (90 821104022 821104030 ...) (67.5 ...) (45 ...) (22.5 ...))
(defun omni:boegen-ids-alle ()
(list
(cons 180 (omni:boegen-ids 180))
(cons 90 (omni:boegen-ids 90))
(cons 67.5 (omni:boegen-ids 67.5))
(cons 45 (omni:boegen-ids 45))
(cons 22.5 (omni:boegen-ids 22.5))
)
)
;; --- SivasNummern von Weichen nach Winkel und WeichenTyp ---
;; winkel = KurvenWinkel z.B. 90, 45
;; weichentyp = "Einzelweiche", "Doppelweiche", "Dreiwegeweiche"
;; Beispiel: (omni:weichen-ids 90 "Einzelweiche")
(defun omni:weichen-ids (winkel weichentyp / eintrag ergebnis)
(if (null *OMNI-WEICHEN*) (omni:load-data))
(setq ergebnis nil)
(foreach eintrag *OMNI-WEICHEN*
(if (and (equal (cdr (assoc "KurvenWinkel" eintrag)) winkel)
(= (cdr (assoc "WeichenTyp" eintrag)) weichentyp)
)
(setq ergebnis (cons (cdr (assoc "Sivasnr" eintrag)) ergebnis))
)
)
(reverse ergebnis)
)
;; --- SivasNummern von Weichenkombinationen (Delta/Star) ---
;; typ = "DELTA" oder "STAR"
;; Filtert anhand ProfilTyp-Inhalt
(defun omni:weichen-kombi-ids (typ / eintrag ergebnis profil)
(if (null *OMNI-WEICHEN*) (omni:load-data))
(setq ergebnis nil)
(foreach eintrag *OMNI-WEICHEN*
(setq profil (cdr (assoc "ProfilTyp" eintrag)))
(if (and profil (vl-string-search typ profil))
(setq ergebnis (cons (cdr (assoc "Sivasnr" eintrag)) ergebnis))
)
)
(reverse ergebnis)
)
;; --- Alle Weichen-SivasNummern gruppiert ---
;; Rueckgabe: Assoziationsliste nach Kategorie
;; Beispiel: (omni:weichen-ids-alle)
;; -> (("W90-Einfach" id1 id2 ...)
;; ("W90-Doppel" ...)
;; ...
;; ("WKomb-Delta" ...)
;; ("WKomb-Star" ...))
(defun omni:weichen-ids-alle ()
(list
;; 90 Grad
(cons "W90-Einfach" (omni:weichen-ids 90 "Einzelweiche"))
(cons "W90-Doppel" (omni:weichen-ids 90 "Doppelweiche"))
(cons "W90-Dreiwege" (omni:weichen-ids 90 "Dreiwegeweiche"))
;; 45 Grad
(cons "W45-Einfach" (omni:weichen-ids 45 "Einzelweiche"))
(cons "W45-Doppel" (omni:weichen-ids 45 "Doppelweiche"))
(cons "W45-Dreiwege" (omni:weichen-ids 45 "Dreiwegeweiche"))
;; Parallel (KurvenWinkel = 0)
(cons "WP-Einfach" (omni:weichen-ids 0 "Einzelweiche"))
(cons "WP-Doppel" (omni:weichen-ids 0 "Doppelweiche"))
(cons "WP-Dreiwege" (omni:weichen-ids 0 "Dreiwegeweiche"))
;; Weichenkoerper (KurvenWinkel = 22.5)
(cons "WK-Einfach" (omni:weichen-ids 22.5 "Einzelweiche"))
(cons "WK-Doppel" (omni:weichen-ids 22.5 "Doppelweiche"))
(cons "WK-Dreiwege" (omni:weichen-ids 22.5 "Dreiwegeweiche"))
;; Weichenkombinationen
(cons "WKomb-Delta" (omni:weichen-kombi-ids "DELTA"))
(cons "WKomb-Star" (omni:weichen-kombi-ids "STAR"))
)
)
;; --- BricsCAD-Befehl: Daten laden ---
(defun c:OMNI_LOAD ()
(omni:load-data)
(princ)
)
;; --- BricsCAD-Befehl: Bogen-Info anzeigen ---
(defun c:OMNI_INFO_BOGEN ( / id eintrag)
(if (null *OMNI-BOEGEN*) (omni:load-data))
(setq id (getstring T "\nSivasId des Bogens eingeben: "))
(if (= id "") (princ "\nAbgebrochen.")
(progn
;; Versuch als Zahl, dann als String
(setq eintrag (omni:get-bogen (if (/= (atoi id) 0) (atoi id) id)))
(if eintrag
(progn
(princ (strcat "\n ProfilTyp: " (omni:sivasid-to-str (omni:val eintrag "ProfilTyp"))))
(princ (strcat "\n Radius: " (itoa (fix (omni:val eintrag "Radius")))))
(princ (strcat "\n KurvenWinkel: " (rtos (omni:val eintrag "KurvenWinkel") 2 1)))
(princ (strcat "\n Breite: " (itoa (fix (omni:val eintrag "Breite")))))
(princ (strcat "\n Laenge: " (itoa (fix (omni:val eintrag "Länge")))))
(princ (strcat "\n Antriebsart: " (itoa (fix (omni:val eintrag "Antriebsart")))))
)
(princ (strcat "\nKein Bogen mit SivasId '" id "' gefunden."))
)
)
)
(princ)
)
;; --- BricsCAD-Befehl: Weichen-Info anzeigen ---
(defun c:OMNI_INFO_WEICHE ( / id eintrag wkl)
(if (null *OMNI-WEICHEN*) (omni:load-data))
(setq id (getstring T "\nSivasId der Weiche eingeben: "))
(if (= id "") (princ "\nAbgebrochen.")
(progn
(setq eintrag (omni:get-weiche (if (/= (atoi id) 0) (atoi id) id)))
(if eintrag
(progn
(princ (strcat "\n ProfilTyp: " (omni:sivasid-to-str (omni:val eintrag "ProfilTyp"))))
(princ (strcat "\n WeichenTyp: " (omni:sivasid-to-str (omni:val eintrag "WeichenTyp"))))
(setq wkl (omni:val eintrag "KurvenWinkel"))
(princ (strcat "\n KurvenWinkel: " (if (= (type wkl) 'INT) (itoa wkl) (rtos wkl 2 1))))
(princ (strcat "\n Schaltungstyp: " (omni:sivasid-to-str (omni:val eintrag "Schaltungstyp"))))
(princ (strcat "\n Breite: " (itoa (fix (omni:val eintrag "Breite")))))
(princ (strcat "\n Laenge: " (itoa (fix (omni:val eintrag "Länge")))))
(princ (strcat "\n KurvenRichtung: " (itoa (fix (omni:val eintrag "KurvenRichtung")))))
(if (omni:val eintrag "WeichenkörperLänge")
(princ (strcat "\n WK-Laenge: " (rtos (omni:val eintrag "WeichenkörperLänge") 2 1)))
)
)
(princ (strcat "\nKeine Weiche mit SivasId '" id "' gefunden."))
)
)
)
(princ)
)
;; ============================================================
;; OMNIFLO BOGEN-DIALOG
;; Generischer Dialog fuer Bogen-Auswahl nach Winkel
;; ============================================================
;; --- Detail-Felder im Dialog aktualisieren ---
;; Wird bei Dropdown-Aenderung aufgerufen (action_tile callback)
(defun omni:bogen-dlg-update (idx-str / idx eintrag wkl)
(setq idx (atoi idx-str))
(setq eintrag (nth idx *OMNI-DLG-BOEGEN*))
(if eintrag
(progn
(set_tile "val_sivasnr"
(omni:sivasid-to-str (omni:val eintrag "Sivasnr")))
(setq wkl (omni:val eintrag "KurvenWinkel"))
(set_tile "val_winkel"
(if (= (type wkl) 'INT) (strcat (itoa wkl) " Grad")
(strcat (rtos wkl 2 1) " Grad")
)
)
(set_tile "val_radius"
(itoa (fix (omni:val eintrag "Radius"))))
(set_tile "val_breite"
(itoa (fix (omni:val eintrag "Breite"))))
(set_tile "val_laenge"
(itoa (fix (omni:val eintrag "Länge"))))
)
)
)
;; --- Bogen-Auswahl-Dialog oeffnen ---
;; winkel = KurvenWinkel (90, 67.5, 45, 22.5, 180)
;; Rueckgabe: gewaehlter Bogen-Eintrag (alist) oder nil bei Abbruch
(defun omni:bogen-dialog (winkel / dcl-pfad dat boegen-liste
profil-liste ergebnis)
(if (null *OMNI-BOEGEN*) (omni:load-data))
;; Boegen nach Winkel filtern
(setq boegen-liste (omni:filter *OMNI-BOEGEN* "KurvenWinkel" winkel))
(if (null boegen-liste)
(progn
(alert (strcat "Keine Boegen fuer "
(if (= (type winkel) 'INT) (itoa winkel) (rtos winkel 2 1))
" Grad gefunden."))
nil
)
(progn
;; In globaler Variable fuer Dialog-Callbacks speichern
(setq *OMNI-DLG-BOEGEN* boegen-liste)
;; ProfilTyp-Liste fuer Dropdown aufbauen
(setq profil-liste
(mapcar '(lambda (e) (cdr (assoc "ProfilTyp" e))) boegen-liste))
;; DCL laden
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/omniflo_boegen.dcl"))
(setq dat (load_dialog dcl-pfad))
(if (not (new_dialog "omniflo_boegen" dat))
(progn (alert "Bogen-Dialog konnte nicht geladen werden.") nil)
(progn
;; Dropdown befuellen
(start_list "bogenart")
(mapcar 'add_list profil-liste)
(end_list)
(set_tile "bogenart" "0")
;; Startwerte anzeigen
(omni:bogen-dlg-update "0")
;; Callback bei Dropdown-Aenderung
(action_tile "bogenart" "(omni:bogen-dlg-update $value)")
;; OK/Abbrechen
(action_tile "accept"
"(setq ergebnis (atoi (get_tile \"bogenart\"))) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(start_dialog)
(unload_dialog dat)
;; Gewaehlten Eintrag zurueckgeben
(if ergebnis
(nth ergebnis *OMNI-DLG-BOEGEN*)
nil
)
)
)
)
)
)
;; ============================================================
;; OMNIFLO MODUL-BEFEHLE
;; ============================================================
;; --- Omniflo / Boegen ---
(defun c:OMNI_APB_630_90 ()
(princ "\n[DUMMY] APB 110 R 630/90 800/800 (821104033)")
(defun c:OMNI_APB_630_90 ( / eintrag)
(setq eintrag (omni:bogen-dialog 90))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[BOGEN] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_APB_550_675 ()
(princ "\n[DUMMY] APB 110 R 550/67.5 432 (821104027)")
(defun c:OMNI_APB_550_675 ( / eintrag)
(setq eintrag (omni:bogen-dialog 67.5))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[BOGEN] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_APB_630_45 ()
(princ "\n[DUMMY] APB 110 R 630/45 400 (821104031)")
(defun c:OMNI_APB_630_45 ( / eintrag)
(setq eintrag (omni:bogen-dialog 45))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[BOGEN] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_APB_550_225 ()
(princ "\n[DUMMY] APB 110 R 550/22.5 84 (821104025)")
(defun c:OMNI_APB_550_225 ( / eintrag)
(setq eintrag (omni:bogen-dialog 22.5))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[BOGEN] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_APB_650_180 ()
(princ "\n[DUMMY] APB 110 R 650/180 L=150 (821104043)")
(defun c:OMNI_APB_650_180 ( / eintrag)
(setq eintrag (omni:bogen-dialog 180))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[BOGEN] Abgebrochen.")
)
(princ)
)
@@ -30,78 +559,389 @@
(princ)
)
;; ============================================================
;; OMNIFLO WEICHEN-DIALOG
;; Generischer Dialog fuer Weichen-Auswahl nach Winkel/Typ
;; mit Filter fuer Schaltungstyp und Richtung
;; ============================================================
;; --- Aktuelle Filterwerte aus Radio-Buttons lesen ---
(defun omni:weichen-get-filter ( / sch ri)
(setq sch "alle")
(if (= (get_tile "sch_m") "1") (setq sch "M"))
(if (= (get_tile "sch_p") "1") (setq sch "P"))
(setq ri "alle")
(if (= (get_tile "ri_links") "1") (setq ri "1"))
(if (= (get_tile "ri_rechts") "1") (setq ri "2"))
(list sch ri)
)
;; --- Gefilterte Weichen-Liste aufbauen ---
;; basis-liste = alle Weichen fuer den gewaehlten Winkel/Typ
;; sch-filter = "M", "P" oder "alle"
;; ri-filter = "1", "2" oder "alle"
(defun omni:weichen-filter-liste (basis-liste sch-filter ri-filter / eintrag sch kr ergebnis)
(setq ergebnis nil)
(foreach eintrag basis-liste
(setq sch (cdr (assoc "Schaltungstyp" eintrag)))
(setq kr (cdr (assoc "KurvenRichtung" eintrag)))
(if (and
(or (= sch-filter "alle") (= sch sch-filter))
(or (= ri-filter "alle")
(= (omni:sivasid-to-str kr) ri-filter))
)
(setq ergebnis (cons eintrag ergebnis))
)
)
(reverse ergebnis)
)
;; --- Dropdown mit gefilterter Liste neu befuellen ---
(defun omni:weichen-dlg-refresh ( / filter sch-f ri-f gefiltert profil-liste)
(setq filter (omni:weichen-get-filter))
(setq sch-f (car filter))
(setq ri-f (cadr filter))
(setq gefiltert (omni:weichen-filter-liste *OMNI-DLG-WEICHEN-BASIS* sch-f ri-f))
(setq *OMNI-DLG-WEICHEN* gefiltert)
;; Dropdown neu befuellen
(setq profil-liste
(mapcar '(lambda (e) (cdr (assoc "ProfilTyp" e))) gefiltert))
(start_list "profiltyp")
(mapcar 'add_list profil-liste)
(end_list)
;; Ersten Eintrag anzeigen (falls vorhanden)
(if gefiltert
(progn
(set_tile "profiltyp" "0")
(omni:weichen-dlg-update "0")
)
(progn
(set_tile "val_sivasnr" "---")
(set_tile "val_winkel" "---")
(set_tile "val_breite" "---")
(set_tile "val_laenge" "---")
)
)
)
;; --- Detail-Felder im Weichen-Dialog aktualisieren ---
(defun omni:weichen-dlg-update (idx-str / idx eintrag wkl)
(setq idx (atoi idx-str))
(setq eintrag (nth idx *OMNI-DLG-WEICHEN*))
(if eintrag
(progn
(set_tile "val_sivasnr"
(omni:sivasid-to-str (omni:val eintrag "Sivasnr")))
(setq wkl (omni:val eintrag "KurvenWinkel"))
(set_tile "val_winkel"
(if (= (type wkl) 'INT) (strcat (itoa wkl) " Grad")
(strcat (rtos wkl 2 1) " Grad")
)
)
(set_tile "val_breite"
(itoa (fix (omni:val eintrag "Breite"))))
(set_tile "val_laenge"
(itoa (fix (omni:val eintrag "Länge"))))
)
)
)
;; --- Weichen-Auswahl-Dialog oeffnen ---
;; winkel = KurvenWinkel (90, 45, 0, 22.5)
;; weichentyp = "Einzelweiche", "Doppelweiche", "Dreiwegeweiche" oder nil fuer alle
;; Rueckgabe: gewaehlter Weichen-Eintrag (alist) oder nil bei Abbruch
(defun omni:weichen-dialog (winkel weichentyp / dcl-pfad dat basis-liste
profil-liste ergebnis)
(if (null *OMNI-WEICHEN*) (omni:load-data))
;; Weichen nach Winkel filtern (nil = alle Winkel)
(if winkel
(setq basis-liste (omni:filter *OMNI-WEICHEN* "KurvenWinkel" winkel))
(setq basis-liste *OMNI-WEICHEN*)
)
;; Optional nach WeichenTyp filtern
(if weichentyp
(setq basis-liste
(vl-remove-if-not
'(lambda (e) (= (cdr (assoc "WeichenTyp" e)) weichentyp))
basis-liste))
)
(if (null basis-liste)
(progn
(alert (strcat "Keine Weichen fuer "
(cond
((null winkel) "alle Winkel")
((= (type winkel) 'INT) (strcat (itoa winkel) " Grad"))
(T (strcat (rtos winkel 2 1) " Grad"))
)
(if weichentyp (strcat " / " weichentyp) "")
" gefunden."))
nil
)
(progn
;; Basis-Liste und gefilterte Liste in globalen Variablen speichern
(setq *OMNI-DLG-WEICHEN-BASIS* basis-liste)
(setq *OMNI-DLG-WEICHEN* basis-liste)
;; ProfilTyp-Liste fuer Dropdown aufbauen
(setq profil-liste
(mapcar '(lambda (e) (cdr (assoc "ProfilTyp" e))) basis-liste))
;; DCL laden
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/omniflo_weichen.dcl"))
(setq dat (load_dialog dcl-pfad))
(if (not (new_dialog "omniflo_weichen" dat))
(progn (alert "Weichen-Dialog konnte nicht geladen werden.") nil)
(progn
;; Dropdown befuellen
(start_list "profiltyp")
(mapcar 'add_list profil-liste)
(end_list)
(set_tile "profiltyp" "0")
;; Startwerte anzeigen
(omni:weichen-dlg-update "0")
;; Callback bei Dropdown-Aenderung
(action_tile "profiltyp" "(omni:weichen-dlg-update $value)")
;; Callbacks fuer Filter-Radio-Buttons (alle loesen Refresh aus)
(action_tile "sch_alle" "(omni:weichen-dlg-refresh)")
(action_tile "sch_m" "(omni:weichen-dlg-refresh)")
(action_tile "sch_p" "(omni:weichen-dlg-refresh)")
(action_tile "ri_alle" "(omni:weichen-dlg-refresh)")
(action_tile "ri_links" "(omni:weichen-dlg-refresh)")
(action_tile "ri_rechts" "(omni:weichen-dlg-refresh)")
;; OK/Abbrechen
(action_tile "accept"
"(setq ergebnis (atoi (get_tile \"profiltyp\"))) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(start_dialog)
(unload_dialog dat)
;; Gewaehlten Eintrag zurueckgeben
(if ergebnis
(nth ergebnis *OMNI-DLG-WEICHEN*)
nil
)
)
)
)
)
)
;; ============================================================
;; OMNIFLO DXF-BLOCK EINFUEGEN
;; Fuegt eine DXF-Datei aus data/omniflo/ als Block ein.
;; Der Benutzer waehlt den Einfuegepunkt und Drehwinkel.
;; ============================================================
;; --- DXF-Datei als Block einfuegen ---
;; sivasnr-str = SivasNr als String (Dateiname ohne .dxf)
;; Rueckgabe: Einfuegepunkt oder nil bei Abbruch
(defun omni:insert-dxf (sivasnr-str / dxf-pfad data-pfad pt
oldOsnap oldCmdEcho oldLayer)
(setq data-pfad (getenv "DXFM_DATA"))
(if (null data-pfad)
(progn
(princ "\n[OMNI] FEHLER: DXFM_DATA nicht gesetzt!")
nil
)
(progn
(setq dxf-pfad (strcat data-pfad "/omniflo/" sivasnr-str ".dxf"))
(if (not (findfile dxf-pfad))
(progn
(princ (strcat "\n[OMNI] FEHLER: DXF nicht gefunden: " dxf-pfad))
nil
)
(progn
(setq pt (getpoint "\nEinfuegepunkt waehlen: "))
(if (null pt)
(progn (princ "\n[OMNI] Abgebrochen.") nil)
(progn
;; Einstellungen sichern
(setq oldOsnap (getvar "OSMODE"))
(setq oldCmdEcho (getvar "CMDECHO"))
(setq oldLayer (getvar "CLAYER"))
(setvar "CMDECHO" 0)
;; Block einfuegen mit Winkelabfrage (pause)
(command "_.INSERT" dxf-pfad pt "" "" pause)
;; Einstellungen wiederherstellen
(setvar "OSMODE" oldOsnap)
(setvar "CMDECHO" oldCmdEcho)
(setvar "CLAYER" oldLayer)
(princ (strcat "\n[OMNI] " sivasnr-str " eingefuegt."))
pt
)
)
)
)
)
)
)
;; --- Eintrag aus Dialog-Ergebnis einfuegen ---
;; Nimmt einen Eintrag (alist) und fuegt die zugehoerige DXF ein.
(defun omni:insert-from-entry (eintrag / sivasnr-str)
(if eintrag
(progn
(setq sivasnr-str (omni:sivasid-to-str (omni:val eintrag "Sivasnr")))
(princ (strcat "\n[OMNI] Einfuegen: "
(omni:val eintrag "ProfilTyp") " (" sivasnr-str ")"))
(omni:insert-dxf sivasnr-str)
)
)
)
;; ============================================================
;; OMNIFLO WEICHEN-BEFEHLE
;; ============================================================
;; --- Omniflo / Weiche 90 Grad ---
(defun c:OMNI_W90_Einfach ()
(princ "\n[DUMMY] Einfach 90 700/700 links M (834372027)")
(defun c:OMNI_W90_Einfach ( / eintrag)
(setq eintrag (omni:weichen-dialog 90 "Einzelweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_W90_Doppel ()
(princ "\n[DUMMY] Doppel 90 700/700 M (834372109)")
(defun c:OMNI_W90_Doppel ( / eintrag)
(setq eintrag (omni:weichen-dialog 90 "Doppelweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_W90_Dreiwege ()
(princ "\n[DUMMY] Dreiwege 90 700/700 M (834372209)")
(defun c:OMNI_W90_Dreiwege ( / eintrag)
(setq eintrag (omni:weichen-dialog 90 "Dreiwegeweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
;; --- Omniflo / Weiche 45 Grad ---
(defun c:OMNI_W45_Einfach ()
(princ "\n[DUMMY] Einfach 45 350/700 links M (834372001)")
(defun c:OMNI_W45_Einfach ( / eintrag)
(setq eintrag (omni:weichen-dialog 45 "Einzelweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_W45_Doppel ()
(princ "\n[DUMMY] Doppel 45 350/700 M (834372100)")
(defun c:OMNI_W45_Doppel ( / eintrag)
(setq eintrag (omni:weichen-dialog 45 "Doppelweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_W45_Dreiwege ()
(princ "\n[DUMMY] Dreiwege 45 350/700 M (834372200)")
(defun c:OMNI_W45_Dreiwege ( / eintrag)
(setq eintrag (omni:weichen-dialog 45 "Dreiwegeweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
;; --- Omniflo / Weichen Parallel ---
(defun c:OMNI_WP_Einfach ()
(princ "\n[DUMMY] Einfach Parallel 200/750 links M (834372047)")
(defun c:OMNI_WP_Einfach ( / eintrag)
(setq eintrag (omni:weichen-dialog 0 "Einzelweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_WP_Doppel ()
(princ "\n[DUMMY] Doppel Parallel 200/750 M (834372115)")
(defun c:OMNI_WP_Doppel ( / eintrag)
(setq eintrag (omni:weichen-dialog 0 "Doppelweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_WP_Dreiwege ()
(princ "\n[DUMMY] Dreiwege Parallel 200/750 M (834372215)")
(defun c:OMNI_WP_Dreiwege ( / eintrag)
(setq eintrag (omni:weichen-dialog 0 "Dreiwegeweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
;; --- Omniflo / Weichenkoerper ---
(defun c:OMNI_WK_Einfach ()
(princ "\n[DUMMY] Weichenkoerper Einfach 22.5 links M (834342011)")
(defun c:OMNI_WK_Einfach ( / eintrag)
(setq eintrag (omni:weichen-dialog 22.5 "Einzelweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_WK_Doppel ()
(princ "\n[DUMMY] Weichenkoerper Doppel 22.5 M (834342100)")
(defun c:OMNI_WK_Doppel ( / eintrag)
(setq eintrag (omni:weichen-dialog 22.5 "Doppelweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_WK_Dreiwege ()
(princ "\n[DUMMY] Weichenkoerper Dreiwege 22.5 M (834342200)")
(defun c:OMNI_WK_Dreiwege ( / eintrag)
(setq eintrag (omni:weichen-dialog 22.5 "Dreiwegeweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
;; --- Omniflo / Weichenkombinationen ---
(defun c:OMNI_WKomb_Delta ()
(princ "\n[DUMMY] Delta 1400/700 M (834372400)")
(defun c:OMNI_WKomb_Delta ( / eintrag)
(setq eintrag (omni:weichen-dialog nil "Deltaweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_WKomb_Star ()
(princ "\n[DUMMY] Star 1400/1400 M (834372420)")
(defun c:OMNI_WKomb_Star ( / eintrag)
(setq eintrag (omni:weichen-dialog nil "Sternweiche"))
(if eintrag
(omni:insert-from-entry eintrag)
(princ "\n[WEICHE] Abgebrochen.")
)
(princ)
)
+1
View File
@@ -26,6 +26,7 @@
(load (strcat base-path "KreiselInsert.lsp") "KreiselInsert.lsp nicht gefunden")
(load (strcat base-path "VarioFoerderer.lsp") "VarioFoerderer.lsp nicht gefunden")
(load (strcat base-path "tests.lsp") "tests.lsp nicht gefunden")
(load (strcat base-path "OmniModulInsert.lsp") "OmniModulInsert.lsp nicht gefunden")
(load (strcat base-path "SSG_LIB_Commands.lsp") "SSG_LIB_Commands.lsp nicht gefunden")
(prompt "\nSSG-Bibliotheken geladen: ssg_core, ssg_dialog, ssg_layer")
(princ)
+3 -2
View File
@@ -35,9 +35,10 @@
(setvar "SRCHPATH" (strcat curr-srch ";" lisp-pfad))
)
;; Library laden
;; Library laden (direkt, damit Fehler sichtbar sind)
(if (findfile (strcat lisp-pfad "/ssg_load.lsp"))
(if (ssg-lib-safe-load (strcat lisp-pfad "/ssg_load.lsp"))
(progn
(load (strcat lisp-pfad "/ssg_load.lsp"))
(princ "\n[SSG_LIB] ssg_load.lsp geladen.")
)
(princ "\n[SSG_LIB] WARNUNG: ssg_load.lsp nicht gefunden!")
+1
View File
@@ -19,6 +19,7 @@ set "DXFM_CFG=%DXFMAKRO%\cfg"
set "DXFM_LOG=%DXFMAKRO%\log"
set "DXFM_BLOCKS=%DXFMAKRO%\Blocks"
set "DXFM_LISP=%DXFMAKRO%\Lisp"
set "DXFM_DCL=%DXFMAKRO%\dcl"
set "DXFM_RESULTS=%DXFMAKRO%\results"
set BRISCAD="C:\Program Files\Bricsys\BricsCAD V25 de_DE\bricscad.exe"
-3
View File
@@ -1,3 +0,0 @@
m.stangl
ENTW-NB08
Mittwoch, Mai 06, 2026 07:13:34
-7
View File
@@ -1,7 +0,0 @@
<?xml version="1.0"?>
<whprops>
<username>m.stangl</username>
<machinename>ENTW-NB08</machinename>
<fullname></fullname>
<datetime>Mittwoch, Mai 06, 2026 07:13:34</datetime>
</whprops>
+109
View File
@@ -0,0 +1,109 @@
[
{
"ID": "s_Kurve_30_L_Aussen_F",
"KurvenWinkel": 30,
"Breite": 161.197,
"Laenge": 311.186,
"KurvenRichtung" : "links",
"AntriebNebenStrecke": "Aussen"
},
{
"ID": "s_Kurve_60_L_Aussen_F",
"KurvenWinkel": 60,
"Breite": 335.902,
"Laenge": 527.586,
"KurvenRichtung" : "links",
"AntriebNebenStrecke": "Aussen"
},
{
"ID": "s_Kurve_90_L_Aussen_F",
"KurvenWinkel": 90,
"Breite": 604.384,
"Laenge": 604.384,
"KurvenRichtung" : "links",
"AntriebNebenStrecke": "Aussen"
},
{
"ID": "s_Kurve_30_R_Aussen_F",
"KurvenWinkel": 30,
"Breite": 161.197,
"Laenge": 311.186,
"KurvenRichtung" : "rechts",
"AntriebNebenStrecke": "Aussen"
},
{
"ID": "s_Kurve_60_R_Aussen_F",
"KurvenWinkel": 60,
"Breite": 335.902,
"Laenge": 527.586,
"KurvenRichtung" : "rechts",
"AntriebNebenStrecke": "Aussen"
},
{
"ID": "s_Kurve_90_R_Aussen_F",
"KurvenWinkel": 90,
"Breite": 604.384,
"Laenge": 604.384,
"KurvenRichtung" : "rechts",
"AntriebNebenStrecke": "Aussen"
},
{
"ID": "s_Kurve_30_L_Innen_F",
"KurvenWinkel": 30,
"Breite": 215.295,
"Laenge": 283.195,
"KurvenRichtung" : "links",
"AntriebNebenStrecke": "Innen"
},
{
"ID": "s_Kurve_60_L_Innen_F",
"KurvenWinkel": 60,
"Breite": 372.474,
"Laenge": 456.644,
"KurvenRichtung" : "links",
"AntriebNebenStrecke": "Innen"
},
{
"ID": "s_Kurve_90_L_Innen_F",
"KurvenWinkel": 90,
"Breite": 577.221,
"Laenge": 577.221,
"KurvenRichtung" : "links",
"AntriebNebenStrecke": "Innen"
},
{
"ID": "s_Kurve_30_R_Innen_F",
"KurvenWinkel": 30,
"Breite": 215.295,
"Laenge": 283.195,
"KurvenRichtung" : "rechts",
"AntriebNebenStrecke": "Innen"
},
{
"ID": "s_Kurve_60_R_Innen_F",
"KurvenWinkel": 60,
"Breite": 372.474,
"Laenge": 456.644,
"KurvenRichtung" : "rechts",
"AntriebNebenStrecke": "Innen"
},
{
"ID": "s_Kurve_90_R_Innen_F",
"KurvenWinkel": 90,
"Breite": 577.221,
"Laenge": 577.221,
"KurvenRichtung" : "rechts",
"AntriebNebenStrecke": "Innen"
}
]
+99
View File
@@ -0,0 +1,99 @@
{
"comment": "Die folgenden Einträge werden in Verbindung mit Förderern und/oder Gefällestrecken verwendet. Im Programm werden die Summen der Werte delta_h (Einschleuselement) und delta_h(Ausschleuselement) als L_SEA und/oder H_SEA (index S=Strecke) bzw. L_FEA und/oder H_FEA (index F=Förderer) verwendet.",
"Einschleuselement":{
"comment": "Höhen- und Längendifferenz zwischen Laufprofil des Kreisels und Ende einer angebundenen Gefällestrecke in Millimetern",
"delta_h": 0,
"delta_s": 0
},
"Ausschleuselement":{
"comment": "Höhen- und Längendifferenz zwischen Laufprofil des Kreisels und Ende einer angebundenen Gefällestrecke in Millimetern",
"delta_h": 0,
"delta_s": 0
},
"Einschleusung_Kreiselkopf":{
"comment": "Höhen- und Längendifferenz zwischen Kreiselkopf des Kreisels und Ende einer angebundenen Gefällestrecke in Millimetern",
"delta_h": 0,
"delta_s": 0
},
"Ausschleusung_Kreiselkopf":{
"comment": "Höhen- und Längendifferenz zwischen Kreiselkopf des Kreisels und Ende einer angebundenen Gefällestrecke in Millimetern",
"delta_h": 0,
"delta_s": 0
},
"Vario_auf":[
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei 9° Steigung aufwärts",
"delta_h_min": 30.37,
"delta_s_min": 579.4,
"winkel": 9
},
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei 12° Steigung aufwärts",
"delta_h_min": 45.05,
"delta_s_min": 572.47,
"winkel": 12
},
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei 15° Steigung aufwärts",
"delta_h_min": 122.08,
"delta_s_min": 1161.5,
"winkel": 15
},
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei 24° Steigung aufwärts",
"delta_h_min": 195.36,
"delta_s_min": 1129.67,
"winkel": 24
},
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei 36° Steigung aufwärts",
"delta_h_min": 454.54,
"delta_s_min": 1644.49,
"winkel": 36
},
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei 48° Steigung aufwärts",
"delta_h_min": 871.79,
"delta_s_min": 2063.64,
"winkel": 48
}
],
"Vario_ab":[
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei -9° Steigung abwärts",
"delta_h_min": 82.7,
"delta_s_min": 786.85,
"winkel": 9
},
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei -12° Steigung abwärts",
"delta_h_min": 76.46,
"delta_s_min": 580.74,
"winkel": 12
},
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei -15° Steigung abwärts",
"delta_h_min": 137.79,
"delta_s_min": 970.45,
"winkel": 15
},
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei -24° Steigung abwärts",
"delta_h_min": 255.75,
"delta_s_min": 1132.54,
"winkel": 24
},
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei -36° Steigung abwärts",
"delta_h_min": 545.85,
"delta_s_min": 1635.01,
"winkel": 36
},
{
"comment": "Mindestlänge und -höhe für den Varioförderer bei -48° Steigung abwärts",
"delta_h_min": 724.81,
"delta_s_min": 1519.59,
"winkel": 48
}
]
}
+275
View File
@@ -0,0 +1,275 @@
[
{
"Sivasnr": 821104025,
"ProfilTyp": "APB 110 R 550/22,5° 84/522",
"Radius": 550,
"KurvenWinkel": 22.5,
"Breite": 84,
"Länge": 522,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": "821104025+0_B10090",
"ProfilTyp": "APB 110 R 550/22,5° 84/522 mit TEF Innen",
"Radius": 550,
"KurvenWinkel": 22.5,
"Breite": 84,
"Länge": 522,
"SivasnrTEF": "0_B10090",
"Antriebsart":1
},
{
"Sivasnr": "821104025+0_B10091",
"ProfilTyp": "APB 110 R 550/22,5° 84/522 mit TEF Aussen",
"Radius": 550,
"KurvenWinkel": 22.5,
"Breite": 84,
"Länge": 522,
"SivasnrTEF": "0_B10091",
"Antriebsart":2
},
{
"Sivasnr": 821104021,
"ProfilTyp": "APB 110 R 400/45° 400/670",
"Radius": 400,
"KurvenWinkel": 45,
"Breite": 400,
"Länge": 670,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104026,
"ProfilTyp": "APB 110 R 550/45° 232/610",
"Radius": 550,
"KurvenWinkel": 45,
"Breite": 232,
"Länge": 610,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": "821104026+0_B10071",
"ProfilTyp": "APB 110 R 550/45° 232/610 mit TEF Innen",
"Radius": 550,
"KurvenWinkel": 45,
"Breite": 232,
"Länge": 610,
"SivasnrTEF": "0_B10071",
"Antriebsart":1
},
{
"Sivasnr": 821104037,
"ProfilTyp": "APB 110 R 550/45° 205/337",
"Radius": 550,
"KurvenWinkel": 45,
"Breite": 205,
"Länge": 337,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104029,
"ProfilTyp": "APB 110 R 550/45° 191/552",
"Radius": 550,
"KurvenWinkel": 45,
"Breite": 191,
"Länge": 552,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104031,
"ProfilTyp": "APB 110 R 630/45° 400/825",
"Radius": 630,
"KurvenWinkel": 45,
"Breite": 400,
"Länge": 825,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": "821104031+0_B10060",
"ProfilTyp": "APB 110 R 630/45° 400/825 mit TEF Aussen",
"Radius": 630,
"KurvenWinkel": 45,
"Breite": 400,
"Länge": 825,
"SivasnrTEF": "0_B10060",
"Antriebsart":2
},
{
"Sivasnr": "821104031+0_B10070",
"ProfilTyp": "APB 110 R 630/45° 400/825 mit TEF Innen",
"Radius": 630,
"KurvenWinkel": 45,
"Breite": 400,
"Länge": 825,
"SivasnrTEF": "0_B10070",
"Antriebsart":1
},
{
"Sivasnr": 821104024,
"ProfilTyp": "APB 110 R 400/67,5° 339/508",
"Radius": 400,
"KurvenWinkel": 67.5,
"Breite": 339,
"Länge": 508,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": "821104024+0_B10081",
"ProfilTyp": "APB 110 R 400/67,5° 339/508 mit TEF Innen",
"Radius": 400,
"KurvenWinkel": 67.5,
"Breite": 339,
"Länge": 508,
"SivasnrTEF": "0_B10081",
"Antriebsart":1
},
{
"Sivasnr": 821104027,
"ProfilTyp": "APB 110 R 550/67,5° 488/778",
"Radius": 550,
"KurvenWinkel": 67.5,
"Breite": 448,
"Länge": 778,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": "821104027+0_B10080",
"ProfilTyp": "APB 110 R 550/67,5° 488/778 mit TEF Innen",
"Radius": 550,
"KurvenWinkel": 67.5,
"Breite": 448,
"Länge": 778,
"SivasnrTEF": "0_B10080",
"Antriebsart":1
},
{
"Sivasnr": 821104028,
"ProfilTyp": "APB 110 R 550/67,5° 420/582",
"Radius": 550,
"KurvenWinkel": 67.5,
"Breite": 420,
"Länge": 582,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104065,
"ProfilTyp": "APB 110 R 550/67,5° 498/758",
"Radius": 550,
"KurvenWinkel": 67.5,
"Breite": 498,
"Länge": 758,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104022,
"ProfilTyp": "APB 110 R 400/90° 500/500",
"Radius": 400,
"KurvenWinkel": 90,
"Breite": 500,
"Länge": 500,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104030,
"ProfilTyp": "APB 110 R 500/90° 550/550",
"Radius": 500,
"KurvenWinkel": 90,
"Breite": 550,
"Länge": 550,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104033,
"ProfilTyp": "APB 110 R 630/90° 800/800",
"Radius": 630,
"KurvenWinkel": 90,
"Breite": 800,
"Länge": 800,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": "821104033+0_B10040",
"ProfilTyp": "APB 110 R 630/90° 800/800 mit TEF Aussen",
"Radius": 630,
"KurvenWinkel": 90,
"Breite": 800,
"Länge": 800,
"SivasnrTEF": "0_B10040",
"Antriebsart":1
},
{
"Sivasnr": "821104033+0_B10050",
"ProfilTyp": "APB 110 R 630/90° 800/800 mit TEF Innen",
"Radius": 630,
"KurvenWinkel": 90,
"Breite": 800,
"Länge": 800,
"SivasnrTEF": "0_B10050",
"Antriebsart":1
},
{
"Sivasnr": 821104035,
"ProfilTyp": "APB 110 R 630/90° 850/870",
"Radius": 630,
"KurvenWinkel": 90,
"Breite": 850,
"Länge": 870,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104041,
"ProfilTyp": "APB 110 R 630/90° 850/690",
"Radius": 630,
"KurvenWinkel": 90,
"Breite": 850,
"Länge": 690,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104034,
"ProfilTyp": "APB 110 R 630/90° 850/890",
"Radius": 630,
"KurvenWinkel": 90,
"Breite": 850,
"Länge": 890,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104066,
"ProfilTyp": "APB 110 R 550/90° 900/605",
"Radius": 550,
"KurvenWinkel": 90,
"Breite": 900,
"Länge": 605,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821104043,
"ProfilTyp": "APB 110 R 630/180° 1300/800",
"Radius": 650,
"KurvenWinkel": 180,
"Breite": 1300,
"Länge": 800,
"SivasnrTEF": null,
"Antriebsart": 0
}
]
+919
View File
@@ -0,0 +1,919 @@
[
{
"Sivasnr": 834372001,
"ProfilTyp": "WEICHE S 45°-L-350/700, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "M",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372002,
"ProfilTyp": "WEICHE S 45°-L-350/700, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": "834372002+0_BG090090",
"ProfilTyp": "WEICHE S 45°-L-350/700, KPL. MIT P mit TEF Innen",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 1,
"SivasnrTEF": "0_B10090+0_B10090",
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372004,
"ProfilTyp": "WEICHE S 45°-R-350/700, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "M",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372005,
"ProfilTyp": "WEICHE S 45°-R-350/700, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": "834372005+0_BG090090",
"ProfilTyp": "WEICHE S 45°-R-350/700, KPL. MIT P mit TEF Innen",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 2,
"SivasnrTEF": "0_B10090+0_B10090",
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372007,
"ProfilTyp": "WEICHE S 45°-L-400/750, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "M",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372008,
"ProfilTyp": "WEICHE S 45°-L-400/750, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": "834372008+0_BG190090",
"ProfilTyp": "WEICHE S 45°-L-400/750, KPL. MIT P mit TEF Ihnen",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 1,
"SivasnrTEF": "0_B10090+0_B10090",
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372010,
"ProfilTyp": "WEICHE S 45°-R-400/750, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "M",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372011,
"ProfilTyp": "WEICHE S 45°-R-400/750, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": "834372011+0_BG190090",
"ProfilTyp": "WEICHE S 45°-R-400/750, KPL. MIT P mit TEF Ihnen",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 2,
"SivasnrTEF": "0_B10090+0_B10090",
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372021,
"ProfilTyp": "WEICHE S 90°-L-500/600, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "M",
"Breite": 500,
"Länge": 600,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372022,
"ProfilTyp": "WEICHE S 90°-L-500/600, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 500,
"Länge": 600,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372024,
"ProfilTyp": "WEICHE S 90°-R-500/600, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "M",
"Breite": 500,
"Länge": 600,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372025,
"ProfilTyp": "WEICHE S 90°-R-500/600, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 500,
"Länge": 600,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372027,
"ProfilTyp": "WEICHE S 90°-L-700/700, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "M",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372028,
"ProfilTyp": "WEICHE S 90°-L-700/700, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": "834372028+0_BG080090",
"ProfilTyp": "WEICHE S 90°-L-700/700, KPL. MIT P mit TEF Innen",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 1,
"SivasnrTEF": "0_B10080+0_B10090",
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372030,
"ProfilTyp": "WEICHE S 90°-R-700/700, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "M",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372031,
"ProfilTyp": "WEICHE S 90°-R-700/700, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": "834372031+0_BG080090",
"ProfilTyp": "WEICHE S 90°-R-700/700, KPL. MIT P mit TEF Innen",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 2,
"SivasnrTEF": "0_B10080+0_B10090",
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372047,
"ProfilTyp": "WEICHE S PARALLEL-L-200/750, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 0,
"Schaltungstyp": "M",
"Breite": 200,
"Länge": 750,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372048,
"ProfilTyp": "WEICHE S PARALLEL-L-200/750, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 0,
"Schaltungstyp": "P",
"Breite": 200,
"Länge": 750,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372050,
"ProfilTyp": "WEICHE S PARALLEL-R-200/750, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 0,
"Schaltungstyp": "M",
"Breite": 200,
"Länge": 750,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372051,
"ProfilTyp": "WEICHE S PARALLEL-R-200/750, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 0,
"Schaltungstyp": "P",
"Breite": 200,
"Länge": 750,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834372100,
"ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT M",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "M",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": 834372101,
"ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT P",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": "0_BG090090+834372101",
"ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT P mit TEF links",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10090+0_B10090"
},
{
"Sivasnr": "834372101+0_BG090090",
"ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT P mit TEF rechts",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10090+0_B10090"
},
{
"Sivasnr": "0_BG090090+834372101+0_BG090090",
"ProfilTyp": "WEICHE S D 45°-350/700, KPL. MIT P mit TEF beideseitig",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10090+0_B10090+0_B10090+0_B10090"
},
{
"Sivasnr": 834372103,
"ProfilTyp": "WEICHE S D 45°-400/750, KPL. MIT M",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "M",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": 834372104,
"ProfilTyp": "WEICHE S D 45°-400/750, KPL. MIT P",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": "0_BG190090+834372104",
"ProfilTyp": "WEICHE S D 45°-400/750, KPL. MIT P mit TEF links",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10090+0_B10090"
},
{
"Sivasnr": "834372104+0_BG190090",
"ProfilTyp": "WEICHE S D 45°-400/750, KPL. MIT P mit TEF rechts",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10090+0_B10090"
},
{
"Sivasnr": "0_BG190090+834372104+0_BG190090",
"ProfilTyp": "WEICHE S D 45°-400/750, KPL. MIT P mit TEF beideseitig",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10090+0_B10090+0_B10090+0_B10090"
},
{
"Sivasnr": 834372106,
"ProfilTyp": "WEICHE S D 90°-500/600, KPL. MIT M",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "M",
"Breite": 500,
"Länge": 600,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": 834372107,
"ProfilTyp": "WEICHE S D 90°-500/600, KPL. MIT P",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 500,
"Länge": 600,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": 834372109,
"ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT M",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "M",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": 834372110,
"ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT P",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": "0_BG080090+834372110",
"ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT P mit TEF links",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10080+0_B10090"
},
{
"Sivasnr": "834372110+0_BG080090",
"ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT P mit TEF rechts",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10090+0_B10080"
},
{
"Sivasnr": "0_BG080090+834372110+0_BG080090",
"ProfilTyp": "WEICHE S D 90°-700/700, KPL. MIT P mit TEF beideseitig",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10080+0_B10090+0_B10080+0_B10090"
},
{
"Sivasnr": 834372115,
"ProfilTyp": "WEICHE S D PARALLEL-200/750, KPL. MIT M",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 0,
"Schaltungstyp": "M",
"Breite": 200,
"Länge": 750,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": 834372116,
"ProfilTyp": "WEICHE S D PARALLEL-200/750, KPL. MIT P",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 0,
"Schaltungstyp": "P",
"Breite": 200,
"Länge": 750,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": 834372200,
"ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT M",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "M",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": 834372201,
"ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT P",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": "0_BG090090+834372201",
"ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT P mit TEF links",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": "0_B10090+0_B10090"
},
{
"Sivasnr": "834372201+0_BG090090",
"ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT P mit TEF rechts",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": "0_B10090+0_B10090"
},
{
"Sivasnr": "0_BG090090+834372201+0_BG090090",
"ProfilTyp": "WEICHE S T 45°-350/700, KPL. MIT P mit TEF beideseitig",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 350,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": "0_B10090+0_B10090+0_B10090+0_B10090"
},
{
"Sivasnr": 834372203,
"ProfilTyp": "WEICHE S T 45°-400/750, KPL. MIT M",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "M",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": 834372204,
"ProfilTyp": "WEICHE S T 45°-400/750, KPL. MIT P",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": "0_BG190090+834372204",
"ProfilTyp": "WEICHE S T 45°-400/750, KPL. MIT P mit TEF links",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 7,
"SivasnrTEF": "0_B10090+0_B10090"
},
{
"Sivasnr": "834372204+0_BG190090",
"ProfilTyp": "WEICHE S T 45°-400/750, KPL. MIT P mit TEF rechts",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 7,
"SivasnrTEF": "0_B10090+0_B10090"
},
{
"Sivasnr": "0_BG190090+834372204+0_BG190090",
"ProfilTyp": "WEICHE S T 45°-400/750, KPL. MIT P mit TEF beideseitig",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 45,
"Schaltungstyp": "P",
"Breite": 400,
"Länge": 750,
"KurvenRichtung": 7,
"SivasnrTEF": "0_B10090+0_B10090+0_B10090+0_B10090"
},
{
"Sivasnr": 834372206,
"ProfilTyp": "WEICHE S T 90°-500/600, KPL. MIT M",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "M",
"Breite": 500,
"Länge": 600,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": 834372207,
"ProfilTyp": "WEICHE S T 90°-500/600, KPL. MIT P",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 500,
"Länge": 600,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": 834372209,
"ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT M",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "M",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": 834372210,
"ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT P",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": "0_BG080090+834372210",
"ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT P mit TEF links",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": "0_B10080+0_B10090"
},
{
"Sivasnr": "834372210+0_BG080090",
"ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT P mit TEF rechts",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": "0_B10090+0_B10080"
},
{
"Sivasnr": "0_BG080090+834372210+0_BG080090",
"ProfilTyp": "WEICHE S T 90°-700/700, KPL. MIT P mit TEF beideseitig",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 700,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": "0_B10080+0_B10090+0_B10080+0_B10090"
},
{
"Sivasnr": 834372215,
"ProfilTyp": "WEICHE S T PARALLEL-200/750, KPL. MIT M",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 0,
"Schaltungstyp": "M",
"Breite": 200,
"Länge": 750,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": 834372216,
"ProfilTyp": "WEICHE S T PARALLEL-200/750, KPL. MIT P",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 0,
"Schaltungstyp": "P",
"Breite": 200,
"Länge": 750,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": 834372400,
"ProfilTyp": "WEICHE S C DELTA 1400/700, KPL. M",
"WeichenTyp": "Dreifachweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "M",
"Breite": 1400,
"Länge": 700,
"KurvenRichtung": 3,
"SivasnrTEF": null,
"WeichenkörperLänge": 1400.4619
},
{
"Sivasnr": 834372401,
"ProfilTyp": "WEICHE S C DELTA 1400/700, KPL. P",
"WeichenTyp": "Deltaweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 1400,
"Länge": 700,
"KurvenRichtung": 7,
"SivasnrTEF": null,
"WeichenkörperLänge": 1400.4619
},
{
"Sivasnr": 834372403,
"ProfilTyp": "WEICHE S C DELTA 1600/800, KPL. M",
"WeichenTyp": "Dreifachweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "M",
"Breite": 1600,
"Länge": 800,
"KurvenRichtung": 3,
"SivasnrTEF": null,
"WeichenkörperLänge": 1600.3844
},
{
"Sivasnr": 834372404,
"ProfilTyp": "WEICHE S C DELTA 1600/800, KPL. P",
"WeichenTyp": "Dreifachweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 1600,
"Länge": 800,
"KurvenRichtung": 3,
"SivasnrTEF": null,
"WeichenkörperLänge": 1600.3844
},
{
"Sivasnr": "0_BG071090+834372404+0_BG071090",
"ProfilTyp": "WEICHE S C DELTA 1600/800, KPL. MIT P mit TEF beideseitig",
"WeichenTyp": "Dreifachweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 1600,
"Länge": 800,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10071+0_B10090+0_B10090+0_B10071+0_B10090+0_B10090",
"WeichenkörperLänge": 1600.3844
},
{
"Sivasnr": "0_BG071090+834372404",
"ProfilTyp": "WEICHE S C DELTA 1600/800, KPL. MIT P mit TEF links",
"WeichenTyp": "Dreifachweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 1600,
"Länge": 800,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10071+0_B10090+0_B10090",
"WeichenkörperLänge": 1600.3844
},
{
"Sivasnr": "834372404+0_BG071090",
"ProfilTyp": "WEICHE S C DELTA 1600/800, KPL. MIT P mit TEF rechts",
"WeichenTyp": "Dreifachweiche",
"KurvenWinkel": 90,
"Schaltungstyp": "P",
"Breite": 1600,
"Länge": 800,
"KurvenRichtung": 3,
"SivasnrTEF": "0_B10090+0_B10090+0_B10071",
"WeichenkörperLänge": 1600.3844
},
{
"Sivasnr": 834372420,
"ProfilTyp": "WEICHE S C STAR 1400/1400, KPL. M",
"WeichenTyp": "Sternweiche",
"KurvenWinkel": 0,
"Schaltungstyp": "M",
"Breite": 1400,
"Länge": 1400,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": 834342011,
"ProfilTyp": "WEICHENKOERPER S L, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 22.5,
"Schaltungstyp": "M",
"Breite": 101.5,
"Länge": 360,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834342001,
"ProfilTyp": "WEICHENKOERPER S R, KPL. MIT M",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 22.5,
"Schaltungstyp": "M",
"Breite": 101.5,
"Länge": 360,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834342012,
"ProfilTyp": "WEICHENKOERPER S L, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 22.5,
"Schaltungstyp": "P",
"Breite": 101.5,
"Länge": 360,
"KurvenRichtung": 1,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834342002,
"ProfilTyp": "WEICHENKOERPER S R, KPL. MIT P",
"WeichenTyp": "Einzelweiche",
"KurvenWinkel": 22.5,
"Schaltungstyp": "P",
"Breite": 101.5,
"Länge": 360,
"KurvenRichtung": 2,
"SivasnrTEF": null,
"WeichenkörperLänge": 360
},
{
"Sivasnr": 834342100,
"ProfilTyp": "WEICHENKOERPER S D, KPL. MIT M",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 22.5,
"Schaltungstyp": "M",
"Breite": 203,
"Länge": 340,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": 834342101,
"ProfilTyp": "WEICHENKOERPER S D, KPL. MIT P",
"WeichenTyp": "Doppelweiche",
"KurvenWinkel": 22.5,
"Schaltungstyp": "P",
"Breite": 203,
"Länge": 340,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{
"Sivasnr": 834342200,
"ProfilTyp": "WEICHENKOERPER S T, KPL. MIT M",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 22.5,
"Schaltungstyp": "M",
"Breite": 203,
"Länge": 360,
"KurvenRichtung": 7,
"SivasnrTEF": null
},
{
"Sivasnr": 834342201,
"ProfilTyp": "WEICHENKOERPER S T, KPL. MIT P",
"WeichenTyp": "Dreiwegeweiche",
"KurvenWinkel": 22.5,
"Schaltungstyp": "P",
"Breite": 203,
"Länge": 360,
"KurvenRichtung": 7,
"SivasnrTEF": null
}
]
+54
View File
@@ -0,0 +1,54 @@
{
"Systemgrenzen":{
"Kreisel":{
"ObereGrenze":{
"AbstandMS": 40000
},
"UntereGrenze":{
"AbstandMS": 2000
}
},
"Gefaellestrecke":{
"ObereGrenze":{
"L1": 20000,
"winkel": 5
},
"UntereGrenze":{
"L1": 500,
"winkel": 0.01
}
},
"Förderer":{
"Auf":{
"ObereGrenze":{
"L1": 15000,
"winkel_f": 35
},
"UntereGrenze":{
"L1": 4121,
"winkel_f": 25
}
},
"Ab":{
"ObereGrenze":{
"L1": 15000,
"winkel_f": 35
},
"UntereGrenze":{
"L1": 3564,
"winkel_f": 25
}
}
},
"VarioFoerderer":{
"ObereGrenze":{
"L1": 20000,
"winkel": 49
},
"UntereGrenze":{
"L1": 1000,
"winkel": 11
}
}
}
}
+30
View File
@@ -0,0 +1,30 @@
[
{
"Sivasnr": 0_B10001,
"Beschreibung": "Antribestation links für TEF links",
"Radius": ,
"KurvenWinkel": ,
"innen":
},
{
"Sivasnr": 0_B10020,
"Beschreibung": "Antribestation rechts für TEF rechts",
"Radius": ,
"KurvenWinkel": ,
"innen":
},
{
"Sivasnr": YYYYY,
"Beschreibung": "Umlenkspannstation links für TEF links",
"Radius": ,
"KurvenWinkel": ,
"innen":
},
{
"Sivasnr": YYYYY,
"Beschreibung": "Umlenkspannstation rechts für TEF rechts",
"Radius": ,
"KurvenWinkel": ,
"innen":
}
]
+65
View File
@@ -0,0 +1,65 @@
[
{
"Sivasnr": 0_B10040,
"Beschreibung": "TEF Bogen 90° R725",
"Radius": 725,
"KurvenWinkel": 90,
"innen": false
},
{
"Sivasnr": 0_B10050,
"Beschreibung": "TEF Bogen 90° R535",
"Radius": 535,
"KurvenWinkel": 90,
"innen": true
},
{
"Sivasnr": 0_B10060,
"Beschreibung": "TEF Bogen 45° R725",
"Radius": 725,
"KurvenWinkel": 45,
"innen": false
},
{
"Sivasnr": 0_B10070,
"Beschreibung": "TEF Bogen 45° R535",
"Radius": 535,
"KurvenWinkel": 45,
"innen": true
},
{
"Sivasnr": 0_B10071,
"Beschreibung": "TEF Bogen 45° R450 für S C Delta 1600",
"Radius": 450,
"KurvenWinkel": 45,
"innen": true
},
{
"Sivasnr": 0_B10080,
"Beschreibung": "TEF Bogen 67.5° R400",
"Radius": 400,
"KurvenWinkel": 67.5,
"innen": true
},
{
"Sivasnr": 0_B10081,
"Beschreibung": "TEF Bogen 67.5° R250",
"Radius": 250,
"KurvenWinkel": 67.5,
"innen": true
},
{
"Sivasnr": 0_B10090,
"Beschreibung": "TEF Bogen 22.5° R450",
"Radius": 450,
"KurvenWinkel": 22.5,
"innen": true
},
{
"Sivasnr": 0_B10091,
"Beschreibung": "TEF Bogen 22.5° R650",
"Radius": 650,
"KurvenWinkel": 22.5,
"innen": false
}
]
+72
View File
@@ -0,0 +1,72 @@
[
{
"Sivasnr": _BG080090,
"Beschreibung": "TEF Bogen für Weiche S 90° 700/700 links",
"Radius": ,
"KurvenWinkel": 90,
"innen": true
},
{
"Sivasnr": _BG080090,
"Beschreibung": "TEF Bogen für Weiche S 90° 700/700 rechts",
"Radius": ,
"KurvenWinkel": 90,
"innen": true
},
{
"Sivasnr": _BG081090,
"Beschreibung": "TEF Bogen für Weiche S 90° 500/600 links",
"Radius": ,
"KurvenWinkel": 90,
"innen": true
},
{
"Sivasnr": _BG081090,
"Beschreibung": "TEF Bogen für Weiche S 90° 500/600 rechts",
"Radius": ,
"KurvenWinkel": 90,
"innen": true
},
{
"Sivasnr": _BG190090,
"Beschreibung": "TEF Bogen für Weiche S 45° 400/750 links",
"Radius": ,
"KurvenWinkel": 45,
"innen": true
},
{
"Sivasnr": _BG190090,
"Beschreibung": "TEF Bogen für Weiche S 45° 400/750 rechts",
"Radius": ,
"KurvenWinkel": 45,
"innen": true
},
{
"Sivasnr": _BG090090,
"Beschreibung": "TEF Bogen für Weiche S 45° 350/700 links",
"Radius": ,
"KurvenWinkel": 45,
"innen": true
},
{
"Sivasnr": _BG090090,
"Beschreibung": "TEF Bogen für Weiche S 45° 350/700 rechts",
"Radius": ,
"KurvenWinkel": 45,
"innen": true
},
{
"Sivasnr": _BG071090,
"Beschreibung": "TEF Bogen für Weiche S C Delta 1600/800 links",
"Radius": ,
"KurvenWinkel": 90,
"innen": true
},
{
"Sivasnr": _BG071090,
"Beschreibung": "TEF Bogen für Weiche S C Delta 1600/800 rechts",
"Radius": ,
"KurvenWinkel": 90,
"innen": true
}
]
+54
View File
@@ -0,0 +1,54 @@
// ============================================================
// omniflo_boegen.dcl - Bogen-Auswahl Dialog fuer Omniflo
// Zeigt gefilterte Boegen nach Winkel mit Details an.
// ============================================================
omniflo_boegen : dialog {
label = "Omniflo Bogen Auswahl";
: row {
: popup_list {
key = "bogenart";
label = "Bogenart:";
width = 42;
}
: edit_box {
key = "val_sivasnr";
label = "SivasNr:";
width = 22;
is_enabled = false;
}
}
: row {
: edit_box {
key = "val_winkel";
label = "Winkel:";
width = 16;
is_enabled = false;
}
: edit_box {
key = "val_radius";
label = "Radius:";
width = 16;
is_enabled = false;
}
}
: row {
: edit_box {
key = "val_breite";
label = "Breite:";
width = 16;
is_enabled = false;
}
: edit_box {
key = "val_laenge";
label = "Laenge:";
width = 16;
is_enabled = false;
}
}
ok_cancel;
}
+65
View File
@@ -0,0 +1,65 @@
// ============================================================
// omniflo_weichen.dcl - Weichen-Auswahl Dialog fuer Omniflo
// Zeigt gefilterte Weichen mit Details und Filteroptionen an.
// ============================================================
omniflo_weichen : dialog {
label = "Omniflo Weichen Auswahl";
: row {
: popup_list {
key = "profiltyp";
label = "Profiltyp-Auswahl:";
width = 50;
}
}
: row {
: boxed_radio_column {
key = "schaltung";
label = "Schaltungstyp";
: radio_button { key = "sch_alle"; label = "Alle"; value = "1"; }
: radio_button { key = "sch_m"; label = "Mechanisch (M)"; }
: radio_button { key = "sch_p"; label = "Pneumatisch (P)"; }
}
: boxed_radio_column {
key = "richtung";
label = "Richtung";
: radio_button { key = "ri_alle"; label = "Alle"; value = "1"; }
: radio_button { key = "ri_links"; label = "Links"; }
: radio_button { key = "ri_rechts"; label = "Rechts"; }
}
}
: row {
: edit_box {
key = "val_sivasnr";
label = "SivasNr:";
width = 22;
is_enabled = false;
}
: edit_box {
key = "val_winkel";
label = "Winkel:";
width = 12;
is_enabled = false;
}
}
: row {
: edit_box {
key = "val_breite";
label = "Breite:";
width = 12;
is_enabled = false;
}
: edit_box {
key = "val_laenge";
label = "Laenge:";
width = 12;
is_enabled = false;
}
}
ok_cancel;
}
+29
View File
@@ -0,0 +1,29 @@
"""testpycall.py - Testskript fuer LISP-Python-Aufruf."""
import os
import sys
from datetime import datetime
def main():
if len(sys.argv) > 1:
log_dir = sys.argv[1]
else:
log_dir = os.getenv("DXFM_LOG", ".")
os.makedirs(log_dir, exist_ok=True)
log_file = os.path.join(log_dir, "testpycall.log")
return_file = os.path.join(log_dir, "testpycall_return.txt")
timestamp = datetime.now().strftime("%y%m%d-%H:%M:%S")
message = f"{timestamp} - been called from BricsCAD LISP via CALLPYTHON\n"
with open(log_file, "a", encoding="utf-8") as f:
f.write(message)
with open(return_file, "w", encoding="utf-8") as f:
f.write(timestamp)
if __name__ == "__main__":
main()
+19 -19
View File
@@ -39,32 +39,32 @@
[<-ILS Schliessen]^C^C
[->Omniflo]
[->Boegen]
[APB 110 R 630/90 800/800 (821104033)]^C^COMNI_APB_630_90
[APB 110 R 550/67.5 432 (821104027)]^C^COMNI_APB_550_675
[APB 110 R 630/45 400 (821104031)]^C^COMNI_APB_630_45
[APB 110 R 550/22.5 84 (821104025)]^C^COMNI_APB_550_225
[<-APB 110 R 650/180 L=150 (821104043)]^C^COMNI_APB_650_180
[90]^C^COMNI_APB_630_90
[67.5]^C^COMNI_APB_550_675
[45]^C^COMNI_APB_630_45
[22.5]^C^COMNI_APB_550_225
[<-180 ]^C^COMNI_APB_650_180
[->Aluprofil Gerade]
[<-AP 110]^C^COMNI_AP110
[->Weiche 90 Grad]
[Einfach 90 700/700 links M (834372027)]^C^COMNI_W90_Einfach
[Doppel 90 700/700 M (834372109)]^C^COMNI_W90_Doppel
[<-Dreiwege 90 700/700 M (834372209)]^C^COMNI_W90_Dreiwege
[Einfach 90 700/700 links M]^C^COMNI_W90_Einfach
[Doppel 90 700/700 M]^C^COMNI_W90_Doppel
[<-Dreiwege 90 700/700 M]^C^COMNI_W90_Dreiwege
[->Weiche 45 Grad]
[Einfach 45 350/700 links M (834372001)]^C^COMNI_W45_Einfach
[Doppel 45 350/700 M (834372100)]^C^COMNI_W45_Doppel
[<-Dreiwege 45 350/700 M (834372200)]^C^COMNI_W45_Dreiwege
[Einfach 45 350/700 links M]^C^COMNI_W45_Einfach
[Doppel 45 350/700 M]^C^COMNI_W45_Doppel
[<-Dreiwege 45 350/700 M]^C^COMNI_W45_Dreiwege
[->Weichen Parallel]
[Einfach Parallel 200/750 links M (834372047)]^C^COMNI_WP_Einfach
[Doppel Parallel 200/750 M (834372115)]^C^COMNI_WP_Doppel
[<-Dreiwege Parallel 200/750 M (834372215)]^C^COMNI_WP_Dreiwege
[Einfach Parallel 200/750 links M]^C^COMNI_WP_Einfach
[Doppel Parallel 200/750 M]^C^COMNI_WP_Doppel
[<-Dreiwege Parallel 200/750 M]^C^COMNI_WP_Dreiwege
[->Weichenkoerper]
[Weichenkoerper Einfach 22.5 links M (834342011)]^C^COMNI_WK_Einfach
[Weichenkoerper Doppel 22.5 M (834342100)]^C^COMNI_WK_Doppel
[<-Weichenkoerper Dreiwege 22.5 M (834342200)]^C^COMNI_WK_Dreiwege
[Weichenkoerper Einfach 22.5 links M]^C^COMNI_WK_Einfach
[Weichenkoerper Doppel 22.5 M]^C^COMNI_WK_Doppel
[<-Weichenkoerper Dreiwege 22.5 M]^C^COMNI_WK_Dreiwege
[->Weichenkombinationen]
[Delta 1400/700 M (834372400)]^C^COMNI_WKomb_Delta
[<-Star 1400/1400 M (834372420)]^C^COMNI_WKomb_Star
[Delta 1400/700 M]^C^COMNI_WKomb_Delta
[<-Star 1400/1400 M]^C^COMNI_WKomb_Star
[->TEF Elemente]
[Umlenkspannst. rechts fuer TEF links]^C^COMNI_TEF_UmlenkR
[Umlenkspannst. links fuer TEF rechts]^C^COMNI_TEF_UmlenkL