Geruest fuer Einzelmodul + Geruestoption bei Foerderer, Gefaellestrecke und Eckrad ergaenzt
Kreisel hatte GERUEST_EINZELMODUL bereits; ergaenzt um die neue Combobox GERUEST_TYP (IPE-Geruest abgestuft / Obergeruest oben / Schoenenberger Geruest / nur Doppelrohrtraeger, Default Schoenenberger Geruest) im KreiselEdit-Dialog. VarioFoerderer (Standard-Dialog) und Gefaellestrecke (Modus 1) erhalten beide Attribute neu in ihren DCL-Dialogen inkl. Edit-Vorbelegung. ILS_Eckrad (kein Dialog vorhanden) fragt beide Werte per Kommandozeilen-Menue ab. Konsolen-only-Pfade ohne Dialog (VF Etage/Linienzug, GF Linienzug/3D-Objekte) bleiben auf Schema-Default, analog zum bisherigen Kreisel-Verhalten. Gemeinsame Optionsliste/Helper (*ssg-geruest-optionen*, ssg-geruest-typ-to-idx/idx-to-typ, ssg-ask-geruest-typ) in ssg_core.lsp war bereits durch einen parallelen Commit (120e26a) mit eingeflossen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+39
-14
@@ -709,15 +709,18 @@
|
||||
;; ============================================================
|
||||
|
||||
;; Basis-Eingabe (Dialog 1): deltaL, deltaH, Richtung, Einfuegehoehe,
|
||||
;; Fahrtrichtung, Seite.
|
||||
;; Fahrtrichtung, Seite, Geruest fuer Einzelmodul, Geruestoption.
|
||||
;; prefill: Assoziationsliste zur Vorbelegung (fuer VARIOFOERDERER_EDIT) mit
|
||||
;; Schluesseln "deltaL" "deltaH" "richtung" "einfuegehoehe" "hz" "seite"
|
||||
;; - oder nil fuer Neuanlage mit Defaults.
|
||||
;; Rueckgabe: (deltaL deltaH richtung einfuegehoehe hz seite) oder nil bei Abbruch.
|
||||
;; "geruest-einzelmodul" "geruest-typ" - oder nil fuer Neuanlage mit Defaults.
|
||||
;; Rueckgabe: (deltaL deltaH richtung einfuegehoehe hz seite
|
||||
;; geruest-einzelmodul geruest-typ) oder nil bei Abbruch.
|
||||
(defun vfs-dialog-eingabe-basis (prefill / dcl-pfad dat ergebnis
|
||||
dlg-deltal dlg-deltah dlg-richtung dlg-hoehe
|
||||
dlg-fahrtrichtung dlg-seite
|
||||
deltaL deltaH richtung hz seite z-start)
|
||||
dlg-geruest-einzelmodul dlg-geruest-typ
|
||||
deltaL deltaH richtung hz seite z-start
|
||||
geruest-einzelmodul geruest-typ)
|
||||
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/variofoerderer.dcl"))
|
||||
(setq dat (load_dialog dcl-pfad))
|
||||
(if (not (new_dialog "variofoerderer_basis" dat))
|
||||
@@ -763,6 +766,14 @@
|
||||
(set_tile "seite"
|
||||
(if (and prefill (equal (cdr (assoc "seite" prefill)) "links")) "1" "0"))
|
||||
|
||||
(set_tile "geruest_einzelmodul"
|
||||
(if (and prefill (equal (cdr (assoc "geruest-einzelmodul" prefill)) "1")) "1" "0"))
|
||||
(start_list "geruest_typ")
|
||||
(foreach opt *ssg-geruest-optionen* (add_list opt))
|
||||
(end_list)
|
||||
(set_tile "geruest_typ"
|
||||
(itoa (ssg-geruest-typ-to-idx (if prefill (cdr (assoc "geruest-typ" prefill)) nil))))
|
||||
|
||||
;; Actions
|
||||
(action_tile "accept"
|
||||
(strcat
|
||||
@@ -772,6 +783,8 @@
|
||||
"(setq dlg-hoehe (get_tile \"einfuegehoehe\"))"
|
||||
"(setq dlg-fahrtrichtung (get_tile \"fahrtrichtung\"))"
|
||||
"(setq dlg-seite (get_tile \"seite\"))"
|
||||
"(setq dlg-geruest-einzelmodul (get_tile \"geruest_einzelmodul\"))"
|
||||
"(setq dlg-geruest-typ (get_tile \"geruest_typ\"))"
|
||||
"(done_dialog 1)"
|
||||
)
|
||||
)
|
||||
@@ -792,7 +805,9 @@
|
||||
((= dlg-fahrtrichtung "3") 270.0)
|
||||
(t 0.0)))
|
||||
(setq seite (if (= dlg-seite "1") "links" "rechts"))
|
||||
(list deltaL deltaH richtung z-start hz seite)
|
||||
(setq geruest-einzelmodul dlg-geruest-einzelmodul)
|
||||
(setq geruest-typ (ssg-geruest-idx-to-typ (atoi dlg-geruest-typ)))
|
||||
(list deltaL deltaH richtung z-start hz seite geruest-einzelmodul geruest-typ)
|
||||
)
|
||||
nil
|
||||
)
|
||||
@@ -944,7 +959,7 @@
|
||||
;; winkel-prefill: Vorbelegung fuer vfs-dialog-winkel-verteilung oder nil.
|
||||
;; ============================================================
|
||||
(defun vfs-standard-dialog-berechnen-einfuegen (vf-nummer deltaL deltaH richtung startpunkt hz seite
|
||||
winkel-prefill /
|
||||
winkel-prefill geruest-einzelmodul geruest-typ /
|
||||
ergebnis ergebnis-liste gueltige-winkel horizontal-info
|
||||
winkelwahl best-winkel L_GF L_VF L_GF1 L_GF2 verteilung-modus
|
||||
n-scanner hoehe-von hoehe-bis lastEnt vf-insert vf-endpunkt staustrecke-basis)
|
||||
@@ -1003,7 +1018,8 @@
|
||||
(setq vf-insert
|
||||
(vf-block-erstellen "standard" seite vf-nummer n-scanner
|
||||
hoehe-von hoehe-bis deltaH deltaL L_VF L_GF1 L_GF2
|
||||
richtung best-winkel startpunkt lastEnt hz))
|
||||
richtung best-winkel startpunkt lastEnt hz
|
||||
geruest-einzelmodul geruest-typ))
|
||||
(if vf-insert (vfs-xdata-schreiben vf-insert hz))
|
||||
(princ "\n=========================================")
|
||||
)
|
||||
@@ -1018,7 +1034,8 @@
|
||||
;; Neuanlage (Menue/Konsole -> Dialog): Startpunkt (X/Y) picken, Basis-Dialog,
|
||||
;; dann gemeinsame Berechnung/Winkel-Dialog/Einfuegung.
|
||||
(defun vfs-standard-dialog-ablauf (vf-nummer / eingabe deltaL deltaH richtung
|
||||
z-start hz seite startpunkt startpunkt-xy)
|
||||
z-start hz seite startpunkt startpunkt-xy
|
||||
geruest-einzelmodul geruest-typ)
|
||||
(setq startpunkt-xy (getpoint (ssg-text "vfc-prompt-startpunkt-aus")))
|
||||
(if (null startpunkt-xy) (setq startpunkt-xy '(0 0 0)))
|
||||
|
||||
@@ -1031,9 +1048,12 @@
|
||||
richtung (nth 2 eingabe)
|
||||
z-start (nth 3 eingabe)
|
||||
hz (nth 4 eingabe)
|
||||
seite (nth 5 eingabe))
|
||||
seite (nth 5 eingabe)
|
||||
geruest-einzelmodul (nth 6 eingabe)
|
||||
geruest-typ (nth 7 eingabe))
|
||||
(setq startpunkt (list (car startpunkt-xy) (cadr startpunkt-xy) z-start))
|
||||
(vfs-standard-dialog-berechnen-einfuegen vf-nummer deltaL deltaH richtung startpunkt hz seite nil)
|
||||
(vfs-standard-dialog-berechnen-einfuegen vf-nummer deltaL deltaH richtung startpunkt hz seite nil
|
||||
geruest-einzelmodul geruest-typ)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1052,7 +1072,8 @@
|
||||
(defun c:VARIOFOERDERER_EDIT ( / ss ent ed bname startpunkt attribs xd
|
||||
deltaL deltaH richtung z-start hz seite
|
||||
eingabe vf-nummer best-winkel-attr L_GF_m-teile
|
||||
prefill-basis prefill-winkel)
|
||||
prefill-basis prefill-winkel
|
||||
geruest-einzelmodul geruest-typ)
|
||||
;; Implied Selection VOR ssg-start pruefen (ssg-start hebt Selektion auf)
|
||||
(setq ss (ssget "I"))
|
||||
(if (and ss (= (sslength ss) 1)
|
||||
@@ -1091,7 +1112,9 @@
|
||||
|
||||
(setq prefill-basis
|
||||
(list (cons "deltaL" deltaL) (cons "deltaH" deltaH) (cons "richtung" richtung)
|
||||
(cons "einfuegehoehe" z-start) (cons "hz" hz) (cons "seite" seite)))
|
||||
(cons "einfuegehoehe" z-start) (cons "hz" hz) (cons "seite" seite)
|
||||
(cons "geruest-einzelmodul" (cond ((cdr (assoc "GERUEST_EINZELMODUL" attribs))) ("0")))
|
||||
(cons "geruest-typ" (cdr (assoc "GERUEST_TYP" attribs)))))
|
||||
|
||||
(setq eingabe (vfs-dialog-eingabe-basis prefill-basis))
|
||||
(if (null eingabe)
|
||||
@@ -1102,7 +1125,9 @@
|
||||
richtung (nth 2 eingabe)
|
||||
z-start (nth 3 eingabe)
|
||||
hz (nth 4 eingabe)
|
||||
seite (nth 5 eingabe))
|
||||
seite (nth 5 eingabe)
|
||||
geruest-einzelmodul (nth 6 eingabe)
|
||||
geruest-typ (nth 7 eingabe))
|
||||
(setq startpunkt (list (car startpunkt) (cadr startpunkt) z-start))
|
||||
|
||||
;; Vorbelegung Winkel/Verteilung: bestehenden Winkel vorschlagen, L_GF-
|
||||
@@ -1118,7 +1143,7 @@
|
||||
(entdel ent)
|
||||
(setq vf-nummer (vf-next-number))
|
||||
(vfs-standard-dialog-berechnen-einfuegen vf-nummer deltaL deltaH richtung
|
||||
startpunkt hz seite prefill-winkel)
|
||||
startpunkt hz seite prefill-winkel geruest-einzelmodul geruest-typ)
|
||||
(princ (ssg-textf "vfs-edit-neu-aufgebaut" (list bname)))
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user