只显示某种颜色的lisp(更新)
www.dimcax.com
只显示某种颜色的lisp(更新)
1,修正了by layer颜色的选择
2,增加了范围选项,以缩短程序响应时间
(defun c:ncl ()
(setvar "cmdecho" 1)
(princ "\n\nonly show selected color:")
(setq mm (assoc 62 (setq obj (entget (car (entsel))))))
(setq lay (cdr (assoc 8 obj)))
(if (= mm nil)
(cor1)(cor2));end if
)
(defun cor2()
(princ "\n\nselect color object area :")
(setq ss (ssget))
(setq i 0)
(setq mm1 (cdr mm))
(repeat (sslength ss)
(setq nn1 (cdr(assoc 62 (entget (ssname ss i)))))
(if (= mm1 nn1) (redraw (ssname ss i) 3)
(redraw (ssname ss i) 2)
)
(setq i (1+ i))
);end repeat
(princ)
)
(defun cor1()
(princ "\n\nselect color object area :")
(setq ss (ssget))
(setq i 0)
(setq ssx (ssadd))
(repeat (sslength ss)
(setq ob (ssname ss i))
(setq col (assoc'62 (entget ob)))
(setq lay1 (cdr(assoc'8 (entget ob))))
(if (and (= col nil)(= lay lay1)) (ssadd ob ssx)(princ))
(setq i (1+ i))
);end repeat
(setq i 0)
(repeat (sslength ssx)
(setq p (ssname ssx i))
(ssdel p ss)
(setq i (1+ i))
);end repeat
(setq i 0)
(repeat (sslength ss)
(redraw (ssname ss i) 2)
(setq i (1+ i))
);end repeat
(setq i 0)
(repeat (sslength ssx)
(redraw (ssname ssx i) 3)
(setq i (1+ i))
);end repeat
(princ)
)
3dlove
楼主真是慷慨啊
延伸参考:
什么好东西啊?
勤能补拙
该程序很好用,方便在绘图时对某种颜色的实体进行操作,谢谢楼主
2楼厉害啊,还有外国的网站资料,谢谢!
有朋自远方来,不亦乐乎!
谢谢楼主,学习了