[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:
+22
-20
@@ -17,25 +17,14 @@
|
||||
(if (null *ils-btmt-beladung-block*) (setq *ils-btmt-beladung-block* "BTMT-Beladung"))
|
||||
(if (null *ils-btmt-entladung-block*) (setq *ils-btmt-entladung-block* "SC_Entladung"))
|
||||
|
||||
;; Layer einer frisch eingefuegten Blockreferenz setzen: bevorzugt aus dem
|
||||
;; LAYER-Attribut des Blocks (gleiche Konvention wie omni:insert-dxf in
|
||||
;; OmniModulInsert.lsp und tefl-insert-element in TEFInsert.lsp), sonst aus der
|
||||
;; "eigenen" Ebene der Blockdefinition (ssg-ils-block-ebene). Liefert der Block
|
||||
;; beides nicht, bleibt die Referenz auf dem aktuellen Layer.
|
||||
;; Layer einer frisch eingefuegten Blockreferenz aus der Block-Vorgabe setzen.
|
||||
;; Die Logik liegt zentral als ssg-block-layer-vorgabe in ssg_core.lsp (dieselbe
|
||||
;; Konvention nutzen omni:insert-dxf in OmniModulInsert.lsp und
|
||||
;; tefl-insert-element in TEFInsert.lsp); hier bleibt nur der bisherige Name als
|
||||
;; duenner Wrapper stehen.
|
||||
;; Rueckgabe: gesetzter Layername oder nil.
|
||||
(defun ils-block-layer-setzen (ent realname attribs / lay)
|
||||
(setq lay (cdr (assoc "LAYER" attribs)))
|
||||
(if (or (null lay) (= lay ""))
|
||||
(setq lay (ssg-ils-block-ebene realname))
|
||||
)
|
||||
(if (and lay (/= lay ""))
|
||||
(progn
|
||||
(ssg-make-layer lay 7 nil)
|
||||
(entmod (subst (cons 8 lay) (assoc 8 (entget ent)) (entget ent)))
|
||||
(entupd ent)
|
||||
lay
|
||||
)
|
||||
)
|
||||
(defun ils-block-layer-setzen (ent realname attribs)
|
||||
(ssg-block-layer-vorgabe ent realname attribs)
|
||||
)
|
||||
|
||||
;; Fuegt eine ILS-Station (BTMT-Beladung/SC_Entladung) wiederholt ein, bis der
|
||||
@@ -125,7 +114,7 @@
|
||||
|
||||
;; Fuegt einen Sensor-Block wiederholt ein, bis der Benutzer mit
|
||||
;; ENTER oder ESC abbricht. Rotation je Einfuegung interaktiv.
|
||||
(defun ils-insert-sensor (fname / pfad pt oldattreq n res)
|
||||
(defun ils-insert-sensor (fname / pfad pt oldattreq n res ent realname)
|
||||
(setq pfad (ils-sensor-pfad fname))
|
||||
(if (null pfad)
|
||||
(princ (strcat "\n>>> FEHLER: Blockdatei '" fname ".dwg' nicht gefunden."
|
||||
@@ -145,6 +134,19 @@
|
||||
)
|
||||
(setq pt res)
|
||||
(command "_.INSERT" pfad pt "" "" pause)
|
||||
(setq ent (entlast))
|
||||
;; Layer aus der Block-Vorgabe setzen (LAYER-Attribut, sonst eigene
|
||||
;; Ebene der Blockdefinition) - wie bei ils-insert-station. Scanner und
|
||||
;; Separator_SP fuehren das LAYER-Attribut (ZZ_Scanner bzw. ILS_SEP-SP),
|
||||
;; es wurde hier bisher nur nicht ausgewertet.
|
||||
;; Blockname aus der Referenz selbst lesen: eingefuegt wird ueber den
|
||||
;; Dateipfad, der effektive Blockname haengt am 2D/3D-Fallback.
|
||||
(if (and ent (= (cdr (assoc 0 (entget ent))) "INSERT"))
|
||||
(progn
|
||||
(setq realname (cdr (assoc 2 (entget ent))))
|
||||
(ssg-block-layer-vorgabe ent realname nil)
|
||||
)
|
||||
)
|
||||
;; Sofort beim Einfuegen eine eindeutige ID vergeben - wie bei allen
|
||||
;; anderen Bau-Routinen (Kreisel/GF/VF/Omniflo, siehe ssg-id-generate-
|
||||
;; Aufrufe dort). Separator/Scanner waren bisher die einzige Ausnahme
|
||||
@@ -153,7 +155,7 @@
|
||||
;; das ist der Fall, den ssg-id-check-all als Sicherheitsnetz
|
||||
;; eigentlich nur fuer Kopier-/Array-/Spiegel-Faelle abfangen soll.
|
||||
(if (atoms-family 1 '("ssg-id-generate"))
|
||||
(ssg-id-generate (entlast)))
|
||||
(ssg-id-generate ent))
|
||||
(setq n (1+ n))
|
||||
)
|
||||
(setvar "ATTREQ" oldattreq)
|
||||
|
||||
Reference in New Issue
Block a user