明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2740|回复: 14

[提问] 求助做一个【快速改色】插件。

[复制链接]
发表于 2019-2-7 11:52 | 显示全部楼层 |阅读模式
本帖最后由 cheefeel 于 2019-2-8 13:51 编辑

发错版块了,请版主删除此贴。
请求这样一个工具

①执行命令SCOLOR后,弹出如上图的一个精简色库。
②点击颜色则更改所选对象的颜色若无选择更改当前颜色
③选择颜色后自动关闭窗口,无需确定。

工具的意义:CAD中执行命令COLOR后的色库,
只能更改当前颜色,而不能更改所选对象颜色。
然而通过点击组合窗口弹出色库需要经过两次点击还得滚动到底部,
并且需要点击确认才能完成,非常麻烦。

若能随时自定义其中配色种类和格数更好,
以便符合不同人群的需要。
若不能则按上图所包含的索引色配置。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2019-2-9 09:10 | 显示全部楼层
  1. ;; tt(改实体颜色)
  2. (defun c:tt ()
  3.   (setq        co (acad_colordlg 1)
  4.         i  -1
  5.   )
  6.   (princ "\n选择实体<退出>: ")
  7.   (if (setq ss (ssget))
  8.     (while (setq s1 (ssname ss (setq i (1+ i))))
  9.       (vla-put-color (vlax-ename->vla-object s1) co)
  10.     )
  11.   )
  12.   (princ)
  13. )
回复 支持 1 反对 0

使用道具 举报

发表于 2019-2-18 16:20 | 显示全部楼层
快捷键  1-255  颜色
(defun c:1~255 (/ cnt)
(setq cnt -1)
(repeat 257
(eval(read(strcat
"(defun C:" (if (= cnt -1)"`"(itoa cnt))
"(/ ent)(setq ent (ssget))"
"(command \"_.change\" ent \"\" \"_p\" \"_c\" \""
(cond((= cnt -1)"bylayer")((= cnt 0)"byblock")(t(itoa cnt)))
"\" \"\")(princ))")))
(eval(read(strcat
"(defun C:C" (if (= cnt -1)"`"(itoa cnt)) "()"
"(command \".-color\""
(cond((= cnt -1)"bylayer")((= cnt 0)"byblock")(t(itoa cnt)))
")(princ))")))
(setq cnt (1+ cnt))))
(c:1~255)

1-255数字是色号的快捷键,ByLeyer随层色是按~键,ByBlock随块色是按0键
发表于 2019-2-7 16:24 | 显示全部楼层
acad自带的不行?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2019-2-7 16:38 | 显示全部楼层
xyp1964 发表于 2019-2-7 16:24
acad自带的不行?

输入命令color命令以后更改的是当前颜色(而不是选中对象的颜色)这是神一样的尴尬。然而每次都要去点上面而且要弹出后再点更多颜色,太麻烦了!
发表于 2019-2-7 22:23 | 显示全部楼层
  1. ;; tt(改实体颜色)
  2. (defun c:tt ()
  3.   (setq co (Uint 1 "" "颜色号" co))
  4.   (princ "\n选择实体<退出>: ")
  5.   (if (setq ss (ssget))
  6.     (xyp-SubUpd ss 62 co)
  7.   )
  8.   (princ)
  9. )
 楼主| 发表于 2019-2-8 09:39 | 显示全部楼层
本帖最后由 cheefeel 于 2019-2-8 13:53 编辑

; 错误: no function definition: UINT

感谢帮助!能弹出CAD自带色库也好,但是版主提供的lsp代码好像不能直接用~~~
 楼主| 发表于 2019-2-9 09:20 | 显示全部楼层

感谢版主!可以用了,妈妈再也不用担心我改颜色太慢了~
发表于 2019-2-18 13:08 | 显示全部楼层
本帖最后由 1291500406 于 2019-2-18 16:59 编辑

上面的改色只能改文字的颜色,不能改块,块内颜色,有局限
发表于 2019-2-18 16:46 | 显示全部楼层
本帖最后由 1291500406 于 2019-3-11 15:54 编辑

(defun c:ys()(setq   ys (acad_colordlg 1)i  -1) (setq ss (ssget))(command "change" ss "" "p" "c" ys  "")(prin1))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-29 16:28 , Processed in 0.262628 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表