ABP 60 und APB 100 als eigenes AUswahlkriterium in die Oberfläche der 90Grad Bögen hinzugefügt. Beide APB60 Bögen und die Sternweiche dazu

This commit is contained in:
2026-07-10 13:32:52 +02:00
parent 6bf6b00e13
commit fe283a0bf3
4 changed files with 72 additions and 11 deletions
+38 -10
View File
@@ -326,11 +326,13 @@
;; --- Bogen-Auswahl-Dialog oeffnen --- ;; --- Bogen-Auswahl-Dialog oeffnen ---
;; winkel = KurvenWinkel (90, 67.5, 45, 22.5, 180) ;; winkel = KurvenWinkel (90, 67.5, 45, 22.5, 180)
;; init-hoehe / init-drehung = Vorbelegung (optional, fuer Edit-Modus) ;; init-hoehe / init-drehung = Vorbelegung (optional, fuer Edit-Modus)
;; profiltyp = optionales Praefix zum Filtern des ProfilTyp-Textes,
;; z.B. "APB 60" oder "APB 110" (nil = keine Einschraenkung)
;; Rueckgabe: (eintrag hoehe drehung) oder nil bei Abbruch ;; Rueckgabe: (eintrag hoehe drehung) oder nil bei Abbruch
(defun omni:bogen-dialog (winkel init-hoehe init-drehung / dcl-pfad dat boegen-liste (defun omni:bogen-dialog (winkel init-hoehe init-drehung profiltyp / dcl-pfad dat boegen-liste
profil-liste ergebnis dlg-hoehe dlg-drehung) profil-liste ergebnis dlg-hoehe dlg-drehung profil)
(if (null *OMNI-BOEGEN*) (omni:load-data)) (if (null *OMNI-BOEGEN*) (omni:load-data))
;; Defaults ;; Defaults
@@ -339,11 +341,27 @@
;; Boegen nach Winkel filtern ;; Boegen nach Winkel filtern
(setq boegen-liste (omni:filter *OMNI-BOEGEN* "KurvenWinkel" winkel)) (setq boegen-liste (omni:filter *OMNI-BOEGEN* "KurvenWinkel" winkel))
;; Optional zusaetzlich nach ProfilTyp-Praefix filtern (z.B. "APB 60")
(if profiltyp
(setq boegen-liste
(vl-remove-if-not
'(lambda (e)
(setq profil (cdr (assoc "ProfilTyp" e)))
(and profil (= (vl-string-search profiltyp profil) 0))
)
boegen-liste
)
)
)
(if (null boegen-liste) (if (null boegen-liste)
(progn (progn
(alert (strcat "Keine Boegen fuer " (alert (strcat "Keine Boegen fuer "
(if (= (type winkel) 'INT) (itoa winkel) (rtos winkel 2 1)) (if (= (type winkel) 'INT) (itoa winkel) (rtos winkel 2 1))
" Grad gefunden.")) " Grad"
(if profiltyp (strcat " (" profiltyp ")") "")
" gefunden."))
nil nil
) )
(progn (progn
@@ -405,8 +423,18 @@
;; ============================================================ ;; ============================================================
;; --- Omniflo / Boegen --- ;; --- Omniflo / Boegen ---
(defun c:OMNI_APB60_90 ( / dlg-result)
(setq dlg-result (omni:bogen-dialog 90 nil nil "APB 60"))
(if dlg-result
(omni:insert-from-entry dlg-result)
(princ "\n[BOGEN] Abgebrochen.")
)
(princ)
)
(defun c:OMNI_APB_630_90 ( / dlg-result) (defun c:OMNI_APB_630_90 ( / dlg-result)
(setq dlg-result (omni:bogen-dialog 90 nil nil)) (setq dlg-result (omni:bogen-dialog 90 nil nil "APB 110"))
(if dlg-result (if dlg-result
(omni:insert-from-entry dlg-result) (omni:insert-from-entry dlg-result)
(princ "\n[BOGEN] Abgebrochen.") (princ "\n[BOGEN] Abgebrochen.")
@@ -415,7 +443,7 @@
) )
(defun c:OMNI_APB_550_675 ( / dlg-result) (defun c:OMNI_APB_550_675 ( / dlg-result)
(setq dlg-result (omni:bogen-dialog 67.5 nil nil)) (setq dlg-result (omni:bogen-dialog 67.5 nil nil nil))
(if dlg-result (if dlg-result
(omni:insert-from-entry dlg-result) (omni:insert-from-entry dlg-result)
(princ "\n[BOGEN] Abgebrochen.") (princ "\n[BOGEN] Abgebrochen.")
@@ -424,7 +452,7 @@
) )
(defun c:OMNI_APB_630_45 ( / dlg-result) (defun c:OMNI_APB_630_45 ( / dlg-result)
(setq dlg-result (omni:bogen-dialog 45 nil nil)) (setq dlg-result (omni:bogen-dialog 45 nil nil nil))
(if dlg-result (if dlg-result
(omni:insert-from-entry dlg-result) (omni:insert-from-entry dlg-result)
(princ "\n[BOGEN] Abgebrochen.") (princ "\n[BOGEN] Abgebrochen.")
@@ -433,7 +461,7 @@
) )
(defun c:OMNI_APB_550_225 ( / dlg-result) (defun c:OMNI_APB_550_225 ( / dlg-result)
(setq dlg-result (omni:bogen-dialog 22.5 nil nil)) (setq dlg-result (omni:bogen-dialog 22.5 nil nil nil))
(if dlg-result (if dlg-result
(omni:insert-from-entry dlg-result) (omni:insert-from-entry dlg-result)
(princ "\n[BOGEN] Abgebrochen.") (princ "\n[BOGEN] Abgebrochen.")
@@ -442,7 +470,7 @@
) )
(defun c:OMNI_APB_650_180 ( / dlg-result) (defun c:OMNI_APB_650_180 ( / dlg-result)
(setq dlg-result (omni:bogen-dialog 180 nil nil)) (setq dlg-result (omni:bogen-dialog 180 nil nil nil))
(if dlg-result (if dlg-result
(omni:insert-from-entry dlg-result) (omni:insert-from-entry dlg-result)
(princ "\n[BOGEN] Abgebrochen.") (princ "\n[BOGEN] Abgebrochen.")
@@ -1171,7 +1199,7 @@
(if (= typ "bogen") (if (= typ "bogen")
(progn (progn
(setq winkel (cdr (assoc "KurvenWinkel" eintrag))) (setq winkel (cdr (assoc "KurvenWinkel" eintrag)))
(setq dlg-result (omni:bogen-dialog winkel hoehe drehung)) (setq dlg-result (omni:bogen-dialog winkel hoehe drehung nil))
) )
(progn (progn
(setq winkel (cdr (assoc "KurvenWinkel" eintrag))) (setq winkel (cdr (assoc "KurvenWinkel" eintrag)))
+20
View File
@@ -172,6 +172,26 @@
"SivasnrTEF": null, "SivasnrTEF": null,
"Antriebsart": 0 "Antriebsart": 0
}, },
{
"Sivasnr": 821094101,
"ProfilTyp": "APB 60 R 515/90° 135/135",
"Radius": 515,
"KurvenWinkel": 90,
"Breite": 650,
"Länge": 650,
"SivasnrTEF": null,
"Antriebsart": 0
},
{
"Sivasnr": 821094040,
"ProfilTyp": "APB 60 R 515/90° 295/295",
"Radius": 515,
"KurvenWinkel": 90,
"Breite": 810,
"Länge": 810,
"SivasnrTEF": null,
"Antriebsart": 0
},
{ {
"Sivasnr": 821104022, "Sivasnr": 821104022,
"ProfilTyp": "APB 110 R 400/90° 500/500", "ProfilTyp": "APB 110 R 400/90° 500/500",
+11
View File
@@ -824,6 +824,17 @@
"KurvenRichtung": 3, "KurvenRichtung": 3,
"SivasnrTEF": null "SivasnrTEF": null
}, },
{
"Sivasnr": 834372421,
"ProfilTyp": "WEICHE S C STAR 1400/1400, KPL. P plus Steuerung",
"WeichenTyp": "Sternweiche",
"KurvenWinkel": 0,
"Schaltungstyp": "P",
"Breite": 1400,
"Länge": 1400,
"KurvenRichtung": 3,
"SivasnrTEF": null
},
{ {
"Sivasnr": 834342011, "Sivasnr": 834342011,
"ProfilTyp": "WEICHENKOERPER S L, KPL. MIT M", "ProfilTyp": "WEICHENKOERPER S L, KPL. MIT M",
+3 -1
View File
@@ -40,12 +40,14 @@
[<-30 Kurve rechts Gefaellestrecke]^C^C(ssg-ensure "SSG_LIB_Commands") ILS_GK30R [<-30 Kurve rechts Gefaellestrecke]^C^C(ssg-ensure "SSG_LIB_Commands") ILS_GK30R
[<-ILS Schliessen]^C^C [<-ILS Schliessen]^C^C
[->Omniflo] [->Omniflo]
[->Boegen] [->Boegen APB110]
[90]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_630_90 [90]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_630_90
[67.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_550_675 [67.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_550_675
[45]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_630_45 [45]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_630_45
[22.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_550_225 [22.5]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_550_225
[<-180 ]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_650_180 [<-180 ]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB_650_180
[->Boegen APB60]
[<-90]^C^C(ssg-ensure "OmniModulInsert") OMNI_APB60_90
[->Aluprofil Gerade] [->Aluprofil Gerade]
[AP 60]^C^C(ssg-ensure "OmniModulInsert") OMNI_AP60 [AP 60]^C^C(ssg-ensure "OmniModulInsert") OMNI_AP60
[AP 110]^C^C(ssg-ensure "OmniModulInsert") OMNI_AP110 [AP 110]^C^C(ssg-ensure "OmniModulInsert") OMNI_AP110