明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: theisland

[已解答] 开心版主的改图层颜色程序,对天正图元不管用,求助~

[复制链接]
发表于 2014-9-21 20:02:05 | 显示全部楼层
单独使用
比如:
  1. (vl-load-com)
  2. (defun c:GS()
  3. (GL:LayCol "0" 7)
  4. (GL:LayCol "厨卫设备" 252)
  5. (GL:LayCol "家具" 252)
  6. (GL:LayCol "空调洞" 252)
  7. (GL:LayCol "预留孔洞" 252)
  8. (GL:LayCol "空调" 252)
  9. (GL:LayCol "WALL" 140)
  10. (GL:LayCol "PUB_DIM" 3)
  11. (GL:LayCol "PUB_TEXT" 255)
  12. (GL:LayCol "STAIR" 2)
  13. (PRINC)
  14. )

  15. ;改图层颜色子程序。参数:图层、颜色 例:(GL:LayCol "PUB_DIM" 3)
  16. (defun GL:LayCol (lay col / acaddoc acadobj layobj vlay)
  17.   (setq AcadObj (vlax-get-Acad-object)
  18.         AcadDoc (vla-get-ActiveDocument AcadObj)
  19.         LayObj (vla-get-layers AcadDoc)
  20.   )
  21.   (setq vlay (vla-item LayObj lay))    ; 转为VL图层名
  22.   (vla-put-color vlay col)               ; 改图层颜色
  23. )
回复

使用道具 举报

 楼主| 发表于 2014-9-21 20:52:13 | 显示全部楼层
print1985 发表于 2014-9-21 20:02
单独使用
比如:

太好了!要的就是这个效果,目前美中不足的是,如果图中缺乏一些预先设置颜色的图层,CAD会提示:
命令:  GS ; 错误: Automation 错误。 未找到主键 ,如果能够解决这个就更好了(如果不能通过程序解决,每次在需要改色的图中插入各种图层也能解决,只是稍微麻烦点),这功能能整合到您的改色面板里去吗?
回复

使用道具 举报

 楼主| 发表于 2014-9-21 20:55:28 | 显示全部楼层
【KAIXIN】 发表于 2014-9-21 09:08
天正很多都是自定义实体,LISP办不打

一直在用您的改色程序,非常好用,只是现在改用天正比较多,您的程序就有点不够用了
回复

使用道具 举报

发表于 2014-9-22 13:58:49 | 显示全部楼层
加个判断就行了 比如:
(if (tblsearch "layer" "0") (GL:LayCol "0" 7))
我发的都是源码 你自己试着改改就能加到面板里面(添加一个按钮就行了) 自己去折腾吧 然后你也会了 发现如此简单
回复

使用道具 举报

 楼主| 发表于 2014-9-22 14:13:01 | 显示全部楼层
print1985 发表于 2014-9-22 13:58
加个判断就行了 比如:
(if (tblsearch "layer" "0") (GL:LayCol "0" 7))
我发的都是源码 你自己试着改改 ...

GS ; 错误: Automation 错误。 未找到主键 这个能不能解决呢?如果缺乏预设图层,让程序直接忽略行吗?
回复

使用道具 举报

发表于 2014-9-22 17:49:18 | 显示全部楼层
上面代码就是解决这个的啊
回复

使用道具 举报

 楼主| 发表于 2014-9-23 08:28:11 | 显示全部楼层
print1985 发表于 2014-9-22 17:49
上面代码就是解决这个的啊

嘿嘿,搞定了,非常感谢!
回复

使用道具 举报

 楼主| 发表于 2014-9-23 09:46:48 | 显示全部楼层
print1985 发表于 2014-9-22 17:49
上面代码就是解决这个的啊

朋友,我尝试着加了一下按钮,界面效果是出来了,但是程序貌似没有引用对,还麻烦你再看看

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2014-9-23 10:34:59 | 显示全部楼层
theisland 发表于 2014-9-23 09:46
朋友,我尝试着加了一下按钮,界面效果是出来了,但是程序貌似没有引用对,还麻烦你再看看

里面写了注释 你看下
你问的很多内容论坛都能搜索到 善用搜索
lisp语法很简单 先用几天把语法搞懂 然后就是运用各种函数 函数不需要记忆 知道大概功能 用的时候查询一下就行了

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2014-9-23 19:07:22 | 显示全部楼层
print1985 发表于 2014-9-23 10:34
里面写了注释 你看下
你问的很多内容论坛都能搜索到 善用搜索
lisp语法很简单 先用几天把语法搞懂 然后 ...

(if (tblsearch "UB_HATCH" "0")(GLayCol "UB_HATCH" 8)) ;每句改色之前都要判断,后面的自己加

老大,上面这句什么意思?怎么感觉更复杂了呢?其实之前已经好了,目前只是想把那个预设的改色程序加进面板里面,如果不好加,还不如就把您那两个程序分开用,刚试了您改了之后的,有这个提示:
; 错误: AutoCAD 拒绝函数: 表函数参数无效:  "UB_HATCH" "0"

因为我发给您的程序中只是预设了几个图层作为举例,实际上要添加的图层数量很多,之前的就蛮好了,如果再“每句加判断”,感觉很麻烦哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-6 07:53 , Processed in 0.161167 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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