[REFACTOR] VF-Linienzug: Vario-Kurven-Winkelliste (90 60 30) -> (30 60 90)

Vereinheitlicht die Anzeige-Reihenfolge der Vario-Kurven-Winkel auf 30/60/90
(wie GF-Bogen). Betroffen: Glied-Schema, schema-feld-pruefen, Wizard-Gruppen-
dialog (vflw-gruppe-variokurve-impl), Live-Menue (vfl-insert-vario-kurve),
Edit-Dialog (vfl-glied-vario-dialog) und Slice-Reader (vfl-vario-slice-werte).

Labels, winkel-werte-Liste und Default-Index (jetzt Position 2 = 90) ueberall
konsistent geflippt. Reine Anzeige-Aenderung: das Journal speichert ohnehin den
ECHTEN Winkelwert (30/60/90), Blocknamen (Vario_Kurve_*_<itoa winkel>_TEF_*)
unveraendert -> bestehende Linienzug-Bloecke bleiben kompatibel
(vfl-winkel-normieren validiert ordnungsunabhaengig gegen die Menge).

Paren-Balance geprueft.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-29 10:21:19 +02:00
parent 1e7a4d8620
commit 089fbb8eed
+24 -22
View File
@@ -228,7 +228,7 @@
'("winkel" "INT" (30 60 90))
'("seite" "STR" ("1" "2"))))
(cons "Vario-Kurve"
(list '("winkel" "INT" (90 60 30))
(list '("winkel" "INT" (30 60 90))
'("seite" "STR" ("1" "2"))
'("variante" "STR" ("1" "2"))))))
@@ -361,7 +361,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" (90 60 30)) val))
(setq fehler (vfl-schema-feld-pruefen '("vk-winkel" "INT" (30 60 90)) val))
(cons "variokurve.winkel" fehler))
((= kind "STR")
(cond
@@ -667,12 +667,14 @@
(if (and dat (>= dat 0)) (unload_dialog dat))
(progn
(set_tile "kopf" (vflw-clean (ssg-text "vfl-variokurve-winkel-header")))
;; Winkel-Reihenfolge vereinheitlicht auf 30/60/90 (wie GF-Bogen);
;; Default 90 -> Listenposition 2.
(start_list "winkel")
(add_list (vflw-clean (ssg-text "vfl-opt1-90grad")))
(add_list (vflw-clean (ssg-text "vfl-opt2-60grad")))
(add_list (vflw-clean (ssg-text "vfl-opt3-30grad")))
(add_list (vflw-clean (ssg-text "vfl-opt2-60grad")))
(add_list (vflw-clean (ssg-text "vfl-opt1-90grad")))
(end_list)
(set_tile "winkel" "0")
(set_tile "winkel" "2")
(start_list "seite")
(add_list (vflw-clean (ssg-text "gf-seite-links")))
(add_list (vflw-clean (ssg-text "gf-seite-rechts")))
@@ -693,7 +695,7 @@
(unload_dialog dat)
(if (= ergebnis 1)
(vflw-pending-push-all
(list (nth (atoi gwinkel) '(90 60 30))
(list (nth (atoi gwinkel) '(30 60 90))
(if (= gseite "1") "2" "1")
(if (= gvariante "1") "2" "1"))))))
(princ))
@@ -952,8 +954,8 @@
;; als echten Winkel (INT-Eintrag = 30/60/90), NICHT als Auswahl-Index 1/2/3.
;; Damit ist jedes Journal/Log selbsterklaerend und alle GF-Bogen-/Vario-Kurve-
;; Stellen (Live-Bau, Slice, Edit) teilen denselben Wert. winkel-werte ist die
;; Liste der zur Optionsreihenfolge gehoerenden Winkel (z.B. (30 60 90) oder
;; (90 60 30)); default-winkel der vorbelegte Winkelwert. Bei Konsolen-Eingabe
;; Liste der zur Optionsreihenfolge gehoerenden Winkel (einheitlich (30 60 90)
;; fuer GF-Bogen UND Vario-Kurve); default-winkel der vorbelegte Winkelwert. Bei Konsolen-Eingabe
;; tippt der Nutzer den Winkel direkt (30/60/90); ungueltige Eingaben fallen auf
;; den naechstliegenden gueltigen Wert bzw. den Default. Rueckgabe: Winkel (Int).
(defun vfl-menu-winkel (prompt option-labels winkel-werte default-winkel frage-key /
@@ -2581,13 +2583,13 @@
(vfl-journal-mark "Vario-Kurve")
(if (vfl-wizard-aktiv) (vl-catch-all-apply 'vflw-gruppe-variokurve-impl nil))
(princ (ssg-text "vfl-variokurve-winkel-header"))
(princ (ssg-text "vfl-opt1-90grad"))
(princ (ssg-text "vfl-opt2-60grad"))
(princ (ssg-text "vfl-opt3-30grad"))
(princ (ssg-text "vfl-opt2-60grad"))
(princ (ssg-text "vfl-opt1-90grad"))
(setq kwinkel (vfl-menu-winkel (ssg-text "vfl-prompt-wahl-winkel-30-60-90")
(list (ssg-text "vfl-opt1-90grad") (ssg-text "vfl-opt2-60grad")
(ssg-text "vfl-opt3-30grad"))
'(90 60 30) 90 "vfl-variokurve-winkel-header"))
(list (ssg-text "vfl-opt3-30grad") (ssg-text "vfl-opt2-60grad")
(ssg-text "vfl-opt1-90grad"))
'(30 60 90) 90 "vfl-variokurve-winkel-header"))
(princ (ssg-text "vfl-variokurve-seite-header"))
(princ (ssg-text "gf-seite-links"))
(princ (ssg-text "gf-seite-rechts"))
@@ -3703,9 +3705,9 @@
;; Pre-fill-faehiger Winkel+Seite+Variante-Dialog fuer die Vario-Kurve (nutzt
;; das bestehende vflw_variokurve-Tile mit Vorbelegung). Wizard-Optionsreihen-
;; folge: Winkel (90 60 30), Seite (links rechts), Variante (aussen innen) -
;; folge: Winkel (30 60 90), Seite (links rechts), Variante (aussen innen) -
;; genau wie vflw-gruppe-variokurve-impl. vor-* sind die aktuellen Werte:
;; vor-winkel echter Wert 90/60/30, vor-seite-code/vor-variante-code je "1"/"2".
;; vor-winkel echter Wert 30/60/90, vor-seite-code/vor-variante-code je "1"/"2".
;; Rueckgabe: (winkel seite-code variante-code) oder nil bei Abbruch.
(defun vfl-glied-vario-dialog (vor-winkel vor-seite-code vor-variante-code /
dat dcl-pfad ergebnis gwinkel gseite gvariante)
@@ -3717,13 +3719,13 @@
(progn
(set_tile "kopf" (ssg-text "vfl-variokurve-winkel-header"))
(start_list "winkel")
(add_list (ssg-text "vfl-opt1-90grad"))
(add_list (ssg-text "vfl-opt2-60grad"))
(add_list (ssg-text "vfl-opt3-30grad"))
(add_list (ssg-text "vfl-opt2-60grad"))
(add_list (ssg-text "vfl-opt1-90grad"))
(end_list)
;; Winkel 90/60/30 -> Listenposition 0/1/2
(set_tile "winkel" (itoa (- (length '(90 60 30))
(length (member vor-winkel '(90 60 30))))))
;; Winkel 30/60/90 -> Listenposition 0/1/2
(set_tile "winkel" (itoa (- (length '(30 60 90))
(length (member vor-winkel '(30 60 90))))))
(start_list "seite")
(add_list (ssg-text "gf-seite-links"))
(add_list (ssg-text "gf-seite-rechts"))
@@ -3740,7 +3742,7 @@
(setq ergebnis (start_dialog))
(unload_dialog dat)
(if (= ergebnis 1)
(list (nth (atoi gwinkel) '(90 60 30)) ; Listenposition 0/1/2 -> 90/60/30
(list (nth (atoi gwinkel) '(30 60 90)) ; 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))))
@@ -3813,7 +3815,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) '(90 60 30) 90)
(list (vfl-winkel-normieren (car werte) '(30 60 90) 90)
(cadr werte) (caddr werte)))
;; Neue Vario-Kurve-Slice bauen.