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:
2026-06-25 16:44:15 +02:00
parent 84e91e557e
commit 2c689cbcf1
2 changed files with 8 additions and 126 deletions
+8 -6
View File
@@ -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")
-120
View File
@@ -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)