feat: VF-Linienzug Linie-GF - Separator VOR/NACH, Endpunkt/Zielhoehe-Vorwahl, steigende GF (Sonderfall bis 3 Grad)
Auf der neuen Kollegen-Architektur (Stufe 0-2: Spec/Journal/Replay-System in vf_spec.lsp, Frage-Schale/Bauteil-Trennung) neu aufgebaut, nachdem der urspruengliche Stand (Commit e76e24e) auf einer aelteren Basis beruhte und per Rebase-Analyse als eigenstaendige, unabhaengige Erweiterung erkannt wurde (der Kollege hat nichts entfernt - diese Features existierten vorher nur lokal uncommitted). Drei Erweiterungen fuer "Neue Linie: GF" in vf-linienzug-modus: - Separator VOR/NACH direkt vor bzw. nach der Gefaellestrecke einfuegbar. - Aeussere Vorwahl "Wie soll die Laenge bestimmt werden?": Endpunkt waehlen (bisheriges Verhalten) oder Zielhoehe zuerst festlegen (Winkel wird daraus berechnet). - Dritte Option "Steigende GF" (Sonderfall, 0 bis 3 Grad): erlaubt eine GF, die statt zu fallen steigt. Neuer Helfer vfl-bogen-uebergang erkennt anhand der tatsaechlichen Frame-Neigung, ob 0/1/2 Uebergangsboegen (Vario_Bogen_auf_3/ab_3) noetig sind, und baut sie automatisch - im Normalfall (fallend->fallend) ein No-Op. Lisp/vf_spec.lsp (Kollegen-Spec/Headless-Bau-System) um die drei neuen Felder (laenge_modus/sep_vor/sep_nach/steigend_modus) erweitert, mit Defaults, die alte Specs unveraendert lassen - haelt die "Spec-Pfad == interaktiver Pfad"-Invariante seines Systems (TEST_HUNDM05/VF_SPEC_BAU) intakt. tests/test_vf_spec.lsp entsprechend mit neuen Testfaellen ergaenzt. Neuer Regressionstest TEST_LINIENZUG_STUFE2 (linienzug_tests_stufe2.json) sowie Anleitung doc/vf_linienzug_modus1_anleitung.md aus dem urspruenglichen Commit uebernommen; die Gefaelle-Hoehe/Winkel-Optionsreihenfolge im Testdatensatz an die jetzt geltende (Kollegen-)Konvention angepasst. Offen (bewusst zurueckgestellt): lib/vf_spec_export.py (Python-Vorwaerts- Emitter, Pendant zu vf_spec.lsp) noch nicht nachgezogen - siehe Folge-Commit. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
f4edb7339d
commit
23d653c4b3
+50
-4
@@ -125,20 +125,63 @@
|
||||
(defun tsp-tests-glieder ( / spec)
|
||||
|
||||
;; --- Linie-GF, Kettenende mit ES ---
|
||||
;; Erste Sektion: Menue-Code "1" (4 Optionen, ohne Frame).
|
||||
;; Erste Sektion: Menue-Code "1" (4 Optionen, ohne Frame). laenge_modus
|
||||
;; "endpunkt" (Default, Zweig A): DL(+hz), dann Separator vor/nach, dann
|
||||
;; die Gefaelle-Wahl (Hoehe/Winkel) wie bisher.
|
||||
(setq spec (tsp-spec T (list
|
||||
(tsp-sek (list (cons "glied" "Linie-GF") (cons "dl" 5500.0)
|
||||
(cons "hz" 0.0) (cons "gefaelle" "winkel")
|
||||
(tsp-sek (list (cons "glied" "Linie-GF") (cons "laenge_modus" "endpunkt")
|
||||
(cons "dl" 5500.0) (cons "hz" 0.0)
|
||||
(cons "sep_vor" 0) (cons "sep_nach" 0)
|
||||
(cons "gefaelle" "winkel")
|
||||
(cons "winkel" 3.0) (cons "ende" "ja-mit-es")) nil)
|
||||
(tsp-es "90" "rechts"))))
|
||||
(tsp-journal-eq "Linie-GF + ES"
|
||||
(append (tsp-pre-mit-as)
|
||||
(list (cons "STEP" "Linie-GF") (cons "STR" "1")
|
||||
(cons "STR" "1") ; laenge_modus: endpunkt
|
||||
(cons "DL" 5500.0) (cons "REAL" 0.0)
|
||||
(cons "STR" "2") (cons "STR" "2") ; Separator vor / nach
|
||||
(cons "STR" "2") (cons "REAL" 3.0) (cons "STR" "1")
|
||||
(cons "STEP" "ES") (cons "STR" "90") (cons "STR" "2")))
|
||||
(vsp-journal spec))
|
||||
|
||||
;; --- Linie-GF, Zielhoehe zuerst (laenge_modus "hoehe") ---
|
||||
;; Kein Separator-Paar VOR der Hoehen-/Winkel-Eingabe wie im Endpunkt-Zweig
|
||||
;; - hier stehen sie NACH DL(+hz), aber vor Hoehe/Winkel (siehe
|
||||
;; vf-linienzug-modus, Zweig B).
|
||||
(setq spec (tsp-spec T (list
|
||||
(tsp-sek (list (cons "glied" "Linie-GF") (cons "laenge_modus" "hoehe")
|
||||
(cons "dl" 100.0) (cons "hz" 0.0)
|
||||
(cons "sep_vor" 1) (cons "sep_nach" 0)
|
||||
(cons "hoehe" 1800.0) (cons "winkel" 3.0)
|
||||
(cons "ende" "nein")) nil))))
|
||||
(tsp-journal-eq "Linie-GF, Zielhoehe zuerst"
|
||||
(append (tsp-pre-mit-as)
|
||||
(list (cons "STEP" "Linie-GF") (cons "STR" "1")
|
||||
(cons "STR" "2") ; laenge_modus: hoehe
|
||||
(cons "DL" 100.0) (cons "REAL" 0.0)
|
||||
(cons "STR" "1") (cons "STR" "2") ; Separator vor(ja)/nach(nein)
|
||||
(cons "REAL" 1800.0) (cons "REAL" 3.0)
|
||||
(cons "STR" "3")))
|
||||
(vsp-journal spec))
|
||||
|
||||
;; --- Linie-GF, Sonderfall Steigend, Endpunkt-Unterwahl ---
|
||||
;; KEIN Separator-Feld (die steigende GF kennt keine Separator-Frage).
|
||||
(setq spec (tsp-spec T (list
|
||||
(tsp-sek (list (cons "glied" "Linie-GF") (cons "laenge_modus" "steigend")
|
||||
(cons "steigend_modus" "endpunkt")
|
||||
(cons "dl" 800.0) (cons "hz" 0.0)
|
||||
(cons "winkel" 2.0) (cons "ende" "nein")) nil))))
|
||||
(tsp-journal-eq "Linie-GF, Steigend + Endpunkt"
|
||||
(append (tsp-pre-mit-as)
|
||||
(list (cons "STEP" "Linie-GF") (cons "STR" "1")
|
||||
(cons "STR" "3") ; laenge_modus: steigend
|
||||
(cons "STR" "1") ; steigend_modus: endpunkt
|
||||
(cons "DL" 800.0) (cons "REAL" 0.0)
|
||||
(cons "REAL" 2.0)
|
||||
(cons "STR" "3")))
|
||||
(vsp-journal spec))
|
||||
|
||||
;; --- Horizontal-VF: horizontaler Erstkoerper ---
|
||||
;; Nur hier stehen Separator vor/nach VOR der Endpunkt-Antwort
|
||||
;; (vfl-baue-horizontal-koerper im Ziel-Modus).
|
||||
@@ -187,7 +230,8 @@
|
||||
|
||||
;; --- GF-Bogen als ZWEITE Sektion ---
|
||||
;; Ab der zweiten Sektion gilt die 5-Optionen-Tabelle: Linie-GF ist dort
|
||||
;; "2" (nicht mehr "1"), GF-Bogen ist "1".
|
||||
;; "2" (nicht mehr "1"), GF-Bogen ist "1". laenge_modus/sep_vor/sep_nach
|
||||
;; fehlen absichtlich (Default "endpunkt"/nein/nein, deckt alte Specs ab).
|
||||
(setq spec (tsp-spec T (list
|
||||
(tsp-sek (list (cons "glied" "Linie-GF") (cons "dl" 3000.0)
|
||||
(cons "hz" 180.0) (cons "gefaelle" "hoehe")
|
||||
@@ -197,7 +241,9 @@
|
||||
(tsp-journal-eq "GF-Bogen als zweite Sektion (Menue-Codes am Frame)"
|
||||
(append (tsp-pre-mit-as)
|
||||
(list (cons "STEP" "Linie-GF") (cons "STR" "1")
|
||||
(cons "STR" "1") ; laenge_modus: endpunkt (Default)
|
||||
(cons "DL" 3000.0) (cons "REAL" 180.0)
|
||||
(cons "STR" "2") (cons "STR" "2") ; Separator vor/nach (Default: nein)
|
||||
(cons "STR" "1") (cons "REAL" 2500.0) (cons "STR" "3")
|
||||
(cons "STEP" "GF-Bogen") (cons "STR" "1")
|
||||
(cons "INT" 60) (cons "STR" "2")))
|
||||
|
||||
Reference in New Issue
Block a user