fix: Horizontal-VF-Kettenanfang (eingang_hoehe) in vsp-journal nachgezogen, hundm05.json erneuert
vf-linienzug-modus fragt bei einem mit "Horizontal-VF" eroeffneten Kettenanfang eine Ziel-Hoehe fuer den GF1-Einlauf ab (vfl-prompt-hoehe- eingang-gf1) und laesst dort die GF-Verteilungsfrage weg (fest "alles am Einlauf") - vsp-journal/vsp-vf-einheit kannten das noch nicht. Ausserdem werden ES-Winkel/-Seite beim kettenende-sub jetzt an der richtigen Journal-Position (inkl. eigenem STEP-Marker) emittiert. tests/testdata/hundm05.json: VF_hundm05_LZ_02..05 (die vier baugleichen Schleifen, Block VF_1) aus tests/testdata/linienzug_tests.json neu abgeleitet, mit den realen Startkoordinaten aus results/test_hundM05.dxf statt der alten "sub":"auf-ab"-Behelfsloesung. VF_hundm05_LZ_01 und alle Kreisel-/Separator-/Scanner-/BTMT-Objekte unveraendert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
41419763c0
commit
1bdecf0678
+33
-2
@@ -234,6 +234,21 @@
|
||||
(setq v (ssg-val quelle "winkel_idx"))
|
||||
(if v (vsp-ganz v "winkel_idx")))
|
||||
|
||||
;; Ziel-Hoehe fuer den GF1-Einlauf einer mit "Horizontal-VF" eroeffneten
|
||||
;; VF-Einheit (vfl-prompt-hoehe-eingang-gf1). Optional, weil die Frage NUR
|
||||
;; kommt, wenn der Eingang komplett neu gebaut wird - das ist der Fall, den
|
||||
;; vfl-eingang-modus-bestimmen mit nil beantwortet: echter Kettenanfang MIT
|
||||
;; AS-Element bzw. Anschluss an eine fertige VF-Einheit ("letzter-typ"="VF"),
|
||||
;; und am Kettenanfang OHNE AS auch dann, wenn der KS_AUS-Scan die GF-Familie
|
||||
;; erkennt oder der Nutzer die 3-Optionen-Rueckfrage mit "2" beantwortet.
|
||||
;; Folgt die Sektion dagegen auf GF/Separator/Vario-Kurve, gibt es kein neues
|
||||
;; GF1 und damit keine Frage - dann fehlt das Feld. Ob der Fall ansteht, haengt
|
||||
;; am Zustand der Zeichnung und kann hier nicht berechnet werden; die Spec sagt
|
||||
;; es, geraten wird nichts.
|
||||
(defun vsp-eingang-hoehe (quelle / v)
|
||||
(setq v (ssg-val quelle "eingang_hoehe"))
|
||||
(if v (vsp-zahl "REAL" v "eingang_hoehe")))
|
||||
|
||||
(defun vsp-praeambel (kopf / punkt)
|
||||
(setq *vsp-wo* "start")
|
||||
(setq punkt (ssg-val kopf "start_punkt"))
|
||||
@@ -360,6 +375,7 @@
|
||||
|
||||
((= label "Horizontal-VF")
|
||||
(vsp-linie sek)
|
||||
(vsp-eingang-hoehe sek)
|
||||
(vsp-vf-einheit sek subs T))
|
||||
|
||||
((= label "Linie")
|
||||
@@ -394,8 +410,14 @@
|
||||
;; der flachen Queue liegt sie aber IMMER an derselben Position: direkt nach
|
||||
;; den Werten des Vorgaenger-Knotens. Darum genau EIN Code je sub.
|
||||
(defun vsp-vf-einheit (sek subs erst-hor / n i wahl letzter ende)
|
||||
(vsp-code-raus *vsp-tab-verteilung* (ssg-val sek "gf_verteilung")
|
||||
"gf_verteilung")
|
||||
;; GF-Verteilung: beim horizontalen Erstkoerper wird sie NICHT gefragt - die
|
||||
;; Aufrufstelle in vf-linienzug-modus gibt "2" (alles am Einlauf) fest vor
|
||||
;; (vfl-vf-einheit-abschluss, Argument gf-verteilung-fest), weil L_GF dort nur
|
||||
;; der strukturelle Mindest-Eingang ist. Ein "gf_verteilung"-Feld an einer
|
||||
;; Horizontal-VF-Sektion bleibt darum wirkungslos (alte Specs tragen es noch).
|
||||
(if (not erst-hor)
|
||||
(vsp-code-raus *vsp-tab-verteilung* (ssg-val sek "gf_verteilung")
|
||||
"gf_verteilung"))
|
||||
(if erst-hor
|
||||
(progn
|
||||
(vsp-raus "STR" (vsp-ja-code (ssg-val sek "vf_sep_vor")))
|
||||
@@ -425,6 +447,15 @@
|
||||
" aber noch weitere subs")))
|
||||
(vsp-code-raus *vsp-tab-endpunkt* "kettenende" "sub")
|
||||
(vsp-raus "STR" (vsp-ja-code (ssg-val sub "es")))
|
||||
;; Mit ES: Winkel+Seite werden SCHON HIER erfragt (vfl-frage-es-seite,
|
||||
;; inkl. eigenem STEP-Marker) und nicht erst im Abschluss - sie
|
||||
;; bestimmen den ES-Fussabdruck, der in die Streckenzerlegung eingeht.
|
||||
;; Darum stehen sie am sub und nicht in einer eigenen ES-Sektion.
|
||||
(if (vsp-ja-p (ssg-val sub "es"))
|
||||
(progn
|
||||
(vsp-raus "STEP" "ES")
|
||||
(vsp-wert-str (ssg-val sub "es_winkel") "es_winkel")
|
||||
(vsp-code-raus *vsp-tab-seite* (ssg-val sub "es_seite") "es_seite")))
|
||||
(vsp-linie sub)
|
||||
(vsp-zahl "REAL" (ssg-val sub "hoehe") "hoehe")
|
||||
(vsp-winkel-idx sub))
|
||||
|
||||
Reference in New Issue
Block a user