feat: VF-Werteingabe Radio-Dialoge + Startpunkt-Dialog (Standard+Etage)
Dropdown-Dialoge der Standard-/Etage-Werteingabe durch Radio-Buttons ersetzt (vfs-dialog-eingabe-basis-radio/vfs-dialog-winkel-verteilung- radio in vf_standard.lsp), da sich Radio-Labels nach new_dialog nicht per set_tile aendern lassen - die DCL wird dafuer bei jedem Aufruf frisch zur Laufzeit geschrieben (neue Kernel-Helfer ssg-dcl-temp- schreiben/ssg-dcl-label-escape in ssg_core.lsp) und dadurch sprachunabhaengig. Popup-Varianten bleiben als Fallback erhalten, falls das Schreiben/Laden der Temp-DCL-Datei scheitert. Startpunkt der Anlage wird jetzt ebenfalls per Dialog gepickt (vfc-dialog-startpunkt-waehlen, neue vfc_startpunkt-Dialogdefinition in dcl/variofoerderer.dcl) statt per reinem Konsolen-getpoint - analog zum bestehenden Punktwahl-Muster im Linienzug-Wizard. Zusaetzlich: Einfuegehoehe der 3D-Linien-Eingabe ist jetzt explizit abfragbar (Vorschlag = Z des Linien-Startpunkts), ueberschreibt nur die absolute Hoehe, deltaH/Steigung bleiben unveraendert aus der Linie abgeleitet. Gemeinsam mit vf_standard.lsp nach Merge-Konflikt zusammengefuehrt: der Kollege hatte an derselben Stelle unabhaengig vfs-edit-basis-lesen ergaenzt (gemeinsame Attribut-Leseroutine fuer Standard- UND Etage-Edit) - beide Ergaenzungen sind inhaltlich unabhaengig und bleiben nebeneinander bestehen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1622,6 +1622,44 @@
|
||||
)
|
||||
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; DCL ZUR LAUFZEIT GENERIEREN
|
||||
;; ------------------------------------------------------------
|
||||
;; Escaped Anfuehrungszeichen in einem DCL-Label-String ("->''), damit ein
|
||||
;; Label mit Anfuehrungszeichen (z.B. aus Nutzerdaten oder Zoll-Angaben) die
|
||||
;; DCL-Zeile nicht vorzeitig beendet. Fachlich identisch zu
|
||||
;; geruest-dcl-label (GeruestInsert.lsp), aber hier als generischer
|
||||
;; Kernel-Helfer fuer jeden Aufrufer, der DCL-Text zusammenbaut.
|
||||
(defun ssg-dcl-label-escape (text / i c out)
|
||||
(setq i 0 out "")
|
||||
(while (< i (strlen text))
|
||||
(setq c (substr text (1+ i) 1))
|
||||
(setq out (strcat out (if (= c "\"") "''" c)))
|
||||
(setq i (1+ i))
|
||||
)
|
||||
out
|
||||
)
|
||||
|
||||
;; Schreibt eine Liste von Textzeilen als temporaere DCL-Datei und liefert
|
||||
;; deren Pfad zurueck (oder nil bei Fehler, z.B. wenn open scheitert). Der
|
||||
;; Aufrufer ist fuer load_dialog/unload_dialog UND das Loeschen der Datei
|
||||
;; (vl-file-delete) danach selbst verantwortlich - analog zum bestehenden
|
||||
;; Muster in GeruestInsert.lsp (geruest-dcl-schreiben), hier nur als
|
||||
;; generischer Baustein fuer WEITERE Aufrufer (GeruestInsert.lsp selbst
|
||||
;; bleibt unveraendert, um dessen Code nicht anzufassen).
|
||||
(defun ssg-dcl-temp-schreiben (praefix zeilen / pfad f)
|
||||
(setq pfad (vl-filename-mktemp praefix nil ".dcl"))
|
||||
(if (setq f (open pfad "w"))
|
||||
(progn
|
||||
(foreach zeile zeilen (write-line zeile f))
|
||||
(close f)
|
||||
pfad
|
||||
)
|
||||
nil
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; REKURSIVER JSON-PARSER
|
||||
;; ------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user