feat: ILS-Bloecke ueber eindeutige 2D/3D-Namen laden + Auto-Layer
Zentrale Namensaufloesung (ssg-ils-datei-und-name, dual-schema: neu data/ils/<name>_<dim>.dwg mit eindeutigem In-Zeichnungs-Namen, alt Unterordner als Fallback). ensure-block-loaded liefert den aufgeloesten Namen; die insert-Helfer weisen blockname neu zu und setzen die INSERT-Referenz automatisch auf die eigene Ebene des Blocks (ssg-ils-block-auf-ebene, legt sie bei Bedarf an). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+14
-14
@@ -115,13 +115,13 @@
|
||||
|
||||
;; --- 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.
|
||||
(if (not (ssg-ils-block-laden blockname))
|
||||
(progn
|
||||
(princ (ssg-textf "gf-fehler-blockdatei-fehlt" (list blockname)))
|
||||
)
|
||||
(defun ensure-block-loaded (blockname / real)
|
||||
;; Zentraler Loader; liefert den IN-ZEICHNUNGS-NAMEN zurueck (2D/3D
|
||||
;; eindeutig) oder nil bei Fehlschlag.
|
||||
(setq real (ssg-ils-block-laden blockname))
|
||||
(if (null real)
|
||||
(progn (princ (ssg-textf "gf-fehler-blockdatei-fehlt" (list blockname))) nil)
|
||||
real
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -239,7 +239,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 +302,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 +343,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))
|
||||
@@ -517,7 +517,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 +549,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 +581,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 +672,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