[CHANGE] Verzeichnisse ILS 2d und 3d zusammengeführt und Funktionen entsprechend angepasst; TODO: Vario auf/ab Bögen schalten noch nicht korrekt zwischen 2d und 3d hin und her; TODO: Omniflo Verzeichnisse 2d/3d entsprechend genau so zusammenführen
This commit is contained in:
+30
-25
@@ -57,21 +57,21 @@
|
||||
(if (null *gf-L-ohne-as-es*) (setq *gf-L-ohne-as-es* nil))
|
||||
(if (null *gf-sum-dz-bogen*) (setq *gf-sum-dz-bogen* 0.0))
|
||||
|
||||
;; DXFM_DIM lesen; 2D wird auf 3D korrigiert (Gefaellestrecke benoetigt Z-Geometrie)
|
||||
(setq *gf-dxfm-dim* (getenv "DXFM_DIM"))
|
||||
(if (or (not (= (type *gf-dxfm-dim*) 'STR)) (= *gf-dxfm-dim* "2D"))
|
||||
(setq *gf-dxfm-dim* "3D"))
|
||||
;; Block-Pfad: data/ils/3D/ wenn DXFM_DIM nicht gesetzt oder 2D
|
||||
;; Bloecke liegen seit dem Flach-Refactor direkt unter data/ils/ (die Dimension
|
||||
;; steckt im Dateinamen bzw. Blocknamen als Suffix _2D/_3D, siehe ssg_core.lsp).
|
||||
;; Gefaellestrecke folgt der aktuellen Dimension (ssg-ils-dim-aktuell) mit
|
||||
;; 3D-Fallback; das Laden erfolgt zentral ueber ensure-block-loaded.
|
||||
;; block-pfad dient nur noch der Info-Ausgabe (Basisverzeichnis).
|
||||
(if (null block-pfad)
|
||||
(setq block-pfad
|
||||
(cond
|
||||
((and (getenv "DXFMAKRO") (= (type (getenv "DXFMAKRO")) 'STR))
|
||||
(strcat (vl-string-right-trim "/" (vl-string-translate "\\" "/" (getenv "DXFMAKRO")))
|
||||
"/data/ils/" *gf-dxfm-dim* "/"))
|
||||
"/data/ils/"))
|
||||
((and (boundp '*ssg-lisp-pfad*) (= (type *ssg-lisp-pfad*) 'STR)
|
||||
(vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||
(strcat (substr *ssg-lisp-pfad* 1 (vl-string-search "/Lisp" *ssg-lisp-pfad*))
|
||||
"/data/ils/" *gf-dxfm-dim* "/"))
|
||||
"/data/ils/"))
|
||||
(t nil)
|
||||
)
|
||||
)
|
||||
@@ -116,13 +116,18 @@
|
||||
;; --- Block als einzelne DWG-Datei aus block-pfad laden ---
|
||||
(if (null (car (atoms-family 1 '("ENSURE-BLOCK-LOADED"))))
|
||||
(defun ensure-block-loaded (blockname / )
|
||||
;; Zentraler Loader (aktuelle Dimension + 3D-Fallback, Neudefinition bei
|
||||
;; Dimensionswechsel). Meldung nur bei Fehlschlag.
|
||||
;; Zentraler Loader (flache Ablage). Laedt den Block in der AKTUELLEN Dimension
|
||||
;; (ssg-ils-dim-aktuell: *ssg-ils-dim*-Override -> DXFM_DIM) mit automatischem
|
||||
;; 3D-Fallback, sodass 2D- und 3D-Aufbau gleichermassen funktionieren. Laedt
|
||||
;; den Block unter seinem effektiven, dim-suffigierten Namen und GIBT DIESEN
|
||||
;; ZURUECK, damit Aufrufer ihn zum Einfuegen verwenden. Meldung nur bei
|
||||
;; Fehlschlag.
|
||||
(if (not (ssg-ils-block-laden blockname))
|
||||
(progn
|
||||
(princ (ssg-textf "gf-fehler-blockdatei-fehlt" (list blockname)))
|
||||
)
|
||||
)
|
||||
(ssg-ils-blockname blockname)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -239,7 +244,7 @@
|
||||
block-obj temp-obj ks-data ks-ein ks-aus
|
||||
rad-h chv shv ein-x ein-y ein-z dx-loc dy-loc dz-loc
|
||||
offset ausgang)
|
||||
(ensure-block-loaded blockname)
|
||||
(setq blockname (ensure-block-loaded blockname))
|
||||
(if (not (tblsearch "BLOCK" blockname))
|
||||
(progn
|
||||
(princ (ssg-textf "gf-fehler-block-fehlt" (list blockname)))
|
||||
@@ -302,7 +307,7 @@
|
||||
(if (<= laenge 0.1)
|
||||
(progn (princ (ssg-text "gf-laenge-null-uebersprungen")) startpunkt)
|
||||
(progn
|
||||
(ensure-block-loaded blockname)
|
||||
(setq blockname (ensure-block-loaded blockname))
|
||||
(setq scale (/ (float laenge) 1000.0))
|
||||
(setq rad-v (* (float winkel) (/ pi 180.0)))
|
||||
(setq rad-h (* (float hz) (/ pi 180.0)))
|
||||
@@ -343,7 +348,7 @@
|
||||
ks-ein-raw ks-aus-raw
|
||||
ein-x ein-y ein-z aus-x aus-y aus-z
|
||||
dx dz ins-pt)
|
||||
(ensure-block-loaded blockname)
|
||||
(setq blockname (ensure-block-loaded blockname))
|
||||
(setq rad-v (* (float winkel) (/ pi 180.0)))
|
||||
(setq rad-h (* (float hz) (/ pi 180.0)))
|
||||
(setq chv (cos rad-h) shv (sin rad-h) cvv (cos rad-v) svv (sin rad-v))
|
||||
@@ -440,18 +445,18 @@
|
||||
|
||||
;; --- Bibliothek initialisieren: AS/ES-Masse aus einzelnen DWG-Dateien extrahieren ---
|
||||
(if (null (car (atoms-family 1 '("GF-INIT-BIBLIOTHEK"))))
|
||||
(defun gf-init-bibliothek ( / temp-obj ks-data ks-ein ks-aus)
|
||||
(defun gf-init-bibliothek ( / temp-obj ks-data ks-ein ks-aus as-blk es-blk)
|
||||
(if *lib-initialized*
|
||||
t
|
||||
(progn
|
||||
;; AS-Block laden und Masse extrahieren
|
||||
(ensure-block-loaded "AS_Element_90_links")
|
||||
(if (tblsearch "BLOCK" "AS_Element_90_links")
|
||||
;; AS-Block laden und Masse extrahieren (effektiver, dim-suffigierter Name)
|
||||
(setq as-blk (ensure-block-loaded "AS_Element_90_links"))
|
||||
(if (tblsearch "BLOCK" as-blk)
|
||||
(progn
|
||||
(setq temp-obj
|
||||
(vla-InsertBlock modelspace
|
||||
(vlax-3D-point '(0 0 0))
|
||||
"AS_Element_90_links" 1.0 1.0 1.0 0))
|
||||
as-blk 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)))
|
||||
@@ -465,14 +470,14 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
;; ES-Block laden und Masse extrahieren
|
||||
(ensure-block-loaded "ES_Element_90_links")
|
||||
(if (tblsearch "BLOCK" "ES_Element_90_links")
|
||||
;; ES-Block laden und Masse extrahieren (effektiver, dim-suffigierter Name)
|
||||
(setq es-blk (ensure-block-loaded "ES_Element_90_links"))
|
||||
(if (tblsearch "BLOCK" es-blk)
|
||||
(progn
|
||||
(setq temp-obj
|
||||
(vla-InsertBlock modelspace
|
||||
(vlax-3D-point '(0 0 0))
|
||||
"ES_Element_90_links" 1.0 1.0 1.0 0))
|
||||
es-blk 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)))
|
||||
@@ -517,7 +522,7 @@
|
||||
(if (<= laenge 0.1)
|
||||
(progn (princ (ssg-text "gf-laenge-null-uebersprungen")) pt)
|
||||
(progn
|
||||
(ensure-block-loaded blockname)
|
||||
(setq blockname (ensure-block-loaded blockname))
|
||||
(setq scale (/ (float laenge) 1000.0))
|
||||
(setq chz (cos (* (float hz-grad) (/ pi 180.0))))
|
||||
(setq shz (sin (* (float hz-grad) (/ pi 180.0))))
|
||||
@@ -549,7 +554,7 @@
|
||||
;; dz: vertikaler Offset im Block (mm, 0 fuer gerade Bloecke)
|
||||
(defun gf-insert-hz-with-ks (blockname pt hz-grad vert-grad dx dz /
|
||||
chz shz cv sv block-obj endpunkt)
|
||||
(ensure-block-loaded blockname)
|
||||
(setq blockname (ensure-block-loaded blockname))
|
||||
(setq chz (cos (* (float hz-grad) (/ pi 180.0))))
|
||||
(setq shz (sin (* (float hz-grad) (/ pi 180.0))))
|
||||
(setq cv (cos (* (float vert-grad) (/ pi 180.0))))
|
||||
@@ -581,7 +586,7 @@
|
||||
temp-obj block-obj ks-data ks-ein ks-aus
|
||||
p-ein p-aus p-ein-rot p-aus-rot
|
||||
offset ausgang)
|
||||
(ensure-block-loaded blockname)
|
||||
(setq blockname (ensure-block-loaded blockname))
|
||||
(if (not (tblsearch "BLOCK" blockname))
|
||||
(progn
|
||||
(princ (ssg-textf "gf-fehler-block-fehlt-ausruf" (list blockname)))
|
||||
@@ -672,7 +677,7 @@
|
||||
blockname temp-obj ks-data
|
||||
ks-ein-pos ks-aus-pos dx dz)
|
||||
(setq blockname (gf-bogen-blockname bwinkel bseite))
|
||||
(ensure-block-loaded blockname)
|
||||
(setq blockname (ensure-block-loaded blockname))
|
||||
(if (not (tblsearch "BLOCK" blockname))
|
||||
(progn
|
||||
(princ (ssg-textf "gf-warnung-block-fehlt-nullwerte" (list blockname)))
|
||||
|
||||
Reference in New Issue
Block a user