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:
+63
-75
@@ -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
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user