diff --git a/Lisp/vf_konstanten.lsp b/Lisp/vf_konstanten.lsp index 142c24f..c75b10f 100644 --- a/Lisp/vf_konstanten.lsp +++ b/Lisp/vf_konstanten.lsp @@ -70,10 +70,14 @@ ;; nicht greifen. (if (null *vfk-bogen-winkel*) (setq *vfk-bogen-winkel* '(3 6 9 12 15 18 21 27 33 39 45 51))) -;; GF-Bogen-Winkel (horizontale Kurve): 30/60/90 Grad, ueberall als -;; Menue-Auswahl hartcodiert (KEIN Config-Bezug, auch nicht ueber -;; ssg-cfg-or) - Blocknamen "Gefaellebogen___R500" leiten -;; sich direkt aus diesen drei Werten ab. +;; GF-Bogen-Winkel (horizontale Kurve): 30/60/90 Grad. AKTIVE, EINMALIGE Quelle +;; fuer die Winkel-Menues/Schema/Slice/Edit im VF-Linienzug (vf_linienzug.lsp +;; referenziert *vfk-gf-bogen-winkel* statt eigener '(30 60 90)-Literale) - gilt +;; auch fuer die Vario-Kurve (gleiche drei Winkel). Blocknamen +;; "Gefaellebogen___R500" / "Vario_Kurve___TEF_*" +;; leiten sich direkt aus diesen Werten ab. Kein Config-Bezug (bewusst: an die +;; vorhandenen DWG-Bloecke gebunden). vf_linienzug hat einen eigenen Fallback, +;; falls diese Datei nicht geladen wurde. (if (null *vfk-gf-bogen-winkel*) (setq *vfk-gf-bogen-winkel* '(30 60 90))) ;; Etage-Typ: Schwenkwinkel der Ein-/Auslauf-Schraegsektion. Bereits als diff --git a/Lisp/vf_linienzug.lsp b/Lisp/vf_linienzug.lsp index 2b3982a..79d11c5 100644 --- a/Lisp/vf_linienzug.lsp +++ b/Lisp/vf_linienzug.lsp @@ -215,6 +215,11 @@ ;; seite "1"=links / "2"=rechts ;; menue fuehrende "Naechstes Element waehlen"-Antwort (nur GF-Bogen: "1") ;; winkel GF-Bogen/Vario-Kurve als INT (30/60/90), AS/ES als STR ("30"/"90") +;; GF-Bogen/Vario-Kurve-Winkel kommen zentral aus *vfk-gf-bogen-winkel* +;; (vf_konstanten.lsp, einmalige Definition '(30 60 90)) - hier nicht mehr +;; hartcodiert. Daher (list ...) statt Quote fuer die betroffenen Winkel-Slots. +;; Fallback, falls vf_konstanten (aus irgendeinem Grund) nicht geladen wurde. +(if (null *vfk-gf-bogen-winkel*) (setq *vfk-gf-bogen-winkel* '(30 60 90))) (setq *vfl-glied-schema* (list (cons "AS" @@ -225,10 +230,10 @@ '("seite" "STR" ("1" "2")))) (cons "GF-Bogen" (list '("menue" "STR" ("1")) - '("winkel" "INT" (30 60 90)) + (list "winkel" "INT" *vfk-gf-bogen-winkel*) '("seite" "STR" ("1" "2")))) (cons "Vario-Kurve" - (list '("winkel" "INT" (30 60 90)) + (list (list "winkel" "INT" *vfk-gf-bogen-winkel*) '("seite" "STR" ("1" "2")) '("variante" "STR" ("1" "2")))))) @@ -361,7 +366,7 @@ ((= kind "REAL") (cons "hoehe" nil)) ; Zielhoehe (Auf/Ab bzw. Linie-VF) ((= kind "PT") (cons "punkt" nil)) ((= kind "INT") ; eingebettete Vario-Kurve - (setq fehler (vfl-schema-feld-pruefen '("vk-winkel" "INT" (30 60 90)) val)) + (setq fehler (vfl-schema-feld-pruefen (list "vk-winkel" "INT" *vfk-gf-bogen-winkel*) val)) (cons "variokurve.winkel" fehler)) ((= kind "STR") (cond @@ -695,7 +700,7 @@ (unload_dialog dat) (if (= ergebnis 1) (vflw-pending-push-all - (list (nth (atoi gwinkel) '(30 60 90)) + (list (nth (atoi gwinkel) *vfk-gf-bogen-winkel*) (if (= gseite "1") "2" "1") (if (= gvariante "1") "2" "1")))))) (princ)) @@ -2506,7 +2511,7 @@ (vl-catch-all-apply 'vflw-gruppe-winkel-seite-impl (list "vfl-gf-bogen-winkel-header" (list (ssg-text "vfl-winkel-30") (ssg-text "vfl-winkel-60") (ssg-text "vfl-winkel-90")) - '(30 60 90)))) + *vfk-gf-bogen-winkel*))) (princ (ssg-text "vfl-gf-bogen-winkel-header")) (princ (ssg-text "vfl-winkel-30")) (princ (ssg-text "vfl-winkel-60")) @@ -2514,7 +2519,7 @@ (setq bwinkel (vfl-menu-winkel (ssg-text "vfl-prompt-wahl-winkel-30-60-90") (list (ssg-text "vfl-winkel-30") (ssg-text "vfl-winkel-60") (ssg-text "vfl-winkel-90")) - '(30 60 90) 90 "vfl-gf-bogen-winkel-header")) + *vfk-gf-bogen-winkel* 90 "vfl-gf-bogen-winkel-header")) (princ (ssg-text "vfl-gf-bogen-seite-header")) (princ (ssg-text "gf-seite-links")) (princ (ssg-text "gf-seite-rechts")) @@ -2589,7 +2594,7 @@ (setq kwinkel (vfl-menu-winkel (ssg-text "vfl-prompt-wahl-winkel-30-60-90") (list (ssg-text "vfl-opt3-30grad") (ssg-text "vfl-opt2-60grad") (ssg-text "vfl-opt1-90grad")) - '(30 60 90) 90 "vfl-variokurve-winkel-header")) + *vfk-gf-bogen-winkel* 90 "vfl-variokurve-winkel-header")) (princ (ssg-text "vfl-variokurve-seite-header")) (princ (ssg-text "gf-seite-links")) (princ (ssg-text "gf-seite-rechts")) @@ -3663,7 +3668,7 @@ (defun vfl-gf-bogen-slice-werte (slice / werte w s) (setq werte (vfl-schema-slice-werte "GF-Bogen" slice (list "1" 90 "1"))) (setq w (cadr werte) s (caddr werte)) - (list (vfl-winkel-normieren w '(30 60 90) 90) s)) + (list (vfl-winkel-normieren w *vfk-gf-bogen-winkel* 90) s)) ;; Pre-fill-faehiger Winkel+Seite-Dialog fuer den GF-Bogen (nutzt das ;; bestehende vflw_winkel_seite-Tile aus dem Wizard-DCL, aber mit Vorbelegung @@ -3686,8 +3691,8 @@ (add_list (ssg-text "vfl-winkel-90")) (end_list) ;; Winkel 30/60/90 -> Listenposition 0/1/2 - (set_tile "winkel" (itoa (- (length '(30 60 90)) - (length (member vor-winkel '(30 60 90)))))) + (set_tile "winkel" (itoa (- (length *vfk-gf-bogen-winkel*) + (length (member vor-winkel *vfk-gf-bogen-winkel*))))) (start_list "seite") (add_list (ssg-text "gf-seite-links")) (add_list (ssg-text "gf-seite-rechts")) @@ -3699,7 +3704,7 @@ (setq ergebnis (start_dialog)) (unload_dialog dat) (if (= ergebnis 1) - (list (nth (atoi gwinkel) '(30 60 90)) ; Listenposition 0/1/2 -> 30/60/90 + (list (nth (atoi gwinkel) *vfk-gf-bogen-winkel*) ; Listenposition 0/1/2 -> 30/60/90 (if (= gseite "1") "2" "1")) ; Liste 0=links/1=rechts -> code "1"/"2" nil)))) @@ -3724,8 +3729,8 @@ (add_list (ssg-text "vfl-opt1-90grad")) (end_list) ;; Winkel 30/60/90 -> Listenposition 0/1/2 - (set_tile "winkel" (itoa (- (length '(30 60 90)) - (length (member vor-winkel '(30 60 90)))))) + (set_tile "winkel" (itoa (- (length *vfk-gf-bogen-winkel*) + (length (member vor-winkel *vfk-gf-bogen-winkel*))))) (start_list "seite") (add_list (ssg-text "gf-seite-links")) (add_list (ssg-text "gf-seite-rechts")) @@ -3742,7 +3747,7 @@ (setq ergebnis (start_dialog)) (unload_dialog dat) (if (= ergebnis 1) - (list (nth (atoi gwinkel) '(30 60 90)) ; Listenposition 0/1/2 -> 30/60/90 + (list (nth (atoi gwinkel) *vfk-gf-bogen-winkel*) ; Listenposition 0/1/2 -> 30/60/90 (if (= gseite "1") "2" "1") ; Liste 0=links/1=rechts -> "1"/"2" (if (= gvariante "1") "2" "1")) ; Liste 0=aussen/1=innen -> "1"/"2" nil)))) @@ -3815,7 +3820,7 @@ (defun vfl-vario-slice-werte (slice / werte) (setq werte (vfl-schema-slice-werte "Vario-Kurve" slice (list 90 "1" "2"))) ;; Winkel gegen Fremdwerte absichern (analog GF-Bogen). - (list (vfl-winkel-normieren (car werte) '(30 60 90) 90) + (list (vfl-winkel-normieren (car werte) *vfk-gf-bogen-winkel* 90) (cadr werte) (caddr werte))) ;; Neue Vario-Kurve-Slice bauen.