From bf0237666b13aa24534d9c0556ca6f152716cd73 Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Sat, 29 Aug 2026 12:51:09 +0200 Subject: [PATCH] [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) --- Lisp/vf_konstanten.lsp | 9 +++++++++ Lisp/vf_linienzug.lsp | 9 +++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Lisp/vf_konstanten.lsp b/Lisp/vf_konstanten.lsp index c75b10f..caa3a47 100644 --- a/Lisp/vf_konstanten.lsp +++ b/Lisp/vf_konstanten.lsp @@ -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__" 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. diff --git a/Lisp/vf_linienzug.lsp b/Lisp/vf_linienzug.lsp index 79d11c5..f173a6c 100644 --- a/Lisp/vf_linienzug.lsp +++ b/Lisp/vf_linienzug.lsp @@ -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"))