| 选图元改其所在图层的颜色,可为任意色。。。
 
 
  ;;;选图元改层色
(defun c:test  (/ en ent lay layent a c-num)
  (command "_.undo" "_begin")
  (setq en (car (entsel "\n选择要修改图层颜色的代表对象:")));_选择对象
  (setq ent (entget en));_对象图元表
  (setq lay (cdr (assoc 8 ent)));_获取对象图层名
  (setq layent (entget (tblobjname "LAYER" lay)));_获取图层图元表
  (if (setq a (assoc 340 layent)) ;_如果存在真彩色
    (setq layent (vl-remove a layent)) ;_删除真彩色表
  )
  (setq c_num(acad_colordlg 1 t))
  (setq layent (subst (cons 62 c_num) (assoc 62 layent) layent));_图层颜色改为目标色
  (entmod layent);_更新图层
  (entupd (cdr (assoc -1 layent)))
  (command "_.undo" "_end")
  (princ)
)
 |