本帖最后由 作者 于 2007-1-7 1:02:46 编辑
本人经常要处理大量来自各处的图块 颜色无法统一,不方便打印 之前在论坛找到一个LISP,但是无法处理块里面的, 麻烦那个仁兄有空帮忙加工下,小弟先谢了 以下是别人做的 (defun c:hs (/ cc ss n e lay clist kk) (setq clist (list 255)) (repeat 254 (setq clist (cons (1- (car clist)) clist)) ) (foreach cc clist (if (not kk) (princ (strcat "\n搜索物体中... 颜色 " (itoa cc))) (progn (repeat kk (princ "\010")) (princ (itoa cc)) ) ) (setq kk (strlen (itoa cc))) (setq ss (ssget "x" (list (cons 62 cc)))) (if ss (progn (setq kk nil) (setq n 0) (while (setq e (ssname ss n)) ;highlight the objects (redraw e 3) (setq n (1+ n)) ) ;while (setq lay (getstring (strcat "\n请为颜色为 " (itoa cc) " 的物体指定层名: ") ) ) (if (tblsearch "LAYER" lay) (command "chprop" ss "" "c" "bylayer" "layer" lay "") (progn (setq yn (getint "\n指定的层不存在. \n键入任意数字创建此层<跳过>: " ) ) (if yn (command "layer" "m" lay "c" cc "" "" "chprop" ss "" "c" "bylayer" "layer" lay "" ) ) ) ;progn ) ;if ) ) ;if ) ;foreach ) ;end |