[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:
+40
-2
@@ -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))))
|
||||
|
||||
Reference in New Issue
Block a user