lisp如何判定文件使用了真彩色(对象或图层)
哪位大侠能写个判定文件使用了真彩色(包括图层颜色和对象颜色),或者判定文件中有255,255,255这个颜色。好多图都是因为文件对象或图层设置成了这个色而打印不出来,又不容易发现本帖最后由 tryhi 于 2020-6-30 00:05 编辑
(setq bl420 nil)
(vlax-for obj (vla-get-Layers (setq *DOCS*(vla-get-ActiveDocument (vlax-get-acad-object))))
(if (assoc 420(entget(vlax-vla-object->ename obj)))(setq lay420 T))
)
(if lay420
(princ "\n存在图层使用真色彩")
(princ "\n所有图层均使用索引色彩")
)
(setq bl420 nil)
(vlax-for block (vla-get-blocks *DOCS*)
(vlax-for obj block
(if (assoc 420(entget(vlax-vla-object->ename obj)))(setq bl420 T))
)
)
(if bl420
(princ"\n存在块或者图元使用真色彩")
(princ"\n所有元素均未使用真色彩")
)
(princ)
谢谢tryhi,留个联系Qq,还想咨询点问题呢 如果有图层或对象或块使用255,255,255这个真彩色能自动改成7号索引色的程序吗,谢谢,能实现的话告诉我怎么赠币感谢哈 本帖最后由 llsheng_73 于 2020-6-30 17:14 编辑
sctw 发表于 2020-6-30 15:37
如果有图层或对象或块使用255,255,255这个真彩色能自动改成7号索引色的程序吗,谢谢,能实现的话告诉我怎么 ...
(defun c:tt(/ *DOCS* e)
(vl-load-com)
(vlax-for e(vla-get-Layers(setq *DOCS*(vla-get-ActiveDocument (vlax-get-acad-object))))
(if(member'(420 . 16777215)(setq e(entget(vlax-vla-object->ename e))))
(entmod(append(vl-remove'(420 . 16777215)e)'((62 . 7))))))
(vlax-for e(vla-get-blocks *DOCS*)
(if(member'(420 . 16777215)(setq e(entget(vlax-vla-object->ename e))))
(entmod(append(vl-remove'(420 . 16777215)e)'((62 . 7))))))
(vlax-for e(vla-get-ModelSpace *DOCS*)
(if(member'(420 . 16777215)(setq e(entget(vlax-vla-object->ename e))))
(entmod(append(vl-remove'(420 . 16777215)e)'((62 . 7))))))
) 只要是用天正文字属性的,用tt命令改色CAD就会退出,能解决吗?
页:
[1]