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
+42
-10
@@ -33,7 +33,10 @@
|
||||
;;
|
||||
;; Aufruf in BricsCAD:
|
||||
;; (load (strcat (getenv "DXFMAKRO") "/tests/test_linienzug.lsp"))
|
||||
;; TEST_LINIENZUG
|
||||
;; TEST_LINIENZUG (Standard-Szenario, linienzug_tests.json, in
|
||||
;; alltests.json/SSG_RUN_ALL_TESTS registriert)
|
||||
;; TEST_LINIENZUG_STUFE2 (Stufe-2-Fallback-Regressionstest Kettenende,
|
||||
;; linienzug_tests_stufe2.json, manueller Aufruf)
|
||||
;; ============================================================
|
||||
|
||||
;; Naechste Skript-Antwort liefern (FIFO). Bei leerer Queue Warnung + "".
|
||||
@@ -126,8 +129,17 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun c:TEST_LINIENZUG ( / json-datei daten meta schritte-anz rest-anz status
|
||||
old-vgp old-gs old-gi old-gr err)
|
||||
;; --- Gemeinsamer Replay-Kern, von allen c:TEST_LINIENZUG*-Befehlen genutzt ---
|
||||
;; befehl-anzeige: nur fuer die Konsolen-Ueberschrift/ssg-start (String).
|
||||
;; test-id: Bezeichner fuer das *linienzug-test-results*-JSON (run-all-
|
||||
;; Konvention, siehe linienzug:export-results).
|
||||
;; Rueckgabe: (status schritte-anz rest-anz) - status ist "OK"/"ABWEICHUNG"/
|
||||
;; "FEHLER". Setzt zusaetzlich *linienzug-test-results* (letzter Aufruf
|
||||
;; gewinnt - identisch zum bisherigen Verhalten von c:TEST_LINIENZUG, das
|
||||
;; ebenfalls nur einen einzigen Testfall pro Lauf kennt).
|
||||
(defun tlz-run-datei (json-datei test-id befehl-anzeige /
|
||||
daten meta schritte-anz rest-anz status
|
||||
old-vgp old-gs old-gi old-gr err)
|
||||
(if (or (not *lib-initialized*) (null bogen-auf)) (init-bibliothek))
|
||||
(if (null (car (atoms-family 1 '("VF-LINIENZUG-MODUS"))))
|
||||
(progn
|
||||
@@ -138,12 +150,10 @@
|
||||
)
|
||||
|
||||
(princ "\n================================================================")
|
||||
(princ "\n TEST_LINIENZUG - VF-Linienzug Replay-Test")
|
||||
(princ (strcat "\n " befehl-anzeige " - VF-Linienzug Replay-Test"))
|
||||
(princ "\n================================================================")
|
||||
|
||||
;; --- Eingabe-Skript aus JSON laden ---
|
||||
(setq json-datei
|
||||
(strcat (getenv "DXFMAKRO") "\\tests\\testdata\\linienzug_tests.json"))
|
||||
(setq daten (ssg-load-json json-datei))
|
||||
(if (null daten)
|
||||
(progn
|
||||
@@ -158,7 +168,7 @@
|
||||
(princ (strcat "\n Eingabe-Schritte: " (itoa schritte-anz)))
|
||||
(if meta (princ (strcat "\n Szenario: " (ssg-val meta "beschreibung"))))
|
||||
|
||||
(ssg-start "TEST_LINIENZUG" '(("OSMODE") ("ATTREQ") ("ATTDIA")))
|
||||
(ssg-start befehl-anzeige '(("OSMODE") ("ATTREQ") ("ATTDIA")))
|
||||
(setvar "OSMODE" 0)
|
||||
(setvar "ATTREQ" 0)
|
||||
(setvar "ATTDIA" 0)
|
||||
@@ -192,11 +202,11 @@
|
||||
(if (vl-catch-all-error-p err)
|
||||
(progn
|
||||
(setq status "FEHLER")
|
||||
(princ (strcat "\n TEST_LINIENZUG: FEHLER -> "
|
||||
(princ (strcat "\n " befehl-anzeige ": FEHLER -> "
|
||||
(vl-catch-all-error-message err))))
|
||||
(progn
|
||||
(setq status (if (= rest-anz 0) "OK" "ABWEICHUNG"))
|
||||
(princ "\n TEST_LINIENZUG: Kette gebaut.")
|
||||
(princ (strcat "\n " befehl-anzeige ": Kette gebaut."))
|
||||
(if (> rest-anz 0)
|
||||
(princ (strcat "\n WARNUNG: " (itoa rest-anz)
|
||||
" Skript-Eintraege NICHT verbraucht (Ablauf weicht ab)."))
|
||||
@@ -214,12 +224,34 @@
|
||||
;; --- Ergebnis fuer run-all als JSON-String ablegen ---
|
||||
(setq *linienzug-test-results*
|
||||
(strcat " {\n"
|
||||
" \"test_id\": \"LZ_Standard\",\n"
|
||||
" \"test_id\": \"" test-id "\",\n"
|
||||
" \"status\": \"" status "\",\n"
|
||||
" \"schritte_gesamt\": " (itoa schritte-anz) ",\n"
|
||||
" \"schritte_offen\": " (itoa rest-anz) "\n"
|
||||
" }"))
|
||||
|
||||
(ssg-end)
|
||||
(list status schritte-anz rest-anz)
|
||||
)
|
||||
|
||||
(defun c:TEST_LINIENZUG ( / json-datei)
|
||||
(setq json-datei
|
||||
(strcat (getenv "DXFMAKRO") "\\tests\\testdata\\linienzug_tests.json"))
|
||||
(tlz-run-datei json-datei "LZ_Standard" "TEST_LINIENZUG")
|
||||
(princ)
|
||||
)
|
||||
|
||||
;; Zweiter Testfall (Regressionstest, in dieser Session neu aufgenommen):
|
||||
;; Stufe-2-Fallback beim Kettenende (typ=VF winkel=0, horizontales VF + GF-
|
||||
;; Ausgleich), siehe Beschreibung/Kommentare in linienzug_tests_stufe2.json.
|
||||
;; Eigenstaendiger Befehl statt zweitem Array-Eintrag in linienzug_tests.json,
|
||||
;; damit LZ_Standard unangetastet bleibt (jede JSON-Datei bleibt ein
|
||||
;; einzelnes Szenario, wie von tlz-daten->queue/-meta erwartet). NICHT in
|
||||
;; tests/alltests.json registriert - manueller Einzelaufruf, bei Bedarf
|
||||
;; spaeter dort ergaenzen.
|
||||
(defun c:TEST_LINIENZUG_STUFE2 ( / json-datei)
|
||||
(setq json-datei
|
||||
(strcat (getenv "DXFMAKRO") "\\tests\\testdata\\linienzug_tests_stufe2.json"))
|
||||
(tlz-run-datei json-datei "LZ_Stufe2_Kettenende" "TEST_LINIENZUG_STUFE2")
|
||||
(princ)
|
||||
)
|
||||
|
||||
+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")))
|
||||
|
||||
+295
@@ -0,0 +1,295 @@
|
||||
[
|
||||
{
|
||||
"beschreibung": "Stufe-2-Fallback-Regressionstest (Kettenende): Start Z2154 AS 90 Grad links -> Horizontal-VF (2x Vario-Kurve 90 rechts innen) -> Linie-GF 3 Grad (Sep vor+nach) -> Horizontal-VF (Vario-Kurve 30 rechts innen -> Auf 27 Grad -> Vario-Kurve 30 links aussen) -> Kettenende ueber 'Ist der Endpunkt der Foerderer?'-Option 3 mit ES 90 Grad links; GF2 (86mm) liegt unter der Mindestlaenge (400mm), Stufe 1 (Winkeltabelle) scheitert komplett (alle Kandidaten negative Laenge) -> Stufe 2 (vfl-winkel-stufe-entscheidung) liefert typ=VF winkel=0 (horizontales VF + GF-Ausgleich). Reproduziert den in dieser Session gefixten Bug (Stufe-2-Fallback griff im Kettenende-Zweig 'Ab, steiler als 3 Grad' bisher nicht, wenn Stufe 1 scheiterte) - erster erfolgreicher Stufe-2-Bau der Session, live in BricsCAD verifiziert.",
|
||||
"erwartung_dx_mm": 638,
|
||||
"erwartung_dy_mm": 0,
|
||||
"erwartung_dz_mm": 0,
|
||||
"erwartung_hinweis": "dX~638 = seitlicher Fussabdruck ES_Element_90 quer zur letzten Fahrtrichtung (Bauform des 90-Grad-ES-Elements, kein Baufehler). Kernzweck des Testfalls: Stufe-2-Fallback beim Kettenende (typ=VF winkel=0 im Kettenende-Abschluss, GF2=86mm unter Mindestlaenge -> 'trotzdem mit 86mm bauen?'=Ja)."
|
||||
},
|
||||
{
|
||||
"typ": "point_abs",
|
||||
"wert": [24377.817458, -10300, 2067],
|
||||
"kommentar": "getpoint Startpunkt der Kette (Rohwert aus dem realen BricsCAD-Testlauf)"
|
||||
},
|
||||
{
|
||||
"typ": "real",
|
||||
"wert": 2154.0,
|
||||
"kommentar": "getreal Hoehe (Z) Startpunkt"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring AS-Element setzen? (Ja)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring AS-Element Winkel - Menu-Index 1=90 Grad/2=30 Grad (vf-frage-element-winkel mappt den rohen Index auf den Winkel-STRING '90'/'30'; im Debug-Journal erscheint bereits der gemappte Wert '90', die Konsolen-/Mock-Eingabe selbst bleibt der Index)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring AS-Seite (links)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "5",
|
||||
"kommentar": "getstring Naechstes Element (Kettenanfang-Menue, 6 Optionen: 5 = Horizontal-VF)"
|
||||
},
|
||||
{
|
||||
"typ": "point_rel",
|
||||
"dL": 6082.461,
|
||||
"hz": 90,
|
||||
"kommentar": "getpoint Endpunkt Horizontal-VF (freie Richtung am Kettenanfang, hz-vorgabe=nil - hz=90 ist die vom Code gesnappte Richtung, direkt aus dem Debug-Journal (REAL-Eintrag unmittelbar nach dem DL-Eintrag) uebernommen; dieser REAL-Eintrag ist ein reiner Journal-Nebeneffekt von vfl-in-abstand und KEIN eigener Eingabe-Schritt, siehe Lisp/vf_linienzug.lsp vfl-in-abstand"
|
||||
},
|
||||
{
|
||||
"typ": "real",
|
||||
"wert": 1980.0,
|
||||
"kommentar": "getreal Ziel-Hoehe Eingang GF1 (eingang-modus=voll/nil, vollstaendiger Neuaufbau des VF-Eingangs)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein) - erste Frage innerhalb vfl-baue-horizontal-koerper (ziel-modus)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Naechstes im VarioFoerderer (Vario-Kurve)"
|
||||
},
|
||||
{
|
||||
"typ": "int",
|
||||
"wert": 90,
|
||||
"kommentar": "getint Vario-Kurve Winkel (90 Grad, roher Winkelwert - KEIN Auswahl-Index, siehe vfl-menu-winkel)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Vario-Kurve Seite (rechts)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Vario-Kurve Variante (innen)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Naechstes im VarioFoerderer (Horizontaler Foerderer)"
|
||||
},
|
||||
{
|
||||
"typ": "point_rel",
|
||||
"dL": 1300,
|
||||
"hz": 0,
|
||||
"kommentar": "getpoint Horizontal-Endpunkt innerhalb der VF-Einheit. hz=0 ANNAHME (NICHT direkt im Debug-/Konsolen-Auszug als 'hz=' ausgewiesen, sondern aus der Turn-Arithmetik hergeleitet: Start-hz=90, davor bereits eine 90-Grad-rechts-Vario-Kurve (-90) -> 90-90=0; dieselbe Turn-Konvention [rechts=-Winkel/links=+Winkel] ist an ZWEI anderen Stellen dieses Testfalls unabhaengig durch explizite 'hz='-Werte im Konsolen-Auszug bestaetigt, siehe die Vario_Bogen_ab_3/ab_27-Eintraege). BITTE in BricsCAD live gegenpruefen (einzige nicht direkt beleg-bestaetigte hz-Rekonstruktion dieses Testfalls)."
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein) - innerhalb vfl-baue-horizontal-koerper (ziel-modus)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Naechstes im VarioFoerderer (Vario-Kurve)"
|
||||
},
|
||||
{
|
||||
"typ": "int",
|
||||
"wert": 90,
|
||||
"kommentar": "getint Vario-Kurve Winkel (90 Grad)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Vario-Kurve Seite (rechts)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Vario-Kurve Variante (innen)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Ja, nur Motorstation) - schliesst die 1. Horizontal-VF-Einheit ab"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Ist das Kettenende (ES-Element)? (Nein, weiterbauen) - vfl-vf-einheit-abschluss"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Zusaetzlichen Separator an dieser Stelle einfuegen? (Nein)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Naechstes Element (Hauptmenue, 5 Optionen, Frame vorhanden: 2 = Neue Linie: GF)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Wie soll die Laenge dieser Gefaellestrecke bestimmt werden? (1 = Endpunkt waehlen)"
|
||||
},
|
||||
{
|
||||
"typ": "point_rel",
|
||||
"dL": 978.394396,
|
||||
"hz": -90,
|
||||
"kommentar": "getpoint Endpunkt Gefaellestrecke. hz=-90 DIREKT aus dem Debug-Journal bestaetigt (GEOMETRIE-Zeile 'vfl-insert-gf-segment (deltaL=379 hz=-90 winkel=3)')"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Separator VOR dieser Gefaellestrecke einfuegen? (Ja)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Separator NACH dieser Gefaellestrecke einfuegen? (Ja)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Gefaelle festlegen (1 = Hoehe, 2 = Neigungswinkel eingeben - Reihenfolge im Code seit dieser Sitzung getauscht)"
|
||||
},
|
||||
{
|
||||
"typ": "real",
|
||||
"wert": 3.0,
|
||||
"kommentar": "getreal Neigungswinkel (3 Grad)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "3",
|
||||
"kommentar": "getstring Ist das Kettenende? (3 = Nein, weiterbauen - 3-Optionen-Menue: 1=Ja+ES, 2=Ja ohne ES, 3=Nein)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "4",
|
||||
"kommentar": "getstring Naechstes Element (5 Optionen: 4 = Neue VF mit horizontalem Anfang/Horizontal-VF)"
|
||||
},
|
||||
{
|
||||
"typ": "point_rel",
|
||||
"dL": 888.101488,
|
||||
"hz": -90,
|
||||
"kommentar": "getpoint Endpunkt Horizontal-VF (2. Einheit). hz=-90 unveraendert gegenueber dem vorigen GF-Segment (keine Richtungsaenderung dazwischen); eingang-modus=separator (letztes Glied war der Separator NACH der Gefaellestrecke) -> KEINE Ziel-Hoehe-Frage fuer GF1 (im Unterschied zur 1. Horizontal-VF-Einheit)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein) - innerhalb vfl-baue-horizontal-koerper (ziel-modus)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Naechstes im VarioFoerderer (Vario-Kurve)"
|
||||
},
|
||||
{
|
||||
"typ": "int",
|
||||
"wert": 30,
|
||||
"kommentar": "getint Vario-Kurve Winkel (30 Grad)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Vario-Kurve Seite (rechts)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Vario-Kurve Variante (innen)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "3",
|
||||
"kommentar": "getstring Naechstes im VarioFoerderer (Auf/Ab-Foerderer)"
|
||||
},
|
||||
{
|
||||
"typ": "point_rel",
|
||||
"dL": 1614.972606,
|
||||
"hz": -120,
|
||||
"kommentar": "getpoint Endpunkt Auf/Ab-Foerderer. hz=-120 DIREKT bestaetigt (Konsolen-Auszug zeigt fuer den anschliessenden Vario_Bogen_ab_3_TEF_rechts explizit 'hz=-120 Grad' bei derselben Fahrtrichtung)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Kette kommt flach an - Richtung waehlen (1 = Auf)"
|
||||
},
|
||||
{
|
||||
"typ": "int",
|
||||
"wert": 8,
|
||||
"kommentar": "getint Winkel-/Hoehen-Tabelle: Auswahl-Index (NICHT der Winkel selbst) unter den GUELTIGEN Kandidaten - gueltig sind hier 3/6/9/12/15/18/21/27 Grad (8 Werte), Index 8 = letzter gueltiger Kandidat = 27 Grad (siehe Konsolen-Auszug '5/11: Vario_Bogen_auf_27_TEF_rechts')"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Ist der Endpunkt der Foerderer? (Nein)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "2",
|
||||
"kommentar": "getstring Naechstes im VarioFoerderer (Vario-Kurve)"
|
||||
},
|
||||
{
|
||||
"typ": "int",
|
||||
"wert": 30,
|
||||
"kommentar": "getint Vario-Kurve Winkel (30 Grad)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Vario-Kurve Seite (links)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Vario-Kurve Variante (aussen) - Konsolen-Auszug bestaetigt 'Vario_Kurve_links_30_TEF_aussen'"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "3",
|
||||
"kommentar": "getstring Ist der Endpunkt der Foerderer? (3 = Ja, Motorstation setzen + Kettenende definieren) - startet den Stufe-1/Stufe-2-Kettenende-Zweig (vfl-body-abschluss/vfl-body-zerlegung)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring ES-Element setzen? (Ja)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring ES-Element Winkel - Menu-Index 1=90 Grad/2=30 Grad (wie AS-Winkel oben, gleiches Mapping ueber vf-frage-element-winkel)"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring ES-Seite (links)"
|
||||
},
|
||||
{
|
||||
"typ": "point_rel",
|
||||
"dL": 1802.808856,
|
||||
"hz": -90,
|
||||
"kommentar": "getpoint Endpunkt Kettenende (vfl-body-abschluss). hz=-90 DIREKT bestaetigt: die im Debug-Log erreichte Position (25544.710135 -8783.275914 2270.287821) hat exakt dieselbe X- und Z-Koordinate wie die KS_AUS-Position der vorigen Vario-Kurve (25544.71 / 2270.29 lt. Konsolen-Auszug) - nur Y aendert sich, das ist ausschliesslich mit hz=-90 (reine Y-Richtung) vereinbar"
|
||||
},
|
||||
{
|
||||
"typ": "real",
|
||||
"wert": 2154.0,
|
||||
"kommentar": "getreal Ziel-Hoehe Kettenende. Ab hier laeuft vfl-body-zerlegung AUTOMATISCH: Stufe 1 (Winkeltabelle 3/6/9/.../51 Grad) scheitert komplett (alle Kandidaten ergeben negative L_VF), Stufe 2 (vfl-winkel-stufe-entscheidung/berechne-horizontale-mitte) liefert typ=VF winkel=0 L_GF=86 L_VF=286 - KEINE weitere Eingabe fuer diese Entscheidung noetig"
|
||||
},
|
||||
{
|
||||
"typ": "string",
|
||||
"wert": "1",
|
||||
"kommentar": "getstring Berechnetes GF2=86mm liegt unter der ueblichen Mindestlaenge (400mm) - trotzdem mit den exakt berechneten 86mm bauen? (Ja) - schliesst die Kette ab (VF_n mit GF=1 VF=5)"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user