VF-Linienzug AS/ES-Praeambel + csv:run-export entduplizieren
vf_linienzug.lsp: die 5-6x wortgleich ausgeschriebene AS-/ES-Winkel+Seite- Praeambel (Winkel 30/90, Seite links/rechts, Masse setzen) in zwei parametrische Helfer ausgelagert (vfl-frage-as-winkel-seite, vfl-frage-es-winkel-seite - Seiten-Headerkey als Parameter, symmetrisch zum bestehenden vfl-frage-es-seite). Ersetzt in modus1-AS, modus2-AS, modus2-ES. modus3-AS und die QC-Nachfrage bleiben (kein echtes Duplikat, abweichende Prompt-/Wizard-Semantik). export.lsp: csv:run-export (181 Z.) in Phasen zerlegt - csv:export-vorbereiten (Proxies/IDs/Zuordnung/Attribut-Update/Sep-Scan/REGENALL/bbox-Reset) und csv:python-aufrufen (Python-Skript-Aufruf + Exitcode-Auswertung). Runner liest sich jetzt als klare Sequenz. Verhaltensneutrale Extraktionen; Klammerbalance unveraendert, Python-Testsuite ohne neue Fehler (16 failed baseline vor/nach identisch). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> @
This commit is contained in:
+57
-48
@@ -5925,6 +5925,60 @@
|
||||
(vf-set-es-masse winkel seite)
|
||||
seite)
|
||||
|
||||
;; AS-Winkel (30/90) + Seite abfragen. Gemeinsame Schale fuer die frueher
|
||||
;; wortgleich in vf-linienzug-modus/-modus2/-modus3 UND vfl-qc-linie-mit-gf
|
||||
;; ausgeschriebene AS-Praeambel (Winkel-Frage 30/90, Seiten-Frage links/rechts,
|
||||
;; vf-set-as-masse) - Gegenstueck zu vfl-frage-es-seite. Setzt *vfl-as-winkel*
|
||||
;; und die AS-Masse (aus-dx/dz) fuer die Variante. Rueckgabe: Seite (links/rechts).
|
||||
;;
|
||||
;; seiten-headerkey ist der EINZIGE Unterschied zwischen den Aufrufstellen
|
||||
;; (modus1: "vfl-aus-seite-header", modus2: "gf-seite-aus-header") und daher
|
||||
;; Parameter. Die je Modus unterschiedliche VORANGEHENDE Wizard-Vorbereitung
|
||||
;; (vflw-gruppe-as-impl "AS setzen?" bzw. vflw-gruppe-winkel-seite-impl) bleibt
|
||||
;; bewusst an der Aufrufstelle - die abzudeckende Winkel/Seite-Frage selbst ist
|
||||
;; ueberall identisch. vf-frage-element-winkel/vflw-wahl zeigen den Wizard-
|
||||
;; Winkeldialog bei aktivem Wizard-Modus schon selbst.
|
||||
(defun vfl-frage-as-winkel-seite (seiten-headerkey / antwort as-seite)
|
||||
(princ (ssg-text "vf-winkel-aus-header"))
|
||||
(princ (ssg-text "vf-winkel-90"))
|
||||
(princ (ssg-text "vf-winkel-30"))
|
||||
(setq *vfl-as-winkel*
|
||||
(vfl-in-value "STR"
|
||||
(function (lambda () (vf-frage-element-winkel "vf-winkel-aus-header"))))) ; 30/90 vor Seite
|
||||
(princ (ssg-text seiten-headerkey))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
(princ (ssg-text "gf-seite-rechts"))
|
||||
(setq antwort (vfl-menu (ssg-text "prompt-wahl-1-2")
|
||||
(list (ssg-text "gf-seite-links") (ssg-text "gf-seite-rechts")) 1
|
||||
seiten-headerkey))
|
||||
(setq as-seite (if (= antwort "2") "rechts" "links"))
|
||||
(vf-set-as-masse *vfl-as-winkel* as-seite) ; Masse fuer Variante
|
||||
as-seite)
|
||||
|
||||
;; ES-Winkel (30/90) + Seite abfragen - MARKER-FREIE Schale fuer die Modi 2/3,
|
||||
;; die das ES-Element als eigene Praeambel (Start/Ziel bereits fest) abfragen
|
||||
;; und ihr eigenes Journal-/Masse-Schema fuehren. Unterscheidet sich bewusst
|
||||
;; von vfl-frage-es-seite (Modus 1), das zusaetzlich einen Journal-Marker "ES"
|
||||
;; setzt und ueber vfl-es-masse-setzen laeuft - das ist Teil des Modus-1-
|
||||
;; Kettenglied-Replays und darf hier NICHT feuern. Setzt *vfl-es-winkel* und
|
||||
;; die ES-Masse (ein-dx/dz). Rueckgabe: Seite (links/rechts).
|
||||
(defun vfl-frage-es-winkel-seite (seiten-headerkey / antwort es-seite)
|
||||
(princ (ssg-text "vf-winkel-ein-header"))
|
||||
(princ (ssg-text "vf-winkel-90"))
|
||||
(princ (ssg-text "vf-winkel-30"))
|
||||
(setq *vfl-es-winkel*
|
||||
(vfl-in-value "STR"
|
||||
(function (lambda () (vf-frage-element-winkel "vf-winkel-ein-header"))))) ; 30/90 vor Seite
|
||||
(princ (ssg-text seiten-headerkey))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
(princ (ssg-text "gf-seite-rechts"))
|
||||
(setq antwort (vfl-menu (ssg-text "prompt-wahl-1-2")
|
||||
(list (ssg-text "gf-seite-links") (ssg-text "gf-seite-rechts")) 1
|
||||
seiten-headerkey))
|
||||
(setq es-seite (if (= antwort "2") "rechts" "links"))
|
||||
(vf-set-es-masse *vfl-es-winkel* es-seite) ; Masse fuer Variante
|
||||
es-seite)
|
||||
|
||||
;; dialog-schon-gezeigt: T, wenn Winkel+Seite BEREITS ueber einen vorherigen
|
||||
;; kombinierten Dialog (vflw-gruppe-as-impl, "ES-Element setzen?" + Winkel +
|
||||
;; Seite in einem Bildschirm) abgefragt und in die Pending-Queue gelegt
|
||||
@@ -6372,22 +6426,7 @@
|
||||
;; tragen, wenn diesmal kein AS gewaehlt wird.
|
||||
(setq *vfl-as-winkel* nil *vfl-es-winkel* nil)
|
||||
(if as-vorhanden
|
||||
(progn
|
||||
(princ (ssg-text "vf-winkel-aus-header"))
|
||||
(princ (ssg-text "vf-winkel-90"))
|
||||
(princ (ssg-text "vf-winkel-30"))
|
||||
(setq *vfl-as-winkel*
|
||||
(vfl-in-value "STR"
|
||||
(function (lambda () (vf-frage-element-winkel "vf-winkel-aus-header"))))) ; 30/90 vor Seite
|
||||
(princ (ssg-text "vfl-aus-seite-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
(princ (ssg-text "gf-seite-rechts"))
|
||||
(setq antwort (vfl-menu (ssg-text "prompt-wahl-1-2")
|
||||
(list (ssg-text "gf-seite-links") (ssg-text "gf-seite-rechts")) 1
|
||||
"vfl-aus-seite-header"))
|
||||
(setq as-seite (if (= antwort "2") "rechts" "links"))
|
||||
(vf-set-as-masse *vfl-as-winkel* as-seite) ; Masse fuer Variante
|
||||
)
|
||||
(setq as-seite (vfl-frage-as-winkel-seite "vfl-aus-seite-header"))
|
||||
)
|
||||
;; ES-Seite wird erst am Kettenende abgefragt (siehe vfl-frage-es-seite),
|
||||
;; da das ES-Element erst dort eingefuegt wird.
|
||||
@@ -9231,22 +9270,7 @@
|
||||
;; Globals pro Lauf zuruecksetzen (siehe Kommentar in vf-linienzug-modus).
|
||||
(setq *vfl-as-winkel* nil *vfl-es-winkel* nil)
|
||||
(if as-vorhanden
|
||||
(progn
|
||||
(princ (ssg-text "vf-winkel-aus-header"))
|
||||
(princ (ssg-text "vf-winkel-90"))
|
||||
(princ (ssg-text "vf-winkel-30"))
|
||||
(setq *vfl-as-winkel*
|
||||
(vfl-in-value "STR"
|
||||
(function (lambda () (vf-frage-element-winkel "vf-winkel-aus-header"))))) ; 30/90 vor Seite
|
||||
(princ (ssg-text "gf-seite-aus-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
(princ (ssg-text "gf-seite-rechts"))
|
||||
(setq antwort (vfl-menu (ssg-text "prompt-wahl-1-2")
|
||||
(list (ssg-text "gf-seite-links") (ssg-text "gf-seite-rechts")) 1
|
||||
"gf-seite-aus-header"))
|
||||
(setq as-seite (if (= antwort "2") "rechts" "links"))
|
||||
(vf-set-as-masse *vfl-as-winkel* as-seite) ; Masse fuer Variante
|
||||
)
|
||||
(setq as-seite (vfl-frage-as-winkel-seite "gf-seite-aus-header"))
|
||||
)
|
||||
|
||||
;; --- 3. Endpunkt + Z + ES-Seite (NEU in Modus 3) ---
|
||||
@@ -9269,22 +9293,7 @@
|
||||
"vfl-es-setzen-frage"))
|
||||
(setq es-vorhanden (/= antwort "2"))
|
||||
(if es-vorhanden
|
||||
(progn
|
||||
(princ (ssg-text "vf-winkel-ein-header"))
|
||||
(princ (ssg-text "vf-winkel-90"))
|
||||
(princ (ssg-text "vf-winkel-30"))
|
||||
(setq *vfl-es-winkel*
|
||||
(vfl-in-value "STR"
|
||||
(function (lambda () (vf-frage-element-winkel "vf-winkel-ein-header"))))) ; 30/90 vor Seite
|
||||
(princ (ssg-text "gf-seite-ein-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
(princ (ssg-text "gf-seite-rechts"))
|
||||
(setq antwort (vfl-menu (ssg-text "prompt-wahl-1-2")
|
||||
(list (ssg-text "gf-seite-links") (ssg-text "gf-seite-rechts")) 1
|
||||
"gf-seite-ein-header"))
|
||||
(setq es-seite (if (= antwort "2") "rechts" "links"))
|
||||
(vf-set-es-masse *vfl-es-winkel* es-seite) ; Masse fuer Variante
|
||||
)
|
||||
(setq es-seite (vfl-frage-es-winkel-seite "gf-seite-ein-header"))
|
||||
)
|
||||
|
||||
;; --- 4. Sortieren + Analysieren + Eck-Vorpruefung ---
|
||||
|
||||
Reference in New Issue
Block a user