Code:
(defun c:ChangeLayerColor (/ Sel EntList DataList cnt Num ClrNum EntData)
(if (setq Sel (nentsel "\n Select object to change layers color: "))
(progn
(if (> (length Sel) 2)
(setq EntList (cons (car Sel) (last Sel)))
(setq EntList (cons (car Sel) EntList))
)
(setq DataList
(mapcar
'(lambda (x / EntData)
(setq EntData (entget x))
(cons (cdr (assoc 0 EntData)) (cdr (assoc 8 EntData)))
)
EntList
)
)
(setq cnt 0)
(textscr)
(prompt "\n Select number of layer to change color: ")
(foreach lst DataList
(prompt (strcat "\n " (itoa cnt) " - " (cdr lst) " - Object [ " (car lst) " ]"))
(setq cnt (1+ cnt))
)
(while
(and
(not (setq Num (getint (strcat "\n Select number between 0 - " (itoa (1- cnt)) ": "))))
(not (< 0 Num (1- cnt)))
)
)
(graphscr)
(if (and Num (setq ClrNum (acad_colordlg 0)))
(progn
(setq EntData (entget (tblobjname "Layer" (cdr (nth Num DataList)))))
(entmod
(subst
(cons 62 ClrNum)
(assoc 62 EntData)
EntData
)
)
(command "_.Regen")
)
)
)
)
(princ)
)