[REFACTOR] VF-Linienzug: AS/ES-Winkel-Wertemenge zentral aus *vfk-as-es-winkel*

Die gueltige AS/ES-Winkel-Menge ("30"/"90") stand als Literal doppelt im
Glied-Schema. Jetzt einmalig als *vfk-as-es-winkel* in vf_konstanten.lsp,
Schema referenziert sie (mit Fallback in vf_linienzug).

BEWUSST bei STRING geblieben (nicht INT): AS/ES ist echt 2-wertig (keine
60-Grad-Bloecke), das Journal fuehrt AS/ES-Winkel als STR - eine Umstellung auf
INT haette Journal-Format + Alt-Block-Editier-Kompatibilitaet beruehrt (2
Cluster) fuer reine Konsistenz. Zentrale Konstante beseitigt die Streuung ohne
dieses Risiko (Entscheidung mit Nutzer abgestimmt).

Die index-basierten Dialog-Mappings (if gwinkel "1" -> "30"/"90") bleiben,
da sie an feste 2-Options-DCL-Layouts gebunden sind (keine Listen-Lookups).

Paren-Balance geprueft.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-29 12:51:09 +02:00
parent 3a0caadbb5
commit bf0237666b
2 changed files with 14 additions and 4 deletions
+9
View File
@@ -80,6 +80,15 @@
;; falls diese Datei nicht geladen wurde.
(if (null *vfk-gf-bogen-winkel*) (setq *vfk-gf-bogen-winkel* '(30 60 90)))
;; AS-/ES-Element-Winkel: nur 30 und 90 Grad - anders als GF-Bogen/Vario-Kurve
;; gibt es KEINE 60-Grad-AS/ES-Bloecke (AS_Element_60/ES_Element_60 existieren
;; nirgends). Als STRING gefuehrt (Blockname "AS_Element_<winkel>_<seite>" wird
;; per strcat gebaut, Journal fuehrt AS/ES-Winkel als STR). Zentrale, einmalige
;; Quelle fuer die gueltige Wertemenge (vf_linienzug-Glied-Schema); die
;; Reihenfolge (30 vor 90) entspricht dem Schema. vf_linienzug hat einen
;; Fallback, falls diese Datei nicht geladen wurde.
(if (null *vfk-as-es-winkel*) (setq *vfk-as-es-winkel* '("30" "90")))
;; Etage-Typ: Schwenkwinkel der Ein-/Auslauf-Schraegsektion. Bereits als
;; ETAGE_HZ_WINKEL in vf_etage.lsp benannt (Wert 30, Kommentar "war frueher
;; 60") - hier nur gespiegelt.
+5 -4
View File
@@ -215,18 +215,19 @@
;; 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
;; GF-Bogen/Vario-Kurve-Winkel kommen zentral aus *vfk-gf-bogen-winkel*, AS/ES-
;; Winkel aus *vfk-as-es-winkel* (beide vf_konstanten.lsp) - 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)))
(if (null *vfk-as-es-winkel*) (setq *vfk-as-es-winkel* '("30" "90")))
(setq *vfl-glied-schema*
(list
(cons "AS"
(list '("winkel" "STR" ("30" "90"))
(list (list "winkel" "STR" *vfk-as-es-winkel*)
'("seite" "STR" ("1" "2"))))
(cons "ES"
(list '("winkel" "STR" ("30" "90"))
(list (list "winkel" "STR" *vfk-as-es-winkel*)
'("seite" "STR" ("1" "2"))))
(cons "GF-Bogen"
(list '("menue" "STR" ("1"))