Startup-Alert bei VarioFoerderer entfernt. Alle verwendete Blöcke in VarioFoerderer.lsp und Gefaellestrecke.lsp sind aus data/ils/3D/ - DXFM_BLOCKS.

This commit is contained in:
2026-06-25 14:30:03 +02:00
parent b0aeb04022
commit db0d9abb7a
8 changed files with 214 additions and 153 deletions
+16 -3
View File
@@ -3,7 +3,20 @@
;; Laedt vf_core.lsp (Plugin-Dispatcher-Architektur)
;; c:ETAGEVARIOFOERDERER ist in vf_core.lsp als Alias definiert.
;; ============================================================
(if (getenv "DXFM_LISP")
(load (strcat (getenv "DXFM_LISP") "/vf_core.lsp"))
(alert "DXFM_LISP nicht gesetzt! Bitte zuerst bin\\setenv.bat ausfuehren.")
;; vf_core.lsp laden: 1) DXFM_LISP, 2) *ssg-lisp-pfad* (vom MNL gesetzt), 3) findfile
(setq *vf-core-datei*
(cond
((getenv "DXFM_LISP")
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_LISP")) "/vf_core.lsp"))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*
(findfile (strcat *ssg-lisp-pfad* "/vf_core.lsp")))
(strcat *ssg-lisp-pfad* "/vf_core.lsp"))
((findfile "vf_core.lsp")
(findfile "vf_core.lsp"))
(t nil)
)
)
(if *vf-core-datei*
(load *vf-core-datei*)
(princ "\n[EtageVarioFoerderer] WARNUNG: vf_core.lsp nicht gefunden - Befehle nicht verfuegbar.")
)
+63 -75
View File
@@ -9,7 +9,7 @@
;; Vor jedem Bogen wird automatisch ein Separator eingefuegt.
;; Gefaellewinkel wird aus deltaH und Geometrie berechnet.
;;
;; Verfuegbare Gefaellebogen-Bloecke (aus ils_library.dxf):
;; Verfuegbare Gefaellebogen-Bloecke (aus data/ils/3D/ als einzelne DWG):
;; Gefaellebogen_links_30(Grad)_R500 (30 Grad Linkskurve)
;; Gefaellebogen_links_60(Grad)_R500 (60 Grad Linkskurve)
;; Gefaellebogen_links_90(Grad)_R500 (90 Grad Linkskurve)
@@ -47,6 +47,21 @@
(if (null *ein-ks-ein-local*) (setq *ein-ks-ein-local* nil))
(if (null *lib-initialized*) (setq *lib-initialized* nil))
;; Block-Pfad: DXFM_BLOCKS → Heuristik (3D-Bloecke benoetigt)
(if (null block-pfad)
(setq block-pfad
(cond
((getenv "DXFM_BLOCKS")
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_BLOCKS")) "/"))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
"/data/ils/3D/"))
(t nil)
)
)
)
;; ============================================================
;; TEIL 2: KERN-FUNKTIONEN (Guard: nicht doppelt definieren)
;; ============================================================
@@ -83,32 +98,23 @@
(- (caddr p2) (caddr p1))))
)
;; --- Block aus ils_library.dxf laden ---
;; --- Block als einzelne DWG-Datei aus block-pfad laden ---
(if (null (car (atoms-family 1 '("ENSURE-BLOCK-LOADED"))))
(defun ensure-block-loaded (blockname / lib-datei temp-obj)
(defun ensure-block-loaded (blockname / block-datei temp-obj)
(if (not (tblsearch "BLOCK" blockname))
(progn
(if (not *gf-lib-geladen*)
(setq block-datei (strcat block-pfad blockname ".dwg"))
(if (findfile block-datei)
(progn
(setq lib-datei
(strcat (vl-string-translate "\\" "/"
(getenv "DXFM_DATA"))
"/block_libraries/ils_library.dxf"))
(if (findfile lib-datei)
(progn
(princ "\n Lade ils_library.dxf ...")
(setq temp-obj
(vla-InsertBlock modelspace
(vlax-3D-point '(0 0 0))
lib-datei 1.0 1.0 1.0 0))
(vla-Delete temp-obj)
(setq *gf-lib-geladen* t)
(princ " OK")
)
(princ (strcat "\n WARNUNG: Bibliothek nicht gefunden: "
lib-datei))
)
(princ (strcat "\n Lade Block: " blockname " ..."))
(setq temp-obj
(vla-InsertBlock modelspace
(vlax-3D-point '(0 0 0))
block-datei 1.0 1.0 1.0 0))
(vla-Delete temp-obj)
(princ " OK")
)
(princ (strcat "\n FEHLER: Block-Datei nicht gefunden: " block-datei))
)
)
)
@@ -345,73 +351,55 @@
)
)
;; --- Bibliothek initialisieren (auch AS/ES-Massen wenn moeglich) ---
;; --- Bibliothek initialisieren: AS/ES-Masse aus einzelnen DWG-Dateien extrahieren ---
(if (null (car (atoms-family 1 '("INIT-BIBLIOTHEK"))))
(defun init-bibliothek ( / lib-datei temp-obj ks-data ks-ein ks-aus)
(defun init-bibliothek ( / temp-obj ks-data ks-ein ks-aus)
(if *lib-initialized*
t
(progn
(setq lib-datei
(strcat (vl-string-translate "\\" "/"
(getenv "DXFM_DATA"))
"/block_libraries/ils_library.dxf"))
(if (findfile lib-datei)
;; AS-Block laden und Masse extrahieren
(ensure-block-loaded "_3D_AS_90_links")
(if (tblsearch "BLOCK" "_3D_AS_90_links")
(progn
(princ "\n Lade ils_library.dxf ...")
(setq temp-obj
(vla-InsertBlock modelspace
(vlax-3D-point '(0 0 0))
lib-datei 1.0 1.0 1.0 0))
"_3D_AS_90_links" 1.0 1.0 1.0 0))
(setq ks-data (extract-ks-from-block temp-obj))
(vla-Delete temp-obj)
(setq *lib-initialized* t)
(setq *gf-lib-geladen* t)
(princ " OK")
;; AS/ES-Masse extrahieren falls Block vorhanden
(if (tblsearch "BLOCK" "_3D_AS_90_links")
(setq ks-ein (cadr (assoc "KS_EIN" ks-data)))
(setq ks-aus (cadr (assoc "KS_AUS" ks-data)))
(if (and ks-ein ks-aus)
(progn
(setq temp-obj
(vla-InsertBlock modelspace
(vlax-3D-point '(0 0 0))
"_3D_AS_90_links" 1.0 1.0 1.0 0))
(setq ks-data (extract-ks-from-block temp-obj))
(vla-Delete temp-obj)
(setq ks-ein (cadr (assoc "KS_EIN" ks-data)))
(setq ks-aus (cadr (assoc "KS_AUS" ks-data)))
(if (and ks-ein ks-aus)
(progn
(setq aus-dx (- (caar ks-aus) (caar ks-ein)))
;; Lokale KS_EIN-Position speichern (Ursprungsrelativ, Block bei (0,0,0))
(setq *aus-ks-ein-local* (car ks-ein))
)
)
(setq aus-dx (- (caar ks-aus) (caar ks-ein)))
(setq *aus-ks-ein-local* (car ks-ein))
)
)
(if (tblsearch "BLOCK" "_3D_ES_90_links")
(progn
(setq temp-obj
(vla-InsertBlock modelspace
(vlax-3D-point '(0 0 0))
"_3D_ES_90_links" 1.0 1.0 1.0 0))
(setq ks-data (extract-ks-from-block temp-obj))
(vla-Delete temp-obj)
(setq ks-ein (cadr (assoc "KS_EIN" ks-data)))
(setq ks-aus (cadr (assoc "KS_AUS" ks-data)))
(if (and ks-ein ks-aus)
(progn
(setq ein-dx (- (caar ks-aus) (caar ks-ein)))
;; Lokale KS_EIN-Position speichern
(setq *ein-ks-ein-local* (car ks-ein))
)
)
)
)
t
)
(progn
(princ (strcat "\n FEHLER: " lib-datei " nicht gefunden!"))
nil
)
)
;; ES-Block laden und Masse extrahieren
(ensure-block-loaded "_3D_ES_90_links")
(if (tblsearch "BLOCK" "_3D_ES_90_links")
(progn
(setq temp-obj
(vla-InsertBlock modelspace
(vlax-3D-point '(0 0 0))
"_3D_ES_90_links" 1.0 1.0 1.0 0))
(setq ks-data (extract-ks-from-block temp-obj))
(vla-Delete temp-obj)
(setq ks-ein (cadr (assoc "KS_EIN" ks-data)))
(setq ks-aus (cadr (assoc "KS_AUS" ks-data)))
(if (and ks-ein ks-aus)
(progn
(setq ein-dx (- (caar ks-aus) (caar ks-ein)))
(setq *ein-ks-ein-local* (car ks-ein))
)
)
)
)
(setq *lib-initialized* t)
(setq *gf-lib-geladen* t)
t
)
)
)
+13 -10
View File
@@ -16,19 +16,22 @@
(setq #Eckrad_LetzteNr 0)
)
;; Block-Pfad (gesetzt durch bin/setenv.bat -> DXFM_BLOCKS = data\ils\2D)
(setq block-pfad (getenv "DXFM_BLOCKS"))
(if (or (null block-pfad) (= block-pfad ""))
(progn
(alert "DXFM_BLOCKS nicht gesetzt!\nBitte zuerst bin\\setenv.bat ausfuehren.")
(exit)
;; Block-Pfad immer data/ils/2D/ (Kreisel/Eckrad Bloecke nur 2D vorhanden)
(setq block-pfad
(cond
((getenv "DXFM_DATA")
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_DATA")) "/ils/2D/"))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
"/data/ils/2D/"))
(t
(princ "\n[KreiselInsert] WARNUNG: Block-Pfad nicht ermittelbar!")
nil)
)
(setq block-pfad (strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" block-pfad)) "/"))
)
(setq *block-path* block-pfad)
(princ (strcat "\nBlock-Pfad: " block-pfad))
(if block-pfad (princ (strcat "\nBlock-Pfad: " block-pfad)))
;; ssg_core laden falls noch nicht geschehen (Schutz bei direktem Laden ohne ssg-ensure)
(if (null (car (atoms-family 1 '("SSG-CFG-OR"))))
+16 -3
View File
@@ -2,7 +2,20 @@
;; VarioFoerderer.lsp — Kompatiblitaets-Wrapper
;; Laedt vf_core.lsp (Plugin-Dispatcher-Architektur)
;; ============================================================
(if (getenv "DXFM_LISP")
(load (strcat (getenv "DXFM_LISP") "/vf_core.lsp"))
(alert "DXFM_LISP nicht gesetzt! Bitte zuerst bin\\setenv.bat ausfuehren.")
;; vf_core.lsp laden: 1) DXFM_LISP, 2) *ssg-lisp-pfad* (vom MNL gesetzt), 3) findfile
(setq *vf-core-datei*
(cond
((getenv "DXFM_LISP")
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_LISP")) "/vf_core.lsp"))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*
(findfile (strcat *ssg-lisp-pfad* "/vf_core.lsp")))
(strcat *ssg-lisp-pfad* "/vf_core.lsp"))
((findfile "vf_core.lsp")
(findfile "vf_core.lsp"))
(t nil)
)
)
(if *vf-core-datei*
(load *vf-core-datei*)
(princ "\n[VarioFoerderer] WARNUNG: vf_core.lsp nicht gefunden - Befehle nicht verfuegbar.")
)
+62 -52
View File
@@ -11,24 +11,44 @@
;; ============================================================
;; TEIL 1: ABHAENGIGKEITEN
;; ============================================================
(if (getenv "DXFM_BLOCKS")
(setq modul-pfad (strcat (getenv "DXFM_BLOCKS") "/"))
(progn
(alert "Umgebungsvariable DXFM_BLOCKS nicht gesetzt!\nBitte zuerst bin\\setenv.bat ausfuehren.")
(exit)
;; Block-Pfad: 1) DXFM_BLOCKS, 2) aus *ssg-lisp-pfad* ableiten
(setq modul-pfad
(cond
((getenv "DXFM_BLOCKS")
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_BLOCKS")) "/"))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
"/data/ils/"
(if (getenv "DXFM_DIM") (getenv "DXFM_DIM") "2D")
"/"))
(t
(princ "\n[vf_core] WARNUNG: DXFM_BLOCKS nicht gesetzt - Block-Pfad unbekannt!")
nil)
)
)
(setq block-pfad modul-pfad)
;; ssg_core laden falls noch nicht geschehen: 1) DXFM_LISP, 2) *ssg-lisp-pfad*
(if (not *ssg-core-loaded*)
(if (getenv "DXFM_LISP")
(progn
(load (strcat (getenv "DXFM_LISP") "/ssg_core.lsp"))
(ssg-load-config)
(setq *ssg-core-loaded* t)
(progn
(setq *vf-core-lisp-pfad*
(cond
((getenv "DXFM_LISP")
(vl-string-translate "\\" "/" (getenv "DXFM_LISP")))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*)
*ssg-lisp-pfad*)
(t nil)
)
)
(if *vf-core-lisp-pfad*
(progn
(load (strcat *vf-core-lisp-pfad* "/ssg_core.lsp"))
(ssg-load-config)
(setq *ssg-core-loaded* t)
)
(princ "\n[vf_core] WARNUNG: DXFM_LISP nicht gesetzt - ssg_core konnte nicht geladen werden!")
)
(alert "DXFM_LISP nicht gesetzt! Bitte zuerst bin\\setenv.bat ausfuehren.")
)
)
@@ -136,42 +156,20 @@
;; ============================================================
;; TEIL 5: KS_EIN/KS_AUS EXTRAKTION
;; ============================================================
(defun ensure-block-loaded (blockname / lib-datei block-datei temp-obj)
(defun ensure-block-loaded (blockname / block-datei temp-obj)
(if (not (tblsearch "BLOCK" blockname))
(progn
(if *library-loaded* (setq *library-loaded* nil))
(if (not *library-loaded*)
(setq block-datei (strcat block-pfad blockname ".dwg"))
(if (findfile block-datei)
(progn
(setq lib-datei
(strcat (vl-string-translate "\\" "/" (getenv "DXFM_DATA"))
"/block_libraries/ils_library.dxf"))
(if (findfile lib-datei)
(progn
(princ "\n Lade ils_library.dxf ...")
(setq temp-obj (vla-InsertBlock modelspace
(vlax-3D-point '(0 0 0))
lib-datei 1.0 1.0 1.0 0))
(vla-Delete temp-obj)
(setq *library-loaded* T)
(princ " OK")
)
(princ (strcat "\n WARNUNG: Bibliothek nicht gefunden: " lib-datei))
)
)
)
(if (not (tblsearch "BLOCK" blockname))
(progn
(setq block-datei (strcat block-pfad blockname ".dxf"))
(if (findfile block-datei)
(progn
(setq temp-obj (vla-InsertBlock modelspace
(vlax-3D-point '(0 0 0))
block-datei 1.0 1.0 1.0 0))
(vla-Delete temp-obj)
)
(princ (strcat "\n FEHLER: Block nicht gefunden: " blockname))
)
(princ (strcat "\n Lade Block: " blockname " ..."))
(setq temp-obj (vla-InsertBlock modelspace
(vlax-3D-point '(0 0 0))
block-datei 1.0 1.0 1.0 0))
(vla-Delete temp-obj)
(princ " OK")
)
(princ (strcat "\n FEHLER: Block-Datei nicht gefunden: " block-datei))
)
)
)
@@ -652,13 +650,25 @@
;; ============================================================
;; Guard: Untermodule nur beim ersten Laden von vf_core.lsp ausfuehren.
(if (not *ssg-vf-submodule-loaded*)
(if (getenv "DXFM_LISP")
(progn
(load (strcat (getenv "DXFM_LISP") "/vf_standard.lsp"))
(load (strcat (getenv "DXFM_LISP") "/vf_etage.lsp"))
(setq *ssg-vf-submodule-loaded* t)
(progn
;; Lisp-Pfad ermitteln: 1) DXFM_LISP, 2) *ssg-lisp-pfad* (vom MNL gesetzt)
(setq *vf-lisp-pfad*
(cond
((getenv "DXFM_LISP")
(vl-string-translate "\\" "/" (getenv "DXFM_LISP")))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*)
*ssg-lisp-pfad*)
(t nil)
)
)
(if *vf-lisp-pfad*
(progn
(load (strcat *vf-lisp-pfad* "/vf_standard.lsp"))
(load (strcat *vf-lisp-pfad* "/vf_etage.lsp"))
(setq *ssg-vf-submodule-loaded* t)
)
(princ "\n[vf_core] WARNUNG: DXFM_LISP nicht gesetzt - Untermodule konnten nicht geladen werden!")
)
(alert "DXFM_LISP nicht gesetzt - Untermodule konnten nicht geladen werden!")
)
)
@@ -867,9 +877,9 @@
;; ============================================================
;; START & ALIASES
;; ============================================================
(defun c:FOERDERANLAGE () (c:VarioFoerderer))
(defun c:Foerderanlage () (c:VarioFoerderer))
(defun c:ETAGEVARIOFOERDERER ()
(defun c:EtageVarioFoerderer ()
(setq *vf-vorauswahl-typ* "etage")
(c:VarioFoerderer)
)
+16 -5
View File
@@ -8,11 +8,22 @@
;; Sicherstellen, dass vf_core.lsp geladen ist
(if (not (car (atoms-family 1 '("VF-TYP-REGISTRIEREN"))))
(if (getenv "DXFM_LISP")
(load (strcat (getenv "DXFM_LISP") "/vf_core.lsp"))
(progn
(alert "DXFM_LISP nicht gesetzt! Bitte zuerst bin\\setenv.bat ausfuehren.")
(exit)
(progn
(setq *vf-etage-core-pfad*
(cond
((getenv "DXFM_LISP")
(vl-string-translate "\\" "/" (getenv "DXFM_LISP")))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*)
*ssg-lisp-pfad*)
(t nil)
)
)
(if *vf-etage-core-pfad*
(load (strcat *vf-etage-core-pfad* "/vf_core.lsp"))
(progn
(princ "\n[vf_etage] WARNUNG: Lisp-Pfad nicht ermittelbar - vf_core.lsp nicht ladbar!")
(exit)
)
)
)
)
+16 -5
View File
@@ -8,11 +8,22 @@
;; Sicherstellen, dass vf_core.lsp geladen ist
(if (not (car (atoms-family 1 '("VF-TYP-REGISTRIEREN"))))
(if (getenv "DXFM_LISP")
(load (strcat (getenv "DXFM_LISP") "/vf_core.lsp"))
(progn
(alert "DXFM_LISP nicht gesetzt! Bitte zuerst bin\\setenv.bat ausfuehren.")
(exit)
(progn
(setq *vf-std-core-pfad*
(cond
((getenv "DXFM_LISP")
(vl-string-translate "\\" "/" (getenv "DXFM_LISP")))
((and (boundp '*ssg-lisp-pfad*) *ssg-lisp-pfad*)
*ssg-lisp-pfad*)
(t nil)
)
)
(if *vf-std-core-pfad*
(load (strcat *vf-std-core-pfad* "/vf_core.lsp"))
(progn
(princ "\n[vf_standard] WARNUNG: Lisp-Pfad nicht ermittelbar - vf_core.lsp nicht ladbar!")
(exit)
)
)
)
)
+12
View File
@@ -69,6 +69,18 @@ if not exist "%DXFM_TESTDATA%" mkdir "%DXFM_TESTDATA%"
if not exist "%DXFM_TESTOUT%" mkdir "%DXFM_TESTOUT%"
if not exist "%DXFM_TESTREF%" mkdir "%DXFM_TESTREF%"
REM Variablen dauerhaft fuer diesen Benutzer setzen (einmalig noetig)
echo Setze Umgebungsvariablen dauerhaft (setx)...
setx DXFMAKRO "%DXFMAKRO%"
setx DXFM_LISP "%DXFM_LISP%"
setx DXFM_DATA "%DXFM_DATA%"
setx DXFM_DCL "%DXFM_DCL%"
setx DXFM_CFG "%DXFM_CFG%"
setx DXFM_LOG "%DXFM_LOG%"
setx DXFM_DIM "%DXFM_DIM%"
setx DXFM_BLOCKS "%DXFM_BLOCKS%"
echo Dauerhaft gesetzt. Gilt fuer alle neuen Prozesse (nicht aktuelles Fenster).
REM Umgebungsvariablen anzeigen
echo.
echo ================================================================