Merge remote-tracking branch 'origin/master'
# Conflicts: # dcl/variofoerderer.dcl
This commit is contained in:
+66
-2
@@ -709,7 +709,8 @@
|
||||
eingabe)
|
||||
|
||||
(defun vf-eingabe-abfragen ( / eingabe-modus line-points startpunkt endpunkt differenz
|
||||
deltaL deltaH deltaX deltaY richtung antwort hz-winkel)
|
||||
deltaL deltaH deltaX deltaY richtung antwort hz-winkel
|
||||
hoehe-override)
|
||||
;; 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.
|
||||
@@ -755,6 +756,17 @@
|
||||
(progn (setq richtung "Ab") (setq deltaH (abs deltaH))
|
||||
(princ (ssg-text "vfc-foerderrichtung-ab")))
|
||||
)
|
||||
;; Einfuegehoehe explizit abfragbar - ueberschreibt NUR die absolute
|
||||
;; Z-Hoehe des Startpunkts (Vorschlag = Z des Linien-Startpunkts,
|
||||
;; Enter uebernimmt ihn unveraendert). deltaH/Steigung bleiben davon
|
||||
;; unberuehrt, die kommen weiterhin aus der Geometrie der gepickten
|
||||
;; Linie selbst - nur WO die Anlage absolut eingefuegt wird, ist
|
||||
;; jetzt eingebbar (bisher ausschliesslich aus der Linie abgeleitet).
|
||||
(setq hoehe-override
|
||||
(getreal (ssg-textf "vfc-prompt-einfuegehoehe-3dlinie"
|
||||
(list (rtos (caddr startpunkt) 2 1)))))
|
||||
(if hoehe-override
|
||||
(setq startpunkt (list (car startpunkt) (cadr startpunkt) hoehe-override)))
|
||||
)
|
||||
(progn
|
||||
(princ (ssg-text "vfc-modus-werteingabe-header"))
|
||||
@@ -1060,12 +1072,64 @@
|
||||
(list vf-insert vf-endpunkt)
|
||||
)
|
||||
|
||||
;; Startpunkt der Anlage per Dialog waehlen (Punktwahl-Button + Anzeige,
|
||||
;; dcl/variofoerderer.dcl Tile vfc_startpunkt) - dasselbe "Schliessen-
|
||||
;; Picken-Neu-Zeigen"-Muster wie der Linienzug-Wizard
|
||||
;; (vflw-gruppe-punkt-hoehe-impl, vf_linienzug.lsp:697), aber ohne dessen
|
||||
;; Wizard-Pending-Queue: der Punkt wird direkt zurueckgegeben. kopf/
|
||||
;; pt_anzeige kommen per set_tile aus ssg-text - anders als
|
||||
;; vfc-dialog-typ-waehlen also KEIN *ssg-lang*-Gate noetig, der Dialog
|
||||
;; funktioniert in jeder Sprache. Rueckgabe: Punkt (Liste X Y Z) oder nil,
|
||||
;; wenn kein Dialog gezeigt werden konnte/durfte (GUI aus) ODER abgebrochen
|
||||
;; wurde - der Aufrufer (vf-dialog-ablauf) faellt dann auf den alten
|
||||
;; Konsolen-getpoint zurueck.
|
||||
(defun vfc-dialog-startpunkt-waehlen (kopf-key / dcl-pfad dat ergebnis gpunkt fertig)
|
||||
(if (or (not (car (atoms-family 1 '("SSG-GUI-P")))) (ssg-gui-p))
|
||||
(progn
|
||||
(setq fertig nil)
|
||||
(while (not fertig)
|
||||
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/variofoerderer.dcl"))
|
||||
(setq dat (load_dialog dcl-pfad))
|
||||
(if (not (new_dialog "vfc_startpunkt" dat))
|
||||
(progn
|
||||
(if (and dat (>= dat 0)) (unload_dialog dat))
|
||||
(setq fertig t gpunkt nil)
|
||||
)
|
||||
(progn
|
||||
(set_tile "kopf" (ssg-text "vfc-dlg-startpunkt-kopf"))
|
||||
(if gpunkt
|
||||
(set_tile "pt_anzeige"
|
||||
(strcat "X=" (rtos (car gpunkt) 2 1)
|
||||
" Y=" (rtos (cadr gpunkt) 2 1)
|
||||
" Z=" (rtos (caddr gpunkt) 2 1)))
|
||||
)
|
||||
(action_tile "pick" "(done_dialog 2)")
|
||||
(action_tile "accept" "(done_dialog 1)")
|
||||
(action_tile "cancel" "(done_dialog 0)")
|
||||
(setq ergebnis (start_dialog))
|
||||
(unload_dialog dat)
|
||||
(cond
|
||||
((= ergebnis 2) (setq gpunkt (getpoint (ssg-text kopf-key))))
|
||||
((= ergebnis 1) (setq fertig t))
|
||||
(t (setq fertig t gpunkt nil))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
gpunkt
|
||||
)
|
||||
nil
|
||||
)
|
||||
)
|
||||
|
||||
;; Neuanlage (Menue/Konsole -> Dialog) fuer einen Registry-Typ: Startpunkt
|
||||
;; (X/Y) picken, Basis-Dialog, dann vf-dialog-berechnen-einfuegen.
|
||||
(defun vf-dialog-ablauf (typ vf-nummer horizontal-p / eingabe deltaL deltaH richtung
|
||||
z-start hz seite startpunkt startpunkt-xy dim
|
||||
geruest-einzelmodul geruest-typ motorseite)
|
||||
(setq startpunkt-xy (getpoint (ssg-text "vfc-prompt-startpunkt-aus")))
|
||||
(setq startpunkt-xy (vfc-dialog-startpunkt-waehlen "vfc-prompt-startpunkt-aus"))
|
||||
(if (null startpunkt-xy)
|
||||
(setq startpunkt-xy (getpoint (ssg-text "vfc-prompt-startpunkt-aus"))))
|
||||
(if (null startpunkt-xy) (setq startpunkt-xy '(0 0 0)))
|
||||
(setq eingabe (vfs-dialog-eingabe-basis nil))
|
||||
(if (null eingabe)
|
||||
|
||||
Reference in New Issue
Block a user