From fe2ad9cb3221067a60c7e5c91fb28526224498dc Mon Sep 17 00:00:00 2001 From: Yuelin Wang Date: Thu, 23 Jul 2026 09:07:27 +0200 Subject: [PATCH] vf-next-number ueberspringt bestehende Block-Definitionen (verhindert sporadischen VF-Bau-Fehlschlag) Parallel-VF selbstkorrigierend auf GF-AS-KS_EIN ausrichten + vf-next-number gegen Namenskollision haertenm, Debug-Ausgaben entfernt. --- Lisp/vf_core.lsp | 8 ++++++++ Lisp/vf_standard.lsp | 10 ++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Lisp/vf_core.lsp b/Lisp/vf_core.lsp index 61f5bcd..b99b859 100644 --- a/Lisp/vf_core.lsp +++ b/Lisp/vf_core.lsp @@ -426,6 +426,14 @@ ) (setq #VF_LetzteNr (max #VF_LetzteNr maxnr)) (setq #VF_LetzteNr (1+ #VF_LetzteNr)) + ;; Nummern ueberspringen, deren Block-DEFINITION bereits existiert (z.B. Rest + ;; eines frueher fehlgeschlagenen Baus, der eine VF_n-Definition ohne INSERT + ;; hinterliess). Sonst trifft das spaetere _.-BLOCK auf einen vorhandenen + ;; Namen -> "Neu definieren?"-Abfrage verschluckt die Folge-Eingaben -> + ;; Block wird nicht korrekt erzeugt ("Eintrag kann nicht erkannt werden"). + (while (tblsearch "BLOCK" (strcat "VF_" (itoa #VF_LetzteNr))) + (princ (strcat "\n [VF-Nr] VF_" (itoa #VF_LetzteNr) " existiert bereits, naechste...")) + (setq #VF_LetzteNr (1+ #VF_LetzteNr))) #VF_LetzteNr ) diff --git a/Lisp/vf_standard.lsp b/Lisp/vf_standard.lsp index c5b330b..cb7b4a8 100644 --- a/Lisp/vf_standard.lsp +++ b/Lisp/vf_standard.lsp @@ -947,7 +947,7 @@ winkel-prefill / ergebnis ergebnis-liste gueltige-winkel horizontal-info winkelwahl best-winkel L_GF L_VF L_GF1 L_GF2 verteilung-modus - n-scanner hoehe-von hoehe-bis lastEnt vf-insert staustrecke-basis) + n-scanner hoehe-von hoehe-bis lastEnt vf-insert vf-endpunkt staustrecke-basis) (setq ergebnis (berechne-standard deltaL deltaH richtung seite)) (setq ergebnis-liste (cadddr ergebnis)) (setq staustrecke-basis (ssg-cfg-or "vario" "staustrecke_basis" 1000)) @@ -995,7 +995,10 @@ (t hoehe-von))) (setq lastEnt (vf-lastent-ohne-attribute)) - (variofoerderer-einfuegen deltaL deltaH richtung best-winkel L_GF1 L_GF2 L_VF startpunkt seite hz) + ;; endpunkt = tatsaechliches ES-KS_AUS (Weltpunkt) - wird fuer die + ;; Ausrichtung des Parallel-VF (gf-baue-parallel-vf) zurueckgegeben. + (setq vf-endpunkt + (variofoerderer-einfuegen deltaL deltaH richtung best-winkel L_GF1 L_GF2 L_VF startpunkt seite hz)) (setq vf-insert (vf-block-erstellen "standard" seite vf-nummer n-scanner @@ -1007,6 +1010,9 @@ ) ) ) + ;; Rueckgabe: (vf-insert vf-endpunkt) fuer aufrufende Ausrichtungslogik; + ;; bei Abbruch/Fehler (nil nil). Menue-Aufrufer ignorieren die Rueckgabe. + (list vf-insert vf-endpunkt) ) ;; Neuanlage (Menue/Konsole -> Dialog): Startpunkt (X/Y) picken, Basis-Dialog,