Oberfläche für Standard von Varioförder und Gefällestrecke bauen lassen
This commit is contained in:
@@ -699,6 +699,427 @@
|
||||
endpunkt
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; DCL-DIALOG (Standardfall) - dcl/variofoerderer.dcl
|
||||
;; Ersetzt die interaktive Werteingabe aus vf-eingabe-abfragen
|
||||
;; (Konsolen-Modus "Werteingabe") fuer anlage-typ "standard" durch
|
||||
;; zwei DCL-Dialoge: Basis-Eingabe und Winkel/Verteilung. Die
|
||||
;; 3D-Linie-Eingabe sowie die Typen "etage"/"linienzug" bleiben
|
||||
;; unveraendert interaktiv (siehe Verzweigung in c:VarioFoerderer).
|
||||
;; ============================================================
|
||||
|
||||
;; Basis-Eingabe (Dialog 1): deltaL, deltaH, Richtung, Einfuegehoehe,
|
||||
;; Fahrtrichtung, Seite.
|
||||
;; 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.
|
||||
(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)
|
||||
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/variofoerderer.dcl"))
|
||||
(setq dat (load_dialog dcl-pfad))
|
||||
(if (not (new_dialog "variofoerderer_basis" dat))
|
||||
(progn
|
||||
(if (>= dat 0) (unload_dialog dat))
|
||||
(alert (ssg-textf "gf-alert-dialog-fehlt" (list dcl-pfad)))
|
||||
nil
|
||||
)
|
||||
(progn
|
||||
;; Vorbelegung: aus prefill (Edit) oder Defaults (Neuanlage)
|
||||
(set_tile "deltal"
|
||||
(if prefill (rtos (cdr (assoc "deltaL" prefill)) 2 0) "15000"))
|
||||
(set_tile "deltah"
|
||||
(if prefill (rtos (cdr (assoc "deltaH" prefill)) 2 0) "3000"))
|
||||
(set_tile "einfuegehoehe"
|
||||
(if prefill (rtos (cdr (assoc "einfuegehoehe" prefill)) 2 1) "0"))
|
||||
|
||||
(start_list "richtung")
|
||||
(add_list (ssg-text "vfs-dlg-richtung-auf"))
|
||||
(add_list (ssg-text "vfs-dlg-richtung-ab"))
|
||||
(end_list)
|
||||
(set_tile "richtung"
|
||||
(if (and prefill (equal (cdr (assoc "richtung" prefill)) "Ab")) "1" "0"))
|
||||
|
||||
(start_list "fahrtrichtung")
|
||||
(add_list (ssg-textf "gf-dlg-richtung-0" (list grad-zeichen)))
|
||||
(add_list (ssg-textf "gf-dlg-richtung-90" (list grad-zeichen)))
|
||||
(add_list (ssg-textf "gf-dlg-richtung-180" (list grad-zeichen)))
|
||||
(add_list (ssg-textf "gf-dlg-richtung-270" (list grad-zeichen)))
|
||||
(end_list)
|
||||
(set_tile "fahrtrichtung"
|
||||
(if prefill
|
||||
(cond ((equal (cdr (assoc "hz" prefill)) 90.0 0.1) "1")
|
||||
((equal (cdr (assoc "hz" prefill)) 180.0 0.1) "2")
|
||||
((equal (cdr (assoc "hz" prefill)) 270.0 0.1) "3")
|
||||
(t "0"))
|
||||
"0"))
|
||||
|
||||
(start_list "seite")
|
||||
(add_list (ssg-text "gf-dlg-rechts"))
|
||||
(add_list (ssg-text "gf-dlg-links"))
|
||||
(end_list)
|
||||
(set_tile "seite"
|
||||
(if (and prefill (equal (cdr (assoc "seite" prefill)) "links")) "1" "0"))
|
||||
|
||||
;; Actions
|
||||
(action_tile "accept"
|
||||
(strcat
|
||||
"(setq dlg-deltal (get_tile \"deltal\"))"
|
||||
"(setq dlg-deltah (get_tile \"deltah\"))"
|
||||
"(setq dlg-richtung (get_tile \"richtung\"))"
|
||||
"(setq dlg-hoehe (get_tile \"einfuegehoehe\"))"
|
||||
"(setq dlg-fahrtrichtung (get_tile \"fahrtrichtung\"))"
|
||||
"(setq dlg-seite (get_tile \"seite\"))"
|
||||
"(done_dialog 1)"
|
||||
)
|
||||
)
|
||||
(action_tile "cancel" "(done_dialog 0)")
|
||||
|
||||
(setq ergebnis (start_dialog))
|
||||
(unload_dialog dat)
|
||||
|
||||
(if (= ergebnis 1)
|
||||
(progn
|
||||
(setq deltaL (atof dlg-deltal))
|
||||
(setq deltaH (atof dlg-deltah))
|
||||
(setq richtung (if (= dlg-richtung "1") "Ab" "Auf"))
|
||||
(setq z-start (atof dlg-hoehe))
|
||||
(setq hz
|
||||
(cond ((= dlg-fahrtrichtung "1") 90.0)
|
||||
((= dlg-fahrtrichtung "2") 180.0)
|
||||
((= dlg-fahrtrichtung "3") 270.0)
|
||||
(t 0.0)))
|
||||
(setq seite (if (= dlg-seite "1") "links" "rechts"))
|
||||
(list deltaL deltaH richtung z-start hz seite)
|
||||
)
|
||||
nil
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; Winkel/Verteilung-Eingabe (Dialog 2): Winkel-Popup aus den vorher
|
||||
;; berechneten gueltigen Varianten (gueltige-winkel/ergebnis-liste, siehe
|
||||
;; berechne-alle-winkel), plus L_GF-Verteilung vorne/hinten (analog Schritt
|
||||
;; 8+9 in c:VarioFoerderer).
|
||||
;; prefill: Assoziationsliste ("winkel" . best-winkel) ("verteilung-idx" . "0".."3")
|
||||
;; ("lgf1" . mm) - oder nil fuer Vorbelegung mit dem kleinsten gueltigen Winkel.
|
||||
;; Rueckgabe: (best-winkel L_GF L_VF L_GF1 L_GF2 verteilung-modus) oder nil bei Abbruch.
|
||||
(defun vfs-dialog-winkel-verteilung (gueltige-winkel ergebnis-liste staustrecke-basis prefill /
|
||||
dcl-pfad dat ergebnis w eintrag idx sel-idx init-verteilung
|
||||
dlg-winkel dlg-verteilung dlg-lgf1
|
||||
best-winkel L_GF L_VF verteilung-modus L_GF1 L_GF2)
|
||||
(setq dcl-pfad (strcat (getenv "DXFM_DCL") "/variofoerderer.dcl"))
|
||||
(setq dat (load_dialog dcl-pfad))
|
||||
(if (not (new_dialog "variofoerderer_winkel" dat))
|
||||
(progn
|
||||
(if (>= dat 0) (unload_dialog dat))
|
||||
(alert (ssg-textf "gf-alert-dialog-fehlt" (list dcl-pfad)))
|
||||
nil
|
||||
)
|
||||
(progn
|
||||
;; Winkel-Popup aus den gueltigen Varianten aufbauen
|
||||
(start_list "winkel")
|
||||
(foreach w gueltige-winkel
|
||||
(setq eintrag (assoc w ergebnis-liste))
|
||||
(if (= w 0)
|
||||
(add_list (ssg-textf "vfs-dlg-winkel-horizontal"
|
||||
(list (rtos (nth 1 eintrag) 2 1) (rtos (nth 2 eintrag) 2 1))))
|
||||
(add_list (ssg-textf "vfs-dlg-winkel-option"
|
||||
(list (itoa w) grad-zeichen (rtos (nth 1 eintrag) 2 1) (rtos (nth 2 eintrag) 2 1))))
|
||||
)
|
||||
)
|
||||
(end_list)
|
||||
;; Vorbelegung: Winkel aus prefill (falls noch gueltig), sonst erster
|
||||
;; (kleinster) gueltiger Winkel - analog der automatischen Konsolen-Wahl.
|
||||
(setq sel-idx 0 idx 0)
|
||||
(if prefill
|
||||
(foreach w gueltige-winkel
|
||||
(if (equal w (cdr (assoc "winkel" prefill))) (setq sel-idx idx))
|
||||
(setq idx (1+ idx))
|
||||
)
|
||||
)
|
||||
(set_tile "winkel" (itoa sel-idx))
|
||||
|
||||
;; Verteilung: Popup + manuelles L_GF1-Feld (nur bei "Eigene Werte" aktiv)
|
||||
(start_list "verteilung")
|
||||
(add_list (ssg-text "vfs-dlg-verteilung-1"))
|
||||
(add_list (ssg-text "vfs-dlg-verteilung-2"))
|
||||
(add_list (ssg-text "vfs-dlg-verteilung-3"))
|
||||
(add_list (ssg-text "vfs-dlg-verteilung-4"))
|
||||
(end_list)
|
||||
(setq init-verteilung (if prefill (cdr (assoc "verteilung-idx" prefill)) "0"))
|
||||
(set_tile "verteilung" init-verteilung)
|
||||
(set_tile "lgf1_manuell"
|
||||
(if (and prefill (cdr (assoc "lgf1" prefill)))
|
||||
(rtos (cdr (assoc "lgf1" prefill)) 2 1) "0"))
|
||||
(mode_tile "lgf1_manuell" (if (= init-verteilung "3") 0 1))
|
||||
|
||||
(action_tile "verteilung"
|
||||
"(mode_tile \"lgf1_manuell\" (if (= (get_tile \"verteilung\") \"3\") 0 1))")
|
||||
|
||||
(action_tile "accept"
|
||||
(strcat
|
||||
"(setq dlg-winkel (get_tile \"winkel\"))"
|
||||
"(setq dlg-verteilung (get_tile \"verteilung\"))"
|
||||
"(setq dlg-lgf1 (get_tile \"lgf1_manuell\"))"
|
||||
"(done_dialog 1)"
|
||||
)
|
||||
)
|
||||
(action_tile "cancel" "(done_dialog 0)")
|
||||
|
||||
(setq ergebnis (start_dialog))
|
||||
(unload_dialog dat)
|
||||
|
||||
(if (= ergebnis 1)
|
||||
(progn
|
||||
(setq best-winkel (nth (atoi dlg-winkel) gueltige-winkel))
|
||||
(setq eintrag (assoc best-winkel ergebnis-liste))
|
||||
(setq L_GF (nth 1 eintrag) L_VF (nth 2 eintrag))
|
||||
(setq verteilung-modus dlg-verteilung)
|
||||
(cond
|
||||
((= verteilung-modus "0")
|
||||
(setq L_GF1 (/ L_GF 2.0) L_GF2 (/ L_GF 2.0)))
|
||||
((= verteilung-modus "1")
|
||||
(setq L_GF1 (float staustrecke-basis))
|
||||
(setq L_GF2 (max 0.0 (- L_GF (float staustrecke-basis)))))
|
||||
((= verteilung-modus "2")
|
||||
(setq L_GF2 (float staustrecke-basis))
|
||||
(setq L_GF1 (max 0.0 (- L_GF (float staustrecke-basis)))))
|
||||
((= verteilung-modus "3")
|
||||
(setq L_GF1 (atof dlg-lgf1))
|
||||
(if (or (null L_GF1) (< L_GF1 0)) (setq L_GF1 (/ L_GF 2.0)))
|
||||
(if (> L_GF1 L_GF) (setq L_GF1 L_GF))
|
||||
(setq L_GF2 (max 0.0 (- L_GF L_GF1))))
|
||||
(t (setq L_GF1 (/ L_GF 2.0) L_GF2 (/ L_GF 2.0)))
|
||||
)
|
||||
(list best-winkel L_GF L_VF L_GF1 L_GF2 verteilung-modus)
|
||||
)
|
||||
nil
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; XDATA-Metadaten fuer den Edit-Nachbau (App "SSG_VF_EDIT").
|
||||
;; Markiert ein VF_n-INSERT als "mit dem Standard-Dialog erstellt" und
|
||||
;; speichert die Fahrtrichtung (hz) - der einzige Wert, der sich nicht aus
|
||||
;; den Sivas-Attributen rekonstruieren laesst (ANTRIEBFAHRTRICHTUNG, SEITE_AS,
|
||||
;; VF_WINKEL, L_GF_m stehen dort bereits). Bewusst NICHT im Sivas-Attributsatz.
|
||||
;; Ohne diese Markierung (z.B. Etage-, Linienzug- oder Altbestand-Bloecke)
|
||||
;; verweigert c:VARIOFOERDERER_EDIT die Bearbeitung, um deren komplexere
|
||||
;; Geometrie nicht versehentlich durch einen einfachen Neuaufbau zu ersetzen.
|
||||
;; ============================================================
|
||||
(if (null *vf-xdata-app*) (setq *vf-xdata-app* "SSG_VF_EDIT"))
|
||||
|
||||
(defun vfs-xdata-schreiben (ent hz /)
|
||||
(regapp *vf-xdata-app*)
|
||||
(entmod
|
||||
(append (entget ent)
|
||||
(list
|
||||
(list -3
|
||||
(list *vf-xdata-app*
|
||||
(cons 1000 "standard")
|
||||
(cons 1000 (rtos (float hz) 2 4)))))))
|
||||
ent
|
||||
)
|
||||
|
||||
;; XDATA lesen -> (typ-marker hz-str) oder nil.
|
||||
(defun vfs-xdata-lesen (ent / xd app-data)
|
||||
(setq xd (entget ent (list *vf-xdata-app*)))
|
||||
(setq app-data (cdr (assoc -3 xd)))
|
||||
(if app-data
|
||||
(mapcar 'cdr (cdr (car app-data)))
|
||||
nil
|
||||
)
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; Gemeinsame Berechnung + Winkel/Verteilung-Dialog + Einfuegung.
|
||||
;; Wird sowohl von der Neuanlage (vfs-standard-dialog-ablauf) als auch vom
|
||||
;; Edit-Befehl (c:VARIOFOERDERER_EDIT) verwendet.
|
||||
;; 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 /
|
||||
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 staustrecke-basis)
|
||||
(setq ergebnis (berechne-standard deltaL deltaH richtung seite))
|
||||
(setq ergebnis-liste (cadddr ergebnis))
|
||||
(setq staustrecke-basis (ssg-cfg-or "vario" "staustrecke_basis" 1000))
|
||||
|
||||
;; Horizontale Zwischenstrecke als Zusatzoption (nur bei "Ab" erreichbar,
|
||||
;; siehe Kommentar in c:VarioFoerderer Schritt 5b).
|
||||
(setq horizontal-info nil)
|
||||
(if (= richtung "Ab")
|
||||
(progn
|
||||
(setq horizontal-info (berechne-horizontale-mitte deltaL deltaH "Ab"))
|
||||
(if (and horizontal-info (caddr horizontal-info))
|
||||
(setq ergebnis-liste
|
||||
(append ergebnis-liste (list (list 0 (car horizontal-info) (cadr horizontal-info) T))))
|
||||
(setq horizontal-info nil)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(setq gueltige-winkel
|
||||
(mapcar 'car
|
||||
(vl-remove-if-not
|
||||
(function (lambda (e) (and (nth 3 e) (numberp (nth 1 e)) (numberp (nth 2 e))
|
||||
(>= (nth 1 e) 0) (>= (nth 2 e) 0))))
|
||||
ergebnis-liste)))
|
||||
|
||||
(if (null gueltige-winkel)
|
||||
(alert (ssg-textf "vfc-alert-kein-winkel"
|
||||
(list (chr 916) (rtos deltaL 2 0) (rtos deltaH 2 0) richtung)))
|
||||
(progn
|
||||
(setq winkelwahl (vfs-dialog-winkel-verteilung gueltige-winkel ergebnis-liste staustrecke-basis winkel-prefill))
|
||||
(if (null winkelwahl)
|
||||
(princ (ssg-text "vfc-vorgang-abgebrochen"))
|
||||
(progn
|
||||
(setq best-winkel (nth 0 winkelwahl)
|
||||
L_GF (nth 1 winkelwahl)
|
||||
L_VF (nth 2 winkelwahl)
|
||||
L_GF1 (nth 3 winkelwahl)
|
||||
L_GF2 (nth 4 winkelwahl)
|
||||
verteilung-modus (nth 5 winkelwahl))
|
||||
(setq n-scanner 0)
|
||||
(setq hoehe-von (caddr startpunkt))
|
||||
(setq hoehe-bis
|
||||
(cond ((= richtung "Auf") (+ hoehe-von deltaH))
|
||||
((= richtung "Ab") (- hoehe-von deltaH))
|
||||
(t hoehe-von)))
|
||||
(setq lastEnt (vf-lastent-ohne-attribute))
|
||||
|
||||
(variofoerderer-einfuegen deltaL deltaH richtung best-winkel L_GF1 L_GF2 L_VF startpunkt seite hz)
|
||||
|
||||
(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))
|
||||
(if vf-insert (vfs-xdata-schreiben vf-insert hz))
|
||||
(princ "\n=========================================")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; 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)
|
||||
(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)
|
||||
(princ (ssg-text "vfc-vorgang-abgebrochen"))
|
||||
(progn
|
||||
(setq deltaL (nth 0 eingabe)
|
||||
deltaH (nth 1 eingabe)
|
||||
richtung (nth 2 eingabe)
|
||||
z-start (nth 3 eingabe)
|
||||
hz (nth 4 eingabe)
|
||||
seite (nth 5 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)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; VARIOFOERDERER_EDIT - Doppelklick/Kontextmenue-Bearbeitung
|
||||
;; ============================================================
|
||||
|
||||
;; Bearbeitet einen bestehenden Standard-VarioFoerderer (VF_n-Block, mit
|
||||
;; SSG_VF_EDIT-XDATA) ueber die DCL-Dialoge: liest die aktuellen Parameter,
|
||||
;; zeigt sie vorbelegt und baut die Strecke bei OK am selben Startpunkt neu
|
||||
;; auf. Wird vom Doppelklick-Dispatcher SSG_BLOCKEDIT fuer Blocknamen "VF_*"
|
||||
;; aufgerufen. Bloecke ohne SSG_VF_EDIT-XDATA (Etage, Linienzug, Altbestand)
|
||||
;; werden abgewiesen, da ihre Geometrie sich nicht verlustfrei aus dem
|
||||
;; einfachen Standard-Schema rekonstruieren laesst.
|
||||
(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)
|
||||
;; Implied Selection VOR ssg-start pruefen (ssg-start hebt Selektion auf)
|
||||
(setq ss (ssget "I"))
|
||||
(if (and ss (= (sslength ss) 1)
|
||||
(= (cdr (assoc 0 (entget (ssname ss 0)))) "INSERT"))
|
||||
(setq ent (ssname ss 0))
|
||||
)
|
||||
|
||||
(ssg-start "VARIOFOERDERER_EDIT" '(("OSMODE") ("ATTREQ") ("ATTDIA")))
|
||||
(setvar "OSMODE" 0)
|
||||
|
||||
(if (null ent)
|
||||
(progn
|
||||
(setq ss (ssget ":S" '((0 . "INSERT"))))
|
||||
(if ss (setq ent (ssname ss 0)))
|
||||
)
|
||||
)
|
||||
(if (null ent) (progn (ssg-end) (exit)))
|
||||
|
||||
(setq ed (entget ent))
|
||||
(setq bname (cdr (assoc 2 ed)))
|
||||
(if (not (wcmatch bname "VF_*"))
|
||||
(progn (alert (ssg-textf "vfs-edit-kein-vf" (list bname))) (ssg-end) (exit)))
|
||||
|
||||
(setq xd (vfs-xdata-lesen ent))
|
||||
(if (or (null xd) (/= (car xd) "standard"))
|
||||
(progn (alert (ssg-textf "vfs-edit-keine-xdata" (list bname))) (ssg-end) (exit)))
|
||||
|
||||
(setq startpunkt (cdr (assoc 10 ed)))
|
||||
(setq attribs (ssg-attrib-read ent))
|
||||
(setq hz (atof (nth 1 xd)))
|
||||
(setq deltaL (atof (cond ((cdr (assoc "DELTA_L_mm" attribs))) ("15000"))))
|
||||
(setq deltaH (atof (cond ((cdr (assoc "DELTA_H_mm" attribs))) ("3000"))))
|
||||
(setq richtung (cond ((cdr (assoc "ANTRIEBFAHRTRICHTUNG" attribs))) ("Auf")))
|
||||
(setq seite (cond ((cdr (assoc "SEITE_AS" attribs))) ("rechts")))
|
||||
(setq z-start (caddr startpunkt))
|
||||
|
||||
(setq prefill-basis
|
||||
(list (cons "deltaL" deltaL) (cons "deltaH" deltaH) (cons "richtung" richtung)
|
||||
(cons "einfuegehoehe" z-start) (cons "hz" hz) (cons "seite" seite)))
|
||||
|
||||
(setq eingabe (vfs-dialog-eingabe-basis prefill-basis))
|
||||
(if (null eingabe)
|
||||
(princ (ssg-text "vfc-vorgang-abgebrochen"))
|
||||
(progn
|
||||
(setq deltaL (nth 0 eingabe)
|
||||
deltaH (nth 1 eingabe)
|
||||
richtung (nth 2 eingabe)
|
||||
z-start (nth 3 eingabe)
|
||||
hz (nth 4 eingabe)
|
||||
seite (nth 5 eingabe))
|
||||
(setq startpunkt (list (car startpunkt) (cadr startpunkt) z-start))
|
||||
|
||||
;; Vorbelegung Winkel/Verteilung: bestehenden Winkel vorschlagen, L_GF-
|
||||
;; Verteilung als "Eigene Werte" mit dem aktuellen L_GF1 (aus L_GF_m) -
|
||||
;; das ist unabhaengig vom urspruenglichen Verteilungsmodus immer exakt.
|
||||
(setq best-winkel-attr (atoi (cond ((cdr (assoc "VF_WINKEL" attribs))) ("0"))))
|
||||
(setq L_GF_m-teile (ssg-cfg-split-comma (cond ((cdr (assoc "L_GF_m" attribs))) ("0.0,0.0"))))
|
||||
(setq prefill-winkel
|
||||
(list (cons "winkel" best-winkel-attr)
|
||||
(cons "verteilung-idx" "3")
|
||||
(cons "lgf1" (* 1000.0 (atof (car L_GF_m-teile))))))
|
||||
|
||||
(entdel ent)
|
||||
(setq vf-nummer (vf-next-number))
|
||||
(vfs-standard-dialog-berechnen-einfuegen vf-nummer deltaL deltaH richtung
|
||||
startpunkt hz seite prefill-winkel)
|
||||
(princ (ssg-textf "vfs-edit-neu-aufgebaut" (list bname)))
|
||||
)
|
||||
)
|
||||
(ssg-end)
|
||||
(princ)
|
||||
)
|
||||
|
||||
;; ============================================================
|
||||
;; REGISTRIERUNG
|
||||
;; ============================================================
|
||||
|
||||
Reference in New Issue
Block a user