Startup-Sequenz geändert, um ein Debugfile möglichst früh zu haben

This commit is contained in:
2026-06-02 13:14:00 +02:00
parent d2ab6ff4e2
commit f1c3e5f060
3 changed files with 88 additions and 5 deletions
+9
View File
@@ -264,5 +264,14 @@
;; ------------------------------------------------------------
(defun dbgp (msg) (dbgmsg msg))
;; ------------------------------------------------------------
;; DBGFLUSH - Puffer sofort auf Platte schreiben (oeffentlich)
;; Nuetzlich wenn kein dbgreturn folgt (z.B. Startup-Code)
;; ------------------------------------------------------------
(defun dbgflush ()
(dbg-flush)
(princ)
)
(prompt "\nssg_dbg geladen.")
(princ)
+4 -2
View File
@@ -20,9 +20,11 @@
(strcat (getvar "DWGPREFIX"))
)
)
(load (strcat base-path "ssg_core.lsp") "ssg_core.lsp nicht gefunden")
(load (strcat base-path "ssg_dbg.lsp") "ssg_dbg.lsp nicht gefunden")
(dbgopen "debugfile.dbg" "DXFM_LOG") ; Debug-Datei im Log-Verzeichnis oeffnen
(if (not *dbg-path*)
(dbgopen "debugfile.dbg" "DXFM_LOG") ; Fallback: direkt geladen ohne on_start.lsp
)
(load (strcat base-path "ssg_core.lsp") "ssg_core.lsp nicht gefunden")
(load (strcat base-path "ssg_dialog.lsp") "ssg_dialog.lsp nicht gefunden")
(load (strcat base-path "ssg_layer.lsp") "ssg_layer.lsp nicht gefunden")
;; KreiselInsert.lsp entfernt - ersetzt durch Python/PyRx (lib/elemente/kreisel.py, eckrad.py)
+75 -3
View File
@@ -15,7 +15,38 @@
)
)
(defun ssg-lib-startup ( / lisp-pfad menu-pfad curr-srch menu-datei)
;; ------------------------------------------------------------
;; 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-DBG-PYRX - PyRx-Ladeprozess ins Debug-Log schreiben
;; Wird nach arxload aufgerufen, damit alle Ergebniswerte vorliegen.
;; ------------------------------------------------------------
(defun ssg-dbg-pyrx (pyrx-pfad ver-major brx-datei brx-result / arx-name)
(dbgmsg "[PyRx] --- Umgebung ---")
(dbgmsg (strcat "PYTHONHOME: " (if (getenv "PYTHONHOME") (getenv "PYTHONHOME") "nicht gesetzt")))
(dbgmsg (strcat "PYTHONPATH: " (if (getenv "PYTHONPATH") (getenv "PYTHONPATH") "nicht gesetzt")))
(dbgmsg (strcat "PATH (Anfang): " (substr (getenv "PATH") 1 120)))
(dbgmsg "[PyRx] --- Eingabewerte ---")
(dbgmsg (strcat "pyrx-pfad: " pyrx-pfad))
(dbgmsg (strcat "ver-major: " ver-major))
(dbgmsg (strcat "brx-datei: " brx-datei))
(dbgmsg "[PyRx] --- arxload Ergebnis ---")
(dbgmsg (strcat "arxload Rueckgabe: " (vl-princ-to-string brx-result)))
(dbgmsg (strcat "arxload Fehler? " (if (vl-catch-all-error-p brx-result) (vl-catch-all-error-message brx-result) "nein")))
(setq arx-name (strcat "rxloaderv" ver-major ".0.brx"))
(dbgmsg (strcat "(arx) rxloader? " (if (member arx-name (arx)) "JA" "NEIN")))
(dbgmsg (strcat "(arx) Liste: " (vl-princ-to-string (arx))))
(dbgflush)
)
(defun ssg-lib-startup ( / lisp-pfad menu-pfad curr-srch menu-datei
pyrx-pfad acadver-str ver-punkt ver-major brx-datei brx-fallback brx-result)
;; Pfade aus Umgebungsvariablen lesen
(setq lisp-pfad (getenv "DXFM_LISP"))
@@ -27,6 +58,18 @@
(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...")
;; LISP-Pfad zum BricsCAD-Suchpfad hinzufuegen
@@ -77,7 +120,8 @@
(setq brx-datei (strcat pyrx-pfad "/RxLoaderV" ver-major ".0.brx"))
(if (findfile brx-datei)
(progn
(arxload brx-datei)
(setq brx-result (vl-catch-all-apply 'arxload (list brx-datei)))
(ssg-dbg-pyrx pyrx-pfad ver-major brx-datei brx-result)
(princ (strcat "\n[SSG_LIB] PyRx BRX geladen (V" ver-major "): " brx-datei))
)
(progn
@@ -102,17 +146,45 @@
)
;; Python-Module laden (PyRx)
(dbgmsg "[PYLOAD] --- Python-Module ---")
(if menu-pfad
(foreach pymod '("eckrad" "kreisel" "dblclick" "omniflo" "omniflo_boegen" "omniflo_weichen")
(if (findfile (strcat menu-pfad "/lib/elemente/" pymod ".py"))
(progn
(dbgmsg (strcat "PYLOAD start: " pymod ".py"))
(command "PYLOAD" (strcat menu-pfad "/lib/elemente/" pymod ".py"))
(dbgmsg (strcat "PYLOAD done: " pymod ".py"))
(princ (strcat "\n[SSG_LIB] Python-Modul " pymod ".py geladen."))
)
(princ (strcat "\n[SSG_LIB] HINWEIS: " pymod ".py nicht gefunden."))
(progn
(dbgmsg (strcat "PYLOAD skip: " pymod ".py -- nicht gefunden"))
(princ (strcat "\n[SSG_LIB] HINWEIS: " pymod ".py nicht gefunden."))
)
)
)
)
(dbgflush)
;; Verfuegbarkeits-Check aller erwarteten Funktionen
(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 "[CHECK] --- PyRx Befehle (BRX-Ebene, nicht via atoms-family pruefbar) ---")
(dbgmsg (strcat "KreiselInsert: " (ssg-dbg-fn "C:KREISELINSERT")))
(dbgmsg (strcat "KreiselEdit: " (ssg-dbg-fn "C:KREISELEDIT")))
(dbgmsg (strcat "EckradEdit: " (ssg-dbg-fn "C:ECKRADEDIT")))
(dbgmsg (strcat "SSG_BLOCKEDIT: " (ssg-dbg-fn "C:SSG_BLOCKEDIT")))
(dbgmsg (strcat "OMNI_AP60: " (ssg-dbg-fn "C:OMNI_AP60")))
(dbgmsg (strcat "OMNI_APB_630_90: " (ssg-dbg-fn "C:OMNI_APB_630_90")))
(dbgmsg (strcat "OMNI_W90_Einfach: " (ssg-dbg-fn "C:OMNI_W90_EINFACH")))
(dbgflush)
(princ "\n[SSG_LIB] Startup abgeschlossen.")
)