[ADD] Layerdefinitionen und Farben durch layer.cfg für zusammengesetzte Blöcke wie Gefällestrecke oder Varioförderer werden beim Zusammenbau der Baugruppen in den Skripten verwendet; Ebenfalls als Fallback für Blöcke möglich, die kein Attribut LAYER besitzen.

This commit is contained in:
2026-09-04 09:01:12 +02:00
parent 02303ad7fc
commit 15ec6c0504
14 changed files with 603 additions and 61 deletions
+24 -2
View File
@@ -249,6 +249,9 @@
(setq block-obj
(vla-InsertBlock modelspace (vlax-3D-point '(0 0 0))
blockname scale 1.0 1.0 0))
;; Einzelteil auf die eigene Ebene der Blockdefinition legen - wie in den
;; Zwillingen in ssg_ks_insert.lsp; hier fehlte der Aufruf bisher.
(ssg-ils-block-auf-ebene block-obj blockname)
(vla-TransformBy block-obj (vlax-tmatrix (ssg-rot-matrix-zy chz shz cv sv)))
(vla-Move block-obj (vlax-3D-point '(0 0 0)) (vlax-3D-point pt))
(setq endpunkt
@@ -276,6 +279,9 @@
(setq block-obj
(vla-InsertBlock modelspace (vlax-3D-point '(0 0 0))
blockname 1.0 1.0 1.0 0))
;; Einzelteil auf die eigene Ebene der Blockdefinition legen - wie in den
;; Zwillingen in ssg_ks_insert.lsp; hier fehlte der Aufruf bisher.
(ssg-ils-block-auf-ebene block-obj blockname)
(vla-TransformBy block-obj (vlax-tmatrix (ssg-rot-matrix-zy chz shz cv sv)))
(vla-Move block-obj (vlax-3D-point '(0 0 0)) (vlax-3D-point pt))
(setq endpunkt
@@ -317,6 +323,9 @@
(setq block-obj
(vla-InsertBlock modelspace (vlax-3D-point '(0 0 0))
blockname 1.0 1.0 1.0 0))
;; Einzelteil auf die eigene Ebene der Blockdefinition legen - wie in den
;; Zwillingen in ssg_ks_insert.lsp; hier fehlte der Aufruf bisher.
(ssg-ils-block-auf-ebene block-obj blockname)
(vla-TransformBy block-obj (vlax-tmatrix
(list (list chz (- shz) 0 0)
(list shz chz 0 0)
@@ -1098,7 +1107,7 @@
;; Beschriftung: Mitte der ersten Geraden, 400mm senkrecht rechts versetzt.
(defun gf-make-label (gf-nummer hoehe-von hoehe-bis deltaH deltaL
L-gf-str winkel nach-aus-pt entry-hz L-first-seg /
label-txt label-pt chz-l shz-l halb basis-winkel)
label-txt label-pt chz-l shz-l halb basis-winkel lay)
(setq chz-l (cos (* entry-hz (/ pi 180.0))))
(setq shz-l (sin (* entry-hz (/ pi 180.0))))
(setq halb (/ (float L-first-seg) 2.0))
@@ -1121,6 +1130,16 @@
(while (>= basis-winkel 360.0) (setq basis-winkel (- basis-winkel 360.0)))
(if (>= basis-winkel 180.0) (setq basis-winkel (- basis-winkel 180.0)))
(setq basis-winkel (if (or (< basis-winkel 45.0) (>= basis-winkel 135.0)) 0.0 90.0))
;; Beschriftungs-Layer aus cfg/layer.cfg (Baugruppe "gf_beschriftung"), sonst
;; der bisherige Hartwert. Der Layer wird hier ANGELEGT - bisher schrieb das
;; entmake unten auf einen Layer, den niemand erzeugt hat.
(setq lay (ssg-layer-anlegen "gf_beschriftung" nil))
(if (null lay)
(progn
(setq lay "GF_Beschriftung")
(ssg-make-layer lay "7" nil)
)
)
(entmake
(list '(0 . "TEXT")
(cons 10 label-pt)
@@ -1128,7 +1147,7 @@
'(40 . 100.0)
(cons 1 label-txt)
'(7 . "Standard")
'(8 . "GF_Beschriftung")
(cons 8 lay)
(cons 50 (* basis-winkel (/ pi 180.0)))
'(72 . 1)
'(73 . 2)))
@@ -1196,6 +1215,9 @@
;; Attribute auf das eingefuegte INSERT-Objekt setzen (volle Werteliste;
;; nicht vorhandene Tags ignoriert ssg-attrib-set-on -> reduzierter Satz ok).
(setq gf-insert (entlast))
;; Ziel-Layer der Baugruppe aus cfg/layer.cfg (ohne Eintrag bleibt die
;; Referenz auf dem aktuellen Layer, wie vor der Umstellung).
(ssg-layer-setzen gf-insert "gefaellestrecke")
;; Kette wurde bei Z=0 gebaut; der OSMODE=0-Wrap loest den OCS-Skew der
;; gekippten Elemente sauber zur logischen Position (Z=0) auf. Den fertigen
;; GF_n-Block daher nur noch senkrecht auf die Zielhoehe heben (OSMODE=0,