Houdini88 发表于 2022-7-5 23:33:48

更改所有黄色(2,50

Hy,
有没有嘴唇可以把所有的黄色(2,50,51)变成8色?
Tnx公司

Spaj 发表于 2022-7-5 23:48:12

你好
 
可以使用“快速选择”按颜色(2,50,51)选择实体,然后更改属性。

MSasu 发表于 2022-7-5 23:55:40

更好的图形管理方法是按层分配颜色,而不是覆盖它;这样就更容易调整了。

Houdini88 发表于 2022-7-6 00:00:11

但是,使用lisp将3种颜色(2,50,51)转换为灰色要比快速选择每种颜色更快

MSasu 发表于 2022-7-6 00:09:57

我仍然希望你会考虑按层分配颜色的方法,否则当想要再次调整颜色时,将需要另一个专用工具。
 
假设您的实体不在锁定层中:
;;; Change Colors 5, 50 and 51 routine (15-II-2014)
(defun c:CC55051( / sset )
(if (setq sset (ssget "_X" '((-4 . "<OR")(62 . 2)(62 . 50)(62 . 51)(-4 . "OR>"))))
(command "_CHPROP" sset "" "_C" 8 "")
)
(princ)
)

Stefan BMR 发表于 2022-7-6 00:14:55

所有黄色到8,包括设置为“bylayer”的对象和块中的对象:
(defun C:Y2G ( / acdoc) (vl-load-com)
(setq acdoc (vla-get-activedocument (vlax-get-acad-object)))
(vlax-for la (vla-get-layers acdoc)
   (if
   (member (vla-get-color la) '(2 50 51))
   (vla-put-color la
   )
   )
(vlax-for blk (vla-get-blocks acdoc)
   (vlax-for obj blk
   (if
       (member (vla-get-color obj) '(2 50 51))
       (vla-put-color obj
       )
   )
   )
(vla-regen acdoc acAllViewports)
(princ)
)

Tharwat 发表于 2022-7-6 00:24:18

您可能需要从迭代过程中排除外部参照块。

Stefan BMR 发表于 2022-7-6 00:28:27

我看不出有什么理由。更改颜色仅在当前dwg中有效。原来的一个保持不变。

Houdini88 发表于 2022-7-6 00:34:13

完美的Lisp程序,它正在做令人惊叹的事情。
你刚刚节省了我的时间。谢谢。
干杯
页: [1]
查看完整版本: 更改所有黄色(2,50