免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 2529|回复: 1
收起左侧

[二次开发] 【CAD代码积累】修改图层颜色

[复制链接]

113

主题

1万

铜板

174

好友

地信贵宾

Rank: 13Rank: 13Rank: 13Rank: 13

积分
39147

精华勋章宣传勋章爱心勋章组织勋章优秀斑主地信元老灌水勋章荣誉会员勋章活跃勋章官方团队地信专家组VIP勋章贡献勋章名人堂勋章成就学员勋章

发表于 2014-8-29 18:48 | 显示全部楼层 |阅读模式
本帖最后由 若水三千 于 2014-8-29 18:51 编辑

  最近开始学习一些CAD的二次开发,在网上看到了一些好的代码,特拿来分享。
  1. ;函数:更改图层颜色
  2. ;功能:将某个图层改为某种颜色

  3. (defun edit_layer_color        (color_no layer_name / layer layers)
  4.   (setq        layers (vla-get-layers
  5.                  (vla-get-ActiveDocument (vlax-get-acad-object))
  6.                )
  7.   )
  8.   (vlax-for layer layers
  9.     (if        (= (vla-get-name layer) layer_name)
  10.       (vla-put-color layer color_no)
  11.     )
  12.   )
  13.   (princ)
  14. )
  15. (edit_layer_color acRed "0")
复制代码
调用函数的方法是:
  1. (edit_layer_color acRed "0")
复制代码
这样就把0层的颜色改为红色。但是已经绘制好的对象的颜色并没有改变,要让它们的颜色随层,得添加一句:

  1. (command "_.chprop" "_all" "" "_color" "_bylayer" "")
复制代码
   顺便说一下这个函数:
  1. (vla-put-color layer color_no)
复制代码

  调用系统中的函数来修改层颜色,其函数原型如上所示,它在Express Tools中,注意要确保安装程序安装了此组件。其中颜色参数使用枚举值:
常数
描述
vbBlack
0x0
黑色
vbRed
0xFF
红色
vbGreen
0xFF00
绿色
vbYellow
0xFFFF
黄色
vbBlue
0xFF0000
蓝色
vbMagenta
0xFF00FF
紫红色
vbCyan
0xFFFF00
青色
vbWhite
0xFFFFFF
白色


1

主题

1035

铜板

2

好友

技术员

Rank: 3Rank: 3

积分
97
发表于 2019-10-15 18:46 | 显示全部楼层
你好大神  能不能更改多个图层的颜色
回复 支持 反对

使用道具 举报

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

本版积分规则

在线客服
快速回复 返回顶部 返回列表