dwg çizimi içinde önceden oluşturulmuş bir layer a atama yapmak için LAYCUR komutunu kullanıyorum.
Fakat bu komutun bana göre şöyle bir eksi yanı var.;
* Laycur kullandığımda ; layer ın rengi değiştirilmişse ( yani BYLAYER değilse..) Evet Aktif layer a getiriyor ama renk sabit kalıyor... Renk BYLAYER ise zaten çalışıyor...
Seçilen Objeyi Her iki durum da da Aktif layer a getiren bir lisp var mıdır?
Laycur komutu rengi bylayer değil ise o şekilde bırakıyor. Aslında doğru olan da bu. Ama senin istediğin daha farklı...
Bu isteğin ile ilgili bir lisp yazdım. Seçilen nesneler içinde rengi değiştirilmiş olan var ise, mevcut layer'ın rengi ile değiştirilir ve tüm nesnelerin layer'ı aktif layer olur.
Kod:
(defun c:LYC (/ sec aly renk tek data) (vl-load-com)
(if (setq sec (ssget ":L"))
(progn
(vla-startundomark (setq undo_fl (vla-get-activedocument (vlax-get-acad-object))))
(setq aly (getvar 'clayer) c -1 say (sslength sec))
(setq renk (cdr (assoc 62 (entget (tblobjname "LAYER" aly)))))
(while (< (setq c (1+ c)) say)
(setq tek (ssname sec c)
data (vlax-ename->vla-object tek))
(vla-put-layer data aly)
(vla-put-color data renk))
(vla-EndUndoMark undo_fl)
))(princ))