Menüs für Varioförderer umgebaut. Weniger interaktive Abfragen, direkter Aufruf durch Menü
This commit is contained in:
@@ -1685,7 +1685,11 @@
|
||||
;; TEIL 6: HAUPTBEFEHL
|
||||
;; ============================================================
|
||||
|
||||
(defun c:GEFAELLESTRECKE ( / antwort deltaL winkel
|
||||
;; Gemeinsamer Ablauf fuer alle drei Eingabemodi. "modus" ist "1"/"2"/"3"
|
||||
;; (Werteingabe / 3D-Linie / Linienzug). Banner + Bibliotheks-Init laufen
|
||||
;; vorab; der Aufrufer (C:GEFAELLESTRECKE oder die drei Menue-Befehle
|
||||
;; GEFAELLESTRECKE_EINFACH/_3DLINIE/_LINIENZUG) bestimmt den Modus.
|
||||
(defun gf-strecke-lauf ( modus / antwort deltaL winkel
|
||||
as-seite es-seite gf-as-winkel gf-es-winkel
|
||||
line-points startpunkt endpunkt differenz
|
||||
deltaX deltaY startpunkt-fuer-einfuegen hz-winkel
|
||||
@@ -1704,12 +1708,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; Eingabemodus
|
||||
(princ (ssg-text "gf-eingabemodus-header"))
|
||||
(princ (ssg-text "gf-eingabemodus-1"))
|
||||
(princ (ssg-text "gf-eingabemodus-2"))
|
||||
(princ (ssg-text "gf-eingabemodus-3"))
|
||||
(setq antwort (getstring (ssg-text "prompt-wahl-1-2-3")))
|
||||
(setq antwort modus)
|
||||
|
||||
(cond
|
||||
;; Modus 3: Linienzug mit Bogen
|
||||
@@ -1831,6 +1830,23 @@
|
||||
nil
|
||||
)
|
||||
|
||||
;; Hauptbefehl: fragt den Eingabemodus per Konsole ab und startet den Lauf.
|
||||
;; (Interaktive Auswahl bleibt fuer Direktaufruf erhalten; das Menue nutzt
|
||||
;; stattdessen die drei modus-spezifischen Befehle unten.)
|
||||
(defun c:GEFAELLESTRECKE ( / antwort)
|
||||
(princ (ssg-text "gf-eingabemodus-header"))
|
||||
(princ (ssg-text "gf-eingabemodus-1"))
|
||||
(princ (ssg-text "gf-eingabemodus-2"))
|
||||
(princ (ssg-text "gf-eingabemodus-3"))
|
||||
(setq antwort (getstring (ssg-text "prompt-wahl-1-2-3")))
|
||||
(gf-strecke-lauf antwort)
|
||||
)
|
||||
|
||||
;; Menue-Befehle: je ein fester Eingabemodus ohne Rueckfrage.
|
||||
(defun c:GEFAELLESTRECKE_EINFACH () (gf-strecke-lauf "1")) ; Werteingabe (DCL)
|
||||
(defun c:GEFAELLESTRECKE_3DLINIE () (gf-strecke-lauf "2")) ; aus 3D-Linie
|
||||
(defun c:GEFAELLESTRECKE_LINIENZUG () (gf-strecke-lauf "3")) ; Linienzug LINE+ARC
|
||||
|
||||
;; ============================================================
|
||||
;; TEIL 7: GEFAELLESTRECKE_EDIT - Doppelklick/Kontextmenue-Bearbeitung
|
||||
;; ============================================================
|
||||
|
||||
+60
-10
@@ -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)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user