Pyrx Startup skripte und python Element entfernt, da Schwierigkeiten mit Kompabilitäten

This commit is contained in:
2026-06-10 16:58:12 +02:00
parent 1bda736606
commit 22a358554d
9 changed files with 16 additions and 2236 deletions
+16 -130
View File
@@ -23,106 +23,6 @@
(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)
)
;; ------------------------------------------------------------
;; SSG-LIB-LOAD-PYRX - PyRx BRX laden und Python-Module via PYLOAD starten
;; Aufruf: (ssg-lib-load-pyrx menu-pfad)
;; Deaktiviert wegen PyRx/BricsCAD V25.3 Inkompatibilitaet (cad-pyrx 2.2.58.5504)
;; Reaktivieren sobald kompatible Version verfuegbar ist.
;; ------------------------------------------------------------
(defun ssg-lib-load-pyrx (menu-pfad / acadver-str ver-punkt ver-major pyrx-pfad brx-datei brx-result)
;; BricsCAD-Version ermitteln
(setq acadver-str (getvar "ACADVER"))
(setq ver-punkt (vl-string-search "." acadver-str))
(setq ver-major (if ver-punkt (substr acadver-str 1 ver-punkt) "25"))
;; Pyrx-Pfad: .venv (primaer), dann System/User Python
(setq pyrx-pfad
(cond
((findfile (strcat menu-pfad "/.venv/Lib/site-packages/pyrx/RxLoaderV" ver-major ".0.brx"))
(strcat menu-pfad "/.venv/Lib/site-packages/pyrx"))
((and (getenv "PYTHONHOME")
(findfile (strcat (getenv "PYTHONHOME") "/Lib/site-packages/pyrx/RxLoaderV" ver-major ".0.brx")))
(strcat (getenv "PYTHONHOME") "/Lib/site-packages/pyrx"))
((and (getenv "APPDATA")
(findfile (strcat (getenv "APPDATA") "/Python/Python312/site-packages/pyrx/RxLoaderV" ver-major ".0.brx")))
(strcat (getenv "APPDATA") "/Python/Python312/site-packages/pyrx"))
((and (getenv "LOCALAPPDATA")
(findfile (strcat (getenv "LOCALAPPDATA") "/Programs/Python/Python312/Lib/site-packages/pyrx/RxLoaderV" ver-major ".0.brx")))
(strcat (getenv "LOCALAPPDATA") "/Programs/Python/Python312/Lib/site-packages/pyrx"))
(t nil)
)
)
;; BRX laden wenn PyRx noch nicht via Startup-Suite aktiv
(if (not (member (strcat "rxloaderv" ver-major ".0.brx") (arx)))
(if pyrx-pfad
(progn
(setq brx-datei (strcat pyrx-pfad "/RxLoaderV" ver-major ".0.brx"))
(setq brx-result (vl-catch-all-apply 'arxload (list brx-datei)))
(ssg-dbg-pyrx pyrx-pfad ver-major brx-datei brx-result)
(if (vl-catch-all-error-p brx-result)
(progn
(princ (strcat "\n[SSG_LIB] FEHLER: RxLoaderV" ver-major ".0.brx nicht geladen: "
(vl-catch-all-error-message brx-result)))
(princ "\n[SSG_LIB] HINWEIS: PyRx einmalig via APPLOAD -> Startup Suite einrichten.")
)
(princ (strcat "\n[SSG_LIB] PyRx RxLoader geladen (V" ver-major "): " brx-datei))
)
)
(princ (strcat "\n[SSG_LIB] WARNUNG: RxLoaderV" ver-major ".0.brx nicht gefunden."
"\n PYTHONHOME=" (if (getenv "PYTHONHOME") (getenv "PYTHONHOME") "nicht gesetzt")))
)
(progn
(dbgmsg "[PyRx] PyRx bereits via Startup-Suite aktiv")
(princ (strcat "\n[SSG_LIB] PyRx (V" ver-major ") via Startup-Suite aktiv."))
)
)
;; Python-Module laden - nur wenn PYLOAD verfuegbar
(dbgmsg "[PYLOAD] --- Python-Module ---")
(if (not (member "PYLOAD" (atoms-family 0)))
(progn
(dbgmsg "[PYLOAD] PYLOAD nicht verfuegbar - ueberspringe alle Module")
(princ "\n[SSG_LIB] WARNUNG: PYLOAD nicht verfuegbar (PyRx nicht geladen).")
(princ "\n[SSG_LIB] Python-Befehle (KreiselInsert etc.) nicht aktiv.")
)
(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."))
)
(progn
(dbgmsg (strcat "PYLOAD skip: " pymod ".py -- nicht gefunden"))
(princ (strcat "\n[SSG_LIB] HINWEIS: " pymod ".py nicht gefunden."))
)
)
)
)
(dbgflush)
)
;; ------------------------------------------------------------
;; SSG-LIB-REGISTER-CHECK - Verfuegbarkeit aller Befehle ins Debug-Log schreiben
;; ------------------------------------------------------------
@@ -137,19 +37,16 @@
(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")))
(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
acadver-str ver-punkt ver-major lsp-fb-pfad)
(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"))
@@ -213,28 +110,17 @@
;; DBLCLKEDIT deaktivieren (Block-Editor nicht bei Doppelklick oeffnen)
(setvar "DBLCLKEDIT" 0)
;; (ssg-lib-load-pyrx menu-pfad) ;; deaktiviert - PyRx/BricsCAD V25.3 Inkompatibilitaet
;; Fallback: LSP-Routinen laden wenn PyRx nicht aktiv
(setq acadver-str (getvar "ACADVER"))
(setq ver-punkt (vl-string-search "." acadver-str))
(setq ver-major (if ver-punkt (substr acadver-str 1 ver-punkt) "25"))
(if (not (member (strcat "rxloaderv" ver-major ".0.brx") (arx)))
(progn
(dbgmsg "[FALLBACK] PyRx nicht aktiv - lade LSP-Fallbacks")
(foreach lsp-fb (list "KreiselInsert" "OmniModulInsert")
(setq lsp-fb-pfad (strcat lisp-pfad "/" lsp-fb ".lsp"))
(if (findfile lsp-fb-pfad)
(progn
(ssg-lib-safe-load lsp-fb-pfad)
(dbgmsg (strcat "[FALLBACK] geladen: " lsp-fb ".lsp"))
(princ (strcat "\n[SSG_LIB] Fallback geladen: " lsp-fb ".lsp"))
)
(dbgmsg (strcat "[FALLBACK] nicht gefunden: " lsp-fb ".lsp"))
)
;; LSP-Erweiterungen laden (KreiselInsert, OmniModulInsert)
(foreach lsp-fb (list "KreiselInsert" "OmniModulInsert")
(setq lsp-fb-pfad (strcat lisp-pfad "/" lsp-fb ".lsp"))
(if (findfile lsp-fb-pfad)
(progn
(ssg-lib-safe-load lsp-fb-pfad)
(dbgmsg (strcat "[LOAD] geladen: " lsp-fb ".lsp"))
(princ (strcat "\n[SSG_LIB] Geladen: " lsp-fb ".lsp"))
)
(dbgmsg (strcat "[LOAD] nicht gefunden: " lsp-fb ".lsp"))
)
(dbgmsg "[FALLBACK] PyRx aktiv - kein LSP-Fallback noetig")
)
(dbgflush)