feat: Konsolen-Echo fuer Endpunkt (X/Y) + Zielhoehe nach Eingabe

Nach jedem Endpunkt-Pick + Zielhoehe-Eingabe (Neue Linie: GF Zweig A,
Linie-VF, Neue Linie BIS Kettenende) wird jetzt der absolute Endpunkt
(X/Y, aus deltaL/hz-neu zurueckgerechnet) sowie die eingegebene
Zielhoehe und das daraus resultierende (noch UNREDUZIERTE) deltaH auf
der Konsole ausgegeben - vorher war z.B. bei "Neue Linie BIS
Kettenende" nur das bereits um den Separator+ES-Footprint reduzierte
deltaH sichtbar, was wie ein Rechenfehler wirken konnte.

Neuer Helfer: vfl-echo-endpunkt-hoehe.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Yuelin Wang
2026-09-12 00:59:30 +02:00
co-authored by Claude Sonnet 5
parent 0f1c7d2edf
commit 38ee74ed3e
3 changed files with 24 additions and 0 deletions
+22
View File
@@ -2704,6 +2704,25 @@
(princ)
)
;; Konsolen-Echo nach Endpunkt-Pick + Zielhoehe-Eingabe: zeigt den absoluten
;; Endpunkt (X/Y, aus p-aktuell + deltaL entlang hz-neu zurueckgerechnet - nur
;; deltaL/hz werden journalisiert, siehe vfl-in-abstand) sowie die eingegebene
;; Zielhoehe UND das daraus resultierende deltaH VOR jeder spaeteren
;; Footprint-Reduktion (Separator/ES bei linie-ende-modus) - damit am
;; Bildschirm nachvollziehbar bleibt, welcher Rohwert in eine spaeter
;; angezeigte, ggf. reduzierte Zahl eingeht (sonst wirkt ein reduzierter Wert
;; wie ein Rechenfehler statt wie eine bewusste Reservierung).
(defun vfl-echo-endpunkt-hoehe (p-aktuell deltaL hz-neu hoehe-neu deltaH richtung / rad ex ey)
(setq rad (* (float hz-neu) (/ pi 180.0)))
(setq ex (+ (car p-aktuell) (* deltaL (cos rad))))
(setq ey (+ (cadr p-aktuell) (* deltaL (sin rad))))
(princ (ssg-textf "vfl-echo-endpunkt-hoehe"
(list (rtos ex 2 1) (rtos ey 2 1) (rtos deltaL 2 0) (rtos hz-neu 2 1)
(rtos hoehe-neu 2 1) (rtos (caddr p-aktuell) 2 1)
(rtos deltaH 2 1) richtung)))
(princ)
)
;; Wie vfl-vf-machbar-p, aber fuer das Budget von vfl-body-zerlegung
;; (Kettenende-Modus, "Ja - Motorstation setzen, Kettenende festlegen"):
;; feste-hz=800 (nur Motor+Separator, KEIN Umlenk-/AS-Anteil) statt
@@ -5513,6 +5532,7 @@
(setq deltaH (- hoehe-neu (caddr p-aktuell)))
(setq richtung (if (>= deltaH 0.0) "Auf" "Ab"))
(setq deltaH (abs deltaH))
(vfl-echo-endpunkt-hoehe p-aktuell deltaL hz-neu hoehe-neu deltaH richtung)
(if (> sep-anzahl 0)
(setq deltaH (max 0.0 (- deltaH (* sep-anzahl *vfk-separator-laenge* (sin rad3))))))
(cond
@@ -5734,6 +5754,7 @@
(setq deltaH (- hoehe-neu (caddr p-aktuell)))
(setq richtung (if (>= deltaH 0.0) "Auf" "Ab"))
(setq deltaH (abs deltaH))
(vfl-echo-endpunkt-hoehe p-aktuell deltaL hz-neu hoehe-neu deltaH richtung)
(setq entscheidung (vfl-vf-entscheidung deltaL deltaH richtung))
(setq typ (nth 0 entscheidung) winkel (nth 1 entscheidung)
L_GF (nth 2 entscheidung) L_VF (nth 3 entscheidung))
@@ -5876,6 +5897,7 @@
(setq deltaH (- hoehe-neu (caddr p-aktuell)))
(setq richtung (if (>= deltaH 0.0) "Auf" "Ab"))
(setq deltaH (abs deltaH))
(vfl-echo-endpunkt-hoehe p-aktuell deltaL hz-neu hoehe-neu deltaH richtung)
;; Kettenende-Modus (Option 4): Der abgefragte Endpunkt (XY+Z)
;; ist das exakte Ende der Kette NACH Separator + ES-Element.
;; Deren Footprint (Separator 300 mm bei ~3 Grad + ES-Element
+1
View File
@@ -63,6 +63,7 @@
"vfl-alert-segment-nicht-baubar": "Segment geometrisch nicht baubar!\ndeltaL=%1 mm, deltaH=%2 mm, Richtung=%3\nBitte anderen Endpunkt/Hoehe waehlen.",
"vfl-info-kurzes-segment": "\n>>> Kurzes Segment (deltaL=%1 mm < 1000): automatisch 3-Grad-Gefaellestrecke (keine Hoehenabfrage, deltaH=%2 mm).",
"vfl-info-kettenende-footprint": "\n>>> Kettenende-Modus: Footprint fuer Separator + ES reserviert -> baubar deltaL=%1 mm, deltaH=%2 mm.",
"vfl-echo-endpunkt-hoehe": "\n>>> Endpunkt gewaehlt: X=%1 Y=%2 (deltaL=%3 mm, Richtung=%4 Grad)\n>>> Zielhoehe eingegeben: %5 mm (aktuell %6 mm, deltaH=%7 mm %8)",
"vfl-kette-eingefuegt": "\n>>> VF-Linienzug-Kette eingefuegt! <<<",
"vfl-info-as-eingefuegt": "\n>>> AS-Element eingefuegt - reale Restlaenge: deltaL=%1 mm.",
"vfl-info-kein-as": "\n>>> Kein AS-Element - Kette beginnt direkt am Startpunkt.",
+1
View File
@@ -63,6 +63,7 @@
"vfl-alert-segment-nicht-baubar": "Segment geometrically not buildable!\ndeltaL=%1 mm, deltaH=%2 mm, direction=%3\nPlease pick another end point/height.",
"vfl-info-kurzes-segment": "\n>>> Short segment (deltaL=%1 mm < 1000): automatic 3-degree gravity section (no height query, deltaH=%2 mm).",
"vfl-info-kettenende-footprint": "\n>>> Chain-end mode: footprint for separator + ES reserved -> buildable deltaL=%1 mm, deltaH=%2 mm.",
"vfl-echo-endpunkt-hoehe": "\n>>> End point picked: X=%1 Y=%2 (deltaL=%3 mm, direction=%4 deg)\n>>> Target height entered: %5 mm (currently %6 mm, deltaH=%7 mm %8)",
"vfl-kette-eingefuegt": "\n>>> VF chain inserted! <<<",
"vfl-info-as-eingefuegt": "\n>>> AS element inserted - actual remaining length: deltaL=%1 mm.",
"vfl-info-kein-as": "\n>>> No AS element - chain starts directly at the start point.",