[CHANGE] VARIOFOERDERER_NACHRUESTEN: Baurichtung per Dialog statt Konsole (Teil C der GUI-Umstellung)

Neuer Dialog vfs_nachruesten_hz (dcl/variofoerderer.dcl) + vfs-dialog-nachruesten-hz (Lisp/vf_standard.lsp) ersetzt den fruehren getreal-Prompt. Zeigt pro unmarkiertem VF_n-Fund Blockname/erkannten Typ und ein hz-Feld, vorbelegt mit dem zuletzt eingegebenen Wert (identisches Default-Fortpflanzungs-Verhalten wie vorher).

"Abbrechen" im Dialog uebernimmt bewusst nur den Vorgabewert fuer DIESEN Fund (Rueckgabe 'ABBRUCH), statt die ganze Nachruesten-Schleife abzubrechen oder auf die Konsole zurueckzufallen - echter Konsolen-Rueckfall bleibt ausschliesslich fuer den Fall, dass der Dialog gar nicht gezeigt werden kann (GUI abgeschaltet). Die Objektauswahl (ssget) selbst bleibt unveraendert Zeichnung/Konsole.

doc/variofoerderer.md um den Befehl ergaenzt (war dort bisher gar nicht erwaehnt).

Manuell in BricsCAD getestet (unmarkierter VF_4-Block, Dialog erscheint, hz=0 markiert) - laeuft.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-10-09 11:59:18 +02:00
parent 9a7907ab00
commit 57bb1e9057
3 changed files with 84 additions and 2 deletions
+40 -2
View File
@@ -1553,6 +1553,38 @@
;; Neuanlage 0). Wer hz nicht kennt: der Wert steht in der urspruenglichen
;; Bau-Eingabe (z.B. mubea.json "hz") bzw. ergibt sich aus der Ausrichtung.
;; Bereits markierte Bloecke und Nicht-VF-Bloecke werden uebersprungen.
;; Baurichtung (hz) fuer EINEN Fund per Dialog abfragen - ersetzt den
;; frueheren getreal-Prompt in c:VARIOFOERDERER_NACHRUESTEN. "kopf" per
;; set_tile aus ssg-text befuellt (Blockname + erkannter Typ), deshalb
;; sprachunabhaengig. Rueckgabe: hz (Real) bei OK, 'ABBRUCH wenn der Nutzer
;; bewusst abbricht (Aufrufer uebernimmt dann default-hz, OHNE nochmal auf
;; der Konsole zu fragen), nil wenn der Dialog gar nicht gezeigt werden
;; konnte/durfte (GUI aus) - NUR dann faellt der Aufrufer auf den alten
;; getreal-Prompt zurueck.
(defun vfs-dialog-nachruesten-hz (bname typ default-hz / dcl-pfad dat ergebnis hz)
(if (or (not (car (atoms-family 1 '("SSG-GUI-P")))) (ssg-gui-p))
(progn
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/variofoerderer.dcl"))
(setq dat (load_dialog dcl-pfad))
(if (not (new_dialog "vfs_nachruesten_hz" dat))
(progn (if (and dat (>= dat 0)) (unload_dialog dat)) nil)
(progn
(set_tile "kopf" (ssg-textf "vfs-nachruesten-erkannt" (list bname typ)))
(set_tile "hz" (rtos default-hz 2 1))
(action_tile "accept"
"(setq hz (distof (get_tile \"hz\") 2)) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq ergebnis (start_dialog))
(unload_dialog dat)
(cond ((and (= ergebnis 1) hz) hz) (t 'ABBRUCH))
)
)
)
nil
)
)
(defun c:VARIOFOERDERER_NACHRUESTEN ( / ss i ent ed bname attribs xd typ hz
n-neu n-skip default-hz)
(ssg-start "VARIOFOERDERER_NACHRUESTEN" nil)
@@ -1580,8 +1612,14 @@
(if (or (assoc "GF_Bogen_R_60" attribs) (assoc "GF_Bogen_L_60" attribs))
"etage" "standard"))
(princ (ssg-textf "vfs-nachruesten-erkannt" (list bname typ)))
(setq hz (getreal (ssg-textf "vfs-nachruesten-prompt-hz" (list (rtos default-hz 2 1)))))
(if (null hz) (setq hz default-hz))
(setq hz (vfs-dialog-nachruesten-hz bname typ default-hz))
(cond
((eq hz 'ABBRUCH) (setq hz default-hz))
((null hz)
(setq hz (getreal (ssg-textf "vfs-nachruesten-prompt-hz" (list (rtos default-hz 2 1)))))
(if (null hz) (setq hz default-hz))
)
)
(setq default-hz hz)
(vf-edit-xdata-schreiben ent typ hz)
(princ (ssg-textf "vfs-nachruesten-markiert" (list (rtos hz 2 1))))