Menüs für Varioförderer umgebaut. Weniger interaktive Abfragen, direkter Aufruf durch Menü

This commit is contained in:
2026-09-07 11:05:18 +02:00
parent d131b44580
commit 9670173d4b
5 changed files with 624 additions and 445 deletions
+60 -10
View File
@@ -76,6 +76,10 @@
;; ============================================================
(if (null *vf-typ-registry*) (setq *vf-typ-registry* nil))
(if (null *vf-vorauswahl-typ*) (setq *vf-vorauswahl-typ* nil))
;; Vorauswahl des Eingabemodus (Standard/Etage): "1"=3D-Linie, "2"=Werte.
;; Von den Menue-Wrappern gesetzt, damit die Konsolen-/Dialog-Frage
;; entfaellt. nil = interaktiv fragen (Direktaufruf VarioFoerderer).
(if (null *vf-vorauswahl-eingabemodus*) (setq *vf-vorauswahl-eingabemodus* nil))
;; Registriert einen Foerderanlagen-Typ.
;; berechne-fn: '(lambda (deltaL deltaH richtung seite) ...)
@@ -654,10 +658,19 @@
(defun vf-eingabe-abfragen ( / eingabe-modus line-points startpunkt endpunkt differenz
deltaL deltaH deltaX deltaY richtung antwort hz-winkel)
(princ (ssg-text "vfc-eingabemodus-header"))
(princ (ssg-text "vfc-eingabemodus-3dlinie"))
(princ (ssg-text "vfc-eingabemodus-werte"))
(setq antwort (getstring (ssg-text "vfc-prompt-wahl-1-2-ohne-default")))
;; Eingabemodus: von einem Menue-Wrapper vorbelegt (dann keine Frage) oder
;; interaktiv. Die Vorauswahl gilt nur EINMAL und wird hier verbraucht,
;; damit ein spaeterer Direktaufruf wieder fragt.
(if *vf-vorauswahl-eingabemodus*
(setq antwort *vf-vorauswahl-eingabemodus*
*vf-vorauswahl-eingabemodus* nil)
(progn
(princ (ssg-text "vfc-eingabemodus-header"))
(princ (ssg-text "vfc-eingabemodus-3dlinie"))
(princ (ssg-text "vfc-eingabemodus-werte"))
(setq antwort (getstring (ssg-text "vfc-prompt-wahl-1-2-ohne-default")))
)
)
(cond
((= antwort "1") (setq eingabe-modus "Linie"))
((= antwort "2") (setq eingabe-modus "Wert"))
@@ -1154,10 +1167,16 @@
;; stellt - siehe vf-eingabe-abfragen).
(if (member anlage-typ '("standard" "etage"))
(progn
(princ (ssg-text "vfc-eingabemodus-header"))
(princ (ssg-text "vfc-eingabemodus-3dlinie"))
(princ (ssg-text "vfc-eingabemodus-werte"))
(setq antwort (getstring (ssg-text "vfc-prompt-wahl-1-2-ohne-default")))
;; Eingabemodus: Vorauswahl (Menue-Wrapper) hat Vorrang, sonst fragen.
(if *vf-vorauswahl-eingabemodus*
(setq antwort *vf-vorauswahl-eingabemodus*)
(progn
(princ (ssg-text "vfc-eingabemodus-header"))
(princ (ssg-text "vfc-eingabemodus-3dlinie"))
(princ (ssg-text "vfc-eingabemodus-werte"))
(setq antwort (getstring (ssg-text "vfc-prompt-wahl-1-2-ohne-default")))
)
)
(if (= antwort "2")
(progn
(if (= anlage-typ "etage")
@@ -1356,8 +1375,39 @@
;; ============================================================
(defun c:Foerderanlage () (c:VarioFoerderer))
(defun c:EtageVarioFoerderer ()
(setq *vf-vorauswahl-typ* "etage")
;; Menue-Wrapper: jeder feste Endpunkt der VarioFoerderer-Erzeugung ist
;; direkt aufrufbar (Typ + Eingabemodus vorbelegt, keine Rueckfrage).
;; Nur der Linienzug fragt intern noch Modus 1/2/3 (komplexer Fall).
;; Eingabemodus-Vorauswahl: "2" = Werte manuell (DCL-Dialog),
;; "1" = aus 3D-Linie (Linie picken).
;; --- Standard (AS/ES 90 Grad) ---
(defun c:StandardVarioFoerderer () ; Werte manuell (DCL)
(setq *vf-vorauswahl-typ* "standard"
*vf-vorauswahl-eingabemodus* "2")
(c:VarioFoerderer)
)
(defun c:StandardVarioFoerderer3D () ; aus 3D-Linie
(setq *vf-vorauswahl-typ* "standard"
*vf-vorauswahl-eingabemodus* "1")
(c:VarioFoerderer)
)
;; --- Etage (AS/ES 30 Grad, uebereinander) ---
(defun c:EtageVarioFoerderer () ; Werte manuell (DCL)
(setq *vf-vorauswahl-typ* "etage"
*vf-vorauswahl-eingabemodus* "2")
(c:VarioFoerderer)
)
(defun c:EtageVarioFoerderer3D () ; aus 3D-Linie
(setq *vf-vorauswahl-typ* "etage"
*vf-vorauswahl-eingabemodus* "1")
(c:VarioFoerderer)
)
;; --- Linienzug (bleibt interaktiv: fragt Modus 1/2/3) ---
(defun c:LinienzugVarioFoerderer ()
(setq *vf-vorauswahl-typ* "linienzug")
(c:VarioFoerderer)
)