feat: VF-Linienzug Modus 1 - steigende Gefaellestrecke (Sonderfall, bis 3 Grad) mit automatischen Uebergangsboegen
Neue dritte Option "Steigend" im Dialog "Wie soll die Laenge dieser Gefaellestrecke bestimmt werden?": erlaubt eine GF, die statt zu fallen bis zu 3 Grad steigt (Neigungswinkel 0..3 statt bisher nur 0..3 fallend). 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 - fuer den Normalfall (fallend->fallend) bleibt das ein No-Op. Ausserdem in dieser Sitzung: - Modus 2: Separator VOR/NACH bei GF-Segmenten, Wahlfreiheit am Lauf-Anfang/-Ende (Umlenkstation/Motorstation optional), Stufe-1/2- Vereinheitlichung wie in Modus 1. - Stufe-1/Stufe-2-Entscheidungslogik (vfl-winkel-stufe-entscheidung): fehlenden Stufe-2-Fallback fuer "Auf" und "Ab, steiler als 3 Grad" ergaenzt; ungenauen "~3 Grad reine GF"-Kurzschluss in zwei Funktionen durch praezise Berechnung ersetzt (behebt reale Hoehenfehler). - Wizard-Dialoge: DCL-Text-Umbruch fuer lange Hinweise (vflw-umbruch-zeilen, 3 Groessenvarianten statt fester Zeilenzahl), Konsolen-Echo der Wizard-Antworten fuer Debug-Logs. - Neuer Regressionstest TEST_LINIENZUG_STUFE2 (linienzug_tests_stufe2.json) reproduziert den behobenen Stufe-2-Kettenende-Bug; bestehender LZ_Standard-Test an aktuelle Menue-Nummerierung angepasst (Kettenanfang- Menue ist inzwischen 6 statt 4 Optionen gross). - Neue Anleitung doc/vf_linienzug_modus1_anleitung.md: Modus 1 anhand des obigen Testfalls erklaert (Fragen-Bedeutung, Stufe-1/2-Logik, typische Stolperfallen: GF laengenhungrig bei 3 Grad, fester Motor+Separator+ES- Fussabdruck, 90-Grad-Element-Versatz). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -767,6 +767,9 @@
|
||||
|
||||
;; AUS-Element: 30/90 (vor Seite), dann Seite (vor Winkelberechnung, da die
|
||||
;; Laengenanpassung von der AS/ES-Masse abhaengt). Masse fuer Variante setzen.
|
||||
(princ (ssg-text "vf-winkel-aus-header"))
|
||||
(princ (ssg-text "vf-winkel-90"))
|
||||
(princ (ssg-text "vf-winkel-30"))
|
||||
(setq gf-as-winkel (vf-frage-element-winkel "vf-winkel-aus-header"))
|
||||
(princ (ssg-text "gf-seite-aus-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
@@ -776,6 +779,9 @@
|
||||
(vf-set-as-masse gf-as-winkel as-seite)
|
||||
|
||||
;; EIN-Element: 30/90 + Seite
|
||||
(princ (ssg-text "vf-winkel-ein-header"))
|
||||
(princ (ssg-text "vf-winkel-90"))
|
||||
(princ (ssg-text "vf-winkel-30"))
|
||||
(setq gf-es-winkel (vf-frage-element-winkel "vf-winkel-ein-header"))
|
||||
(princ (ssg-text "gf-seite-ein-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
@@ -1735,6 +1741,9 @@
|
||||
(setq winkel (float winkel))
|
||||
|
||||
;; AUS-Element: 30/90 + Seite
|
||||
(princ (ssg-text "vf-winkel-aus-header"))
|
||||
(princ (ssg-text "vf-winkel-90"))
|
||||
(princ (ssg-text "vf-winkel-30"))
|
||||
(setq gf-as-winkel (vf-frage-element-winkel "vf-winkel-aus-header"))
|
||||
(princ (ssg-text "gf-seite-aus-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
@@ -1743,6 +1752,9 @@
|
||||
(setq as-seite (if (= antwort "2") "rechts" "links"))
|
||||
|
||||
;; EIN-Element: 30/90 + Seite
|
||||
(princ (ssg-text "vf-winkel-ein-header"))
|
||||
(princ (ssg-text "vf-winkel-90"))
|
||||
(princ (ssg-text "vf-winkel-30"))
|
||||
(setq gf-es-winkel (vf-frage-element-winkel "vf-winkel-ein-header"))
|
||||
(princ (ssg-text "gf-seite-ein-header"))
|
||||
(princ (ssg-text "gf-seite-links"))
|
||||
|
||||
Reference in New Issue
Block a user