Aufraeumaktion: bin/on_start.lsp geloescht, ssg_load.lsp Pfad-Fix
bin/on_start.lsp entfernt: Das Laden aller Module uebernimmt heute vollstaendig SSG_LIB.mnl, das automatisch beim MENULOAD geladen wird und ssg-ensure fuer Lazy-Loading sowie alle Kern- und Feature-Module direkt ausfuehrt. on_start.lsp war nirgendwo mehr referenziert (kein .bat, .mnu, .mnl oder .lsp rief die Datei oder ssg-lib-startup noch auf). Lisp/ssg_load.lsp: Pfadermittlung robuster gemacht: base-path nutzt jetzt 1) DXFM_LISP, 2) findfile, 3) DWGPREFIX. Vorher schlug findfile "ssg_core.lsp" fehl wenn DXFM_LISP nicht im BricsCAD-Suchpfad war, load gab still den Fehlerstring zurueck und ssg-load-config crashte mit "no function definition". Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+8
-6
@@ -11,13 +11,15 @@
|
||||
;; (load "pfad/ssg_dialog.lsp")
|
||||
;; ============================================================
|
||||
|
||||
(defun ssg-load-libs (/ base-path)
|
||||
;; Pfad dieser Datei als Basis verwenden (AutoCAD 2000+)
|
||||
(defun ssg-load-libs (/ base-path found)
|
||||
;; Pfad ermitteln: 1) DXFM_LISP, 2) findfile, 3) DWGPREFIX
|
||||
(setq base-path
|
||||
(if (findfile "ssg_core.lsp")
|
||||
(substr (findfile "ssg_core.lsp") 1
|
||||
(- (strlen (findfile "ssg_core.lsp")) (strlen "ssg_core.lsp")))
|
||||
(strcat (getvar "DWGPREFIX"))
|
||||
(cond
|
||||
((getenv "DXFM_LISP")
|
||||
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_LISP")) "/"))
|
||||
((setq found (findfile "ssg_core.lsp"))
|
||||
(substr found 1 (- (strlen found) (strlen "ssg_core.lsp"))))
|
||||
(t (getvar "DWGPREFIX"))
|
||||
)
|
||||
)
|
||||
(load (strcat base-path "ssg_core.lsp") "ssg_core.lsp nicht gefunden")
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
;; ============================================================
|
||||
;; on_start.lsp - SSG_LIB Startup fuer BricsCAD
|
||||
;; Wird beim Start von BricsCAD automatisch ausgefuehrt
|
||||
;; ============================================================
|
||||
|
||||
(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
|
||||
)
|
||||
)
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; SSG-DBG-FN - Prueft ob ein AutoLISP-Symbol gebunden ist
|
||||
;; Gibt "JA" oder "NEIN" zurueck (atoms-family, BRX-Cmds nicht pruefbar)
|
||||
;; ------------------------------------------------------------
|
||||
(defun ssg-dbg-fn (fname)
|
||||
(if (car (atoms-family 1 (list fname))) "JA" "NEIN")
|
||||
)
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; SSG-LIB-REGISTER-CHECK - Verfuegbarkeit aller Befehle ins Debug-Log schreiben
|
||||
;; ------------------------------------------------------------
|
||||
(defun ssg-lib-register-check ()
|
||||
(dbgmsg "[CHECK] --- AutoLISP Funktionen (atoms-family) ---")
|
||||
(dbgmsg (strcat "ssg-start: " (ssg-dbg-fn "SSG-START")))
|
||||
(dbgmsg (strcat "ssg-end: " (ssg-dbg-fn "SSG-END")))
|
||||
(dbgmsg (strcat "ssg-make-layer: " (ssg-dbg-fn "SSG-MAKE-LAYER")))
|
||||
(dbgmsg (strcat "ssg-errhan: " (ssg-dbg-fn "SSG-ERRHAN")))
|
||||
(dbgmsg (strcat "ensure-block-loaded: " (ssg-dbg-fn "ENSURE-BLOCK-LOADED")))
|
||||
(dbgmsg "[CHECK] --- SSG_LIB_Commands (c:...) ---")
|
||||
(dbgmsg (strcat "c:ILS_BTMT_Beladung: " (ssg-dbg-fn "C:ILS_BTMT_BELADUNG")))
|
||||
(dbgmsg (strcat "c:ILS_K90LA: " (ssg-dbg-fn "C:ILS_K90LA")))
|
||||
(dbgmsg (strcat "c:ILS_TEF_Strecke: " (ssg-dbg-fn "C:ILS_TEF_STRECKE")))
|
||||
(dbgmsg (strcat "c:KreiselInsert: " (ssg-dbg-fn "C:KREISELINSERT")))
|
||||
(dbgmsg (strcat "c:KreiselEdit: " (ssg-dbg-fn "C:KREISELEDIT")))
|
||||
(dbgmsg (strcat "c:ILS_Eckrad: " (ssg-dbg-fn "C:ILS_ECKRAD")))
|
||||
(dbgmsg (strcat "c:OMNI_AP60: " (ssg-dbg-fn "C:OMNI_AP60")))
|
||||
(dbgmsg (strcat "c:OMNI_APB_630_90: " (ssg-dbg-fn "C:OMNI_APB_630_90")))
|
||||
(dbgmsg (strcat "c:OMNI_W90_Einfach: " (ssg-dbg-fn "C:OMNI_W90_EINFACH")))
|
||||
(dbgflush)
|
||||
)
|
||||
|
||||
(defun ssg-lib-startup ( / lisp-pfad menu-pfad curr-srch menu-datei lsp-fb-pfad)
|
||||
|
||||
;; Pfade aus Umgebungsvariablen lesen
|
||||
(setq lisp-pfad (getenv "DXFM_LISP"))
|
||||
(setq menu-pfad (getenv "DXFMAKRO"))
|
||||
|
||||
;; Pfadtrenner vereinheitlichen: Backslash -> Forward-Slash
|
||||
(if lisp-pfad (setq lisp-pfad (vl-string-translate "\\" "/" lisp-pfad)))
|
||||
(if menu-pfad (setq menu-pfad (vl-string-translate "\\" "/" menu-pfad)))
|
||||
|
||||
(if (null lisp-pfad)
|
||||
(progn
|
||||
(princ "\n[SSG_LIB] FEHLER: DXFM_LISP nicht gesetzt!")
|
||||
(princ "\n[SSG_LIB] Bitte zuerst bin\\setenv.bat ausfuehren.")
|
||||
)
|
||||
(progn
|
||||
;; Debug-Logging so frueh wie moeglich starten
|
||||
(if (findfile (strcat lisp-pfad "/ssg_dbg.lsp"))
|
||||
(progn
|
||||
(load (strcat lisp-pfad "/ssg_dbg.lsp"))
|
||||
(dbgopen "debugfile.dbg" "DXFM_LOG")
|
||||
(dbgmsg "[on_start] Startup begonnen")
|
||||
(dbgmsg (strcat "[on_start] DXFM_LISP=" lisp-pfad))
|
||||
(dbgmsg (strcat "[on_start] DXFMAKRO=" (if menu-pfad menu-pfad "nicht gesetzt")))
|
||||
(dbgflush)
|
||||
)
|
||||
)
|
||||
|
||||
(princ "\n[SSG_LIB] Lade SSG_LIB Umgebung...")
|
||||
|
||||
;; Library laden (direkt, damit Fehler sichtbar sind)
|
||||
;; Kein SRCHPATH-Aendern noetig - alle Dateien werden ueber
|
||||
;; absolute Pfade (Umgebungsvariablen) geladen
|
||||
(if (findfile (strcat lisp-pfad "/ssg_load.lsp"))
|
||||
(progn
|
||||
(load (strcat lisp-pfad "/ssg_load.lsp"))
|
||||
(princ "\n[SSG_LIB] ssg_load.lsp geladen.")
|
||||
)
|
||||
(princ "\n[SSG_LIB] WARNUNG: ssg_load.lsp nicht gefunden!")
|
||||
)
|
||||
|
||||
;; Menue laden
|
||||
(if menu-pfad
|
||||
(progn
|
||||
(setq menu-datei (strcat menu-pfad "/menu/SSG_LIB.mnu"))
|
||||
(if (findfile menu-datei)
|
||||
(progn
|
||||
(command "_.MENULOAD" menu-datei)
|
||||
(menucmd "P13=+SSG_LIB.POP1")
|
||||
(princ "\n[SSG_LIB] Menue SSG_LIB geladen und eingebunden.")
|
||||
)
|
||||
(princ (strcat "\n[SSG_LIB] WARNUNG: " menu-datei " nicht gefunden!"))
|
||||
)
|
||||
)
|
||||
(princ "\n[SSG_LIB] WARNUNG: DXFMAKRO nicht gesetzt, Menue nicht geladen!")
|
||||
)
|
||||
|
||||
;; DBLCLKEDIT=1: Doppelklick aktiv, ***DOUBLECLICK-Eintraege steuern Block-Verhalten
|
||||
(setvar "DBLCLKEDIT" 1)
|
||||
|
||||
(dbgflush)
|
||||
|
||||
(ssg-lib-register-check)
|
||||
|
||||
(princ "\n[SSG_LIB] Startup abgeschlossen.")
|
||||
)
|
||||
)
|
||||
(princ)
|
||||
)
|
||||
|
||||
;; Startup ausfuehren
|
||||
(ssg-lib-startup)
|
||||
Reference in New Issue
Block a user