diff --git a/bin/on_start.lsp b/bin/on_start.lsp index d6577e7..4761047 100644 --- a/bin/on_start.lsp +++ b/bin/on_start.lsp @@ -3,7 +3,19 @@ ;; Wird beim Start von BricsCAD automatisch ausgefuehrt ;; ============================================================ -(defun ssg-lib-startup ( / lisp-pfad menu-pfad) +(defun ssg-lib-safe-load (datei / result) + (setq result (vl-catch-all-apply 'load (list datei))) + (if (vl-catch-all-error-p result) + (progn + (princ (strcat "\n[SSG_LIB] FEHLER beim Laden von " datei ":")) + (princ (strcat "\n " (vl-catch-all-error-message result))) + nil + ) + t + ) +) + +(defun ssg-lib-startup ( / lisp-pfad menu-pfad curr-srch menu-datei) ;; Pfade aus Umgebungsvariablen lesen (setq lisp-pfad (getenv "DXFM_LISP")) @@ -19,14 +31,13 @@ ;; LISP-Pfad zum BricsCAD-Suchpfad hinzufuegen (setq curr-srch (getvar "SRCHPATH")) - (if (not (vl-string-search lisp-pfad curr-srch)) + (if (and curr-srch (not (vl-string-search lisp-pfad curr-srch))) (setvar "SRCHPATH" (strcat curr-srch ";" lisp-pfad)) ) ;; Dummy-Befehle laden (if (findfile (strcat lisp-pfad "/SSG_LIB_Commands.lsp")) - (progn - (load (strcat lisp-pfad "/SSG_LIB_Commands.lsp")) + (if (ssg-lib-safe-load (strcat lisp-pfad "/SSG_LIB_Commands.lsp")) (princ "\n[SSG_LIB] SSG_LIB_Commands.lsp geladen.") ) (princ "\n[SSG_LIB] WARNUNG: SSG_LIB_Commands.lsp nicht gefunden!") @@ -34,8 +45,7 @@ ;; VarioFoerderer laden (if (findfile (strcat lisp-pfad "/VarioFoerderer.lsp")) - (progn - (load (strcat lisp-pfad "/VarioFoerderer.lsp")) + (if (ssg-lib-safe-load (strcat lisp-pfad "/VarioFoerderer.lsp")) (princ "\n[SSG_LIB] VarioFoerderer.lsp geladen.") ) (princ "\n[SSG_LIB] WARNUNG: VarioFoerderer.lsp nicht gefunden!") @@ -43,8 +53,7 @@ ;; ILSModulInsert laden (if (findfile (strcat lisp-pfad "/ILSModulInsert.lsp")) - (progn - (load (strcat lisp-pfad "/ILSModulInsert.lsp")) + (if (ssg-lib-safe-load (strcat lisp-pfad "/ILSModulInsert.lsp")) (princ "\n[SSG_LIB] ILSModulInsert.lsp geladen.") ) (princ "\n[SSG_LIB] WARNUNG: ILSModulInsert.lsp nicht gefunden!")