diff --git a/Lisp/SSG_LIB_Commands.lsp b/Lisp/SSG_LIB_Commands.lsp index 5565920..6b4d055 100644 --- a/Lisp/SSG_LIB_Commands.lsp +++ b/Lisp/SSG_LIB_Commands.lsp @@ -183,8 +183,15 @@ ;; Setzt DXFM_DIM, DXFM_BLOCKS und DXFM_OMNIFLO neu ;; ============================================================ -(defun c:SSG_DIM_SWITCH ( / dim-neu basis) - (setq dim-neu (if (equal (strcase (getenv "DXFM_DIM")) "3D") "2D" "3D")) +(defun c:SSG_DIM_SWITCH ( / dim-global dim-neu basis) + ;; Globalen Modus lesen: NUR DXFM_DIM + Fallback "3D". + ;; Bewusst KEIN *ssg-ils-dim* - das ist ein transienter GUI-Override + ;; pro Einfuegevorgang und soll den globalen Schalter nicht beeinflussen. + (setq dim-global + (cond + ((= (type (getenv "DXFM_DIM")) 'STR) (strcase (getenv "DXFM_DIM"))) + (t "3D"))) + (setq dim-neu (if (equal dim-global "3D") "2D" "3D")) (setq basis (getenv "DXFMAKRO")) (setenv "DXFM_DIM" dim-neu) ;; ILS-Bloecke liegen flach unter data\ils (Dimension im Dateinamen) - kein diff --git a/menu/SSG_LIB.mnl b/menu/SSG_LIB.mnl index 7313165..1a7de34 100644 --- a/menu/SSG_LIB.mnl +++ b/menu/SSG_LIB.mnl @@ -166,7 +166,28 @@ (menucmd "P13=+SSG_LIB.POP1") (setvar "DBLCLKEDIT" 1) (princ "\n[SSG_LIB] Alle Module geladen. Menue aktiv.") + ;; Beim Start immer auf globalen Default 3D zuruecksetzen. + ;; Hintergrund: AutoLISP-setenv schreibt in die BricsCAD-Profilregistry. + ;; Ohne diesen Reset wuerde ein alter SSG_DIM_SWITCH-Wert aus der Vorsitzung + ;; ueber setenv.bat gewinnen - unabhaengig davon, wie BricsCAD gestartet wurde. + (setenv "DXFM_DIM" "3D") + (princ (strcat "\n[SSG_LIB] Einfuege-Modus: 3D" + " (Umschalten global: SSG_DIM_SWITCH im Menue)")) ) (princ "\n[SSG_LIB] WARNUNG: DXFM_LISP nicht gesetzt - Befehle nicht verfuegbar.") ) + +;; S:STARTUP: wird von BricsCAD nach vollstaendiger Dokument-Initialisierung +;; aufgerufen - also NACH allen anderen Lade-Meldungen und Duplikaten. +;; defun-q haengt an eine bestehende S:STARTUP-Definition an (kein Ueberschreiben). +(defun-q S:STARTUP () + (if (car (atoms-family 1 '("SSG-ILS-DIM-AKTUELL"))) + (progn + (princ (strcat "\n[SSG_LIB] Einfuege-Modus: " (ssg-ils-dim-aktuell) + " (Umschalten global: SSG_DIM_SWITCH im Menue)")) + (princ) + ) + ) +) + (princ)