[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
+31 -8
View File
@@ -194,7 +194,7 @@
)
;; Beschriftungstext erzeugen
(defun kreisel-make-label (nummer abstand kreiselart / textStr insertPoint radius mitteX mitteY textHoehe)
(defun kreisel-make-label (nummer abstand kreiselart / textStr insertPoint radius mitteX mitteY textHoehe lay)
;; Text: "KREISEL 1: PIN_4000"
(setq textStr (strcat "KREISEL " (itoa nummer) ": " kreiselart "_" (rtos abstand 2 0)))
@@ -216,13 +216,20 @@
;; Schriftart Arial einstellen
(kreisel-setup-textstyle)
;; Layer erstellen
(ssg-make-layer *kreisel-beschriftung-layer* (itoa *kreisel-beschriftung-farbe*) T)
;; Layer erstellen: bevorzugt aus cfg/layer.cfg (Baugruppe
;; "kreisel_beschriftung"), sonst der bisherige Hartwert.
(setq lay (ssg-layer-anlegen "kreisel_beschriftung" T))
(if (null lay)
(progn
(setq lay *kreisel-beschriftung-layer*)
(ssg-make-layer lay (itoa *kreisel-beschriftung-farbe*) T)
)
)
;; Text mit entmake erstellen (zentriert)
(entmake (list
'(0 . "TEXT")
(cons 8 *kreisel-beschriftung-layer*)
(cons 8 lay)
(cons 10 insertPoint)
(cons 40 textHoehe)
(cons 1 textStr)
@@ -423,8 +430,11 @@
;; SP8 Kreis (Spannstation) bei (radius+abstand, 0) - Dim-Suffix im Dateinamen
(command "_.INSERT" (strcat *block-path* "SP8_" *ki-dxfm-dim* ".dwg") (list (+ radius abstand) 0.0 0.0) 1 1 0)
;; Tangenten auf Layer S_LP
(ssg-make-layer "S_LP" "7" T)
;; Tangenten-Layer: bevorzugt aus cfg/layer.cfg (Baugruppe
;; "kreisel_tangente"), sonst der bisherige Hartwert S_LP.
(if (null (ssg-layer-anlegen "kreisel_tangente" T))
(ssg-make-layer "S_LP" "7" T)
)
(if is-pin
(setvar "CECOLOR" (itoa (ssg-cfg-or "kreisel" "color_linie_1" 5)))
(setvar "CECOLOR" (itoa (ssg-cfg-or "kreisel" "color_linie_2" 1)))
@@ -438,7 +448,11 @@
;; PIN-Linien
(if is-pin
(progn
(ssg-make-layer "pinbereich" (itoa (ssg-cfg-or "kreisel" "color_pin" 3)) T)
;; PIN-Layer: bevorzugt aus cfg/layer.cfg (Baugruppe
;; "kreisel_pinbereich"), sonst der bisherige Hartwert pinbereich.
(if (null (ssg-layer-anlegen "kreisel_pinbereich" T))
(ssg-make-layer "pinbereich" (itoa (ssg-cfg-or "kreisel" "color_pin" 3)) T)
)
(setvar "CECOLOR" (itoa (ssg-cfg-or "kreisel" "color_pin" 3)))
;; Obere PIN-Linie
@@ -489,6 +503,12 @@
;; --- Attribut-Werte durch direkte Datenbankänderung setzen ---
(setq block-ent (entlast))
;; Ziel-Layer der Baugruppe aus cfg/layer.cfg. Wichtig: der Wrapper hing
;; bisher am CLAYER-Seiteneffekt von ssg-make-layer (S_LP bzw. pinbereich)
;; und landete bei bereits vorhandener Blockdefinition auf dem aktiven Layer -
;; jetzt ist er in beiden Faellen gleich. Ohne cfg-Eintrag bleibt es beim
;; bisherigen Verhalten.
(ssg-layer-setzen block-ent (if is-pin "kreisel_pin" "kreisel"))
(setq att-entity (entnext block-ent))
(while att-entity
@@ -1269,6 +1289,9 @@
;; Attribut-Werte durch direkte Datenbankaenderung setzen
(setq block-ent (entlast))
;; Ziel-Layer der Baugruppe aus cfg/layer.cfg (der Eckrad-Zweig setzte bisher
;; gar keinen Layer, das ECKRAD_n landete also immer auf Layer "0").
(ssg-layer-setzen block-ent "eckrad")
(setq att-entity (entnext block-ent))
(dbgp "Setze Attribut-Werte:")
(while att-entity