将特定真彩色更改为
大家好,我有很多从另一个设计软件导入的绘图,但他给我带来了真彩色的物体,我需要的是将这些颜色更改为正常颜色:从0128,0到94(绿色)
从255255255到255(白色)
从100,60,30到27(棕色)
从31,26,23到250(黑色)
我需要一个lisp自动进行更改。。。
谢谢 任何设置为TrueColor的对象都会保存相应的ACI,因此您只需删除420 dxf代码(保存TrueColor)。
;Change all TrueColor to AutoCAD Color Index
(defun c:all_to_aci ( / remove420 la e)
(defun remove420 (entity_list)
(entmod (vl-remove (assoc 420 entity_list) entity_list))
)
(while
(setq la (tblnext "layer" (not la)))
(remove420 (entget (tblobjname "layer" (cdr (assoc 2 la)))))
)
(while (setq e (if e (entnext e) (entnext)))
(remove420 (entget e))
)
(princ)
)
PS1:我没有在块、嵌套块或外部参照上测试它。
PS2:你的转换有问题:0128,0是96,100,60,30是39 谢谢Stefan,
Lisp程序很好用!
关于对应的你是对的。
我只想把颜色改成94和27,因为我必须遵守我的CTB绘图列表。
我的存档只包含图案填充。。。没有线条,没有索利多金币,没有积木!
谢谢! 您可以修改它以应用于嵌套块(块子实体)吗 当然所有的物体,对吗?
(defun c:all_to_aci ( / remove420 la en)
(defun remove420 (entity_list)
(vl-catch-all-apply '(lambda nil (entmod (vl-remove (assoc 420 entity_list) entity_list))))
)
(while
(setq la (tblnext "layer" (not la)))
(remove420 (entget (tblobjname "layer" (cdr (assoc 2 la)))))
)
(vlax-for block (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
(if
(not (eq (vla-get-isxref block) :vlax-true))
(vlax-for en block
(remove420 (entget (vlax-vla-object->ename en)))
)
)
)
(princ)
) 效验如神非常感谢
Stefan BMR先生
出色的工作
再次感谢 欢迎光临。感谢您在TheSwamp上提及解决方案。
页:
[1]