乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 87|回复: 2

如何读取实体的颜色值

[复制链接]

5

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
32
发表于 2016-4-27 06:14:00 | 显示全部楼层 |阅读模式
CAD中每个对象都有个颜色值,用VBA应该读取哪个属性,折腾了好久没找到,谢谢
回复

使用道具 举报

2

主题

11

帖子

1

银币

初来乍到

Rank: 1

铜币
19
发表于 2016-4-27 08:41:00 | 显示全部楼层
要更改对象的颜色,请使用为该对象提供的 TrueColor 特性。用户可以指定图形中各个对象的颜色。每种颜色均由一个 AcCmColor 对象标识。此对象可以是 RGB 值、ACI 编号(从 1 到 255 的整数)或命名颜色。使用 RGB 值,可以从上百万种颜色中选择。
设置对象的颜色会替代该对象所在图层的颜色设置。如果要将对象保留在特定图层上但不希望该对象保留该图层的颜色,可以更改对象的颜色。
Sub Ch4_ColorCircle()
    Dim color As AcadAcCmColor
    Set color = _
    AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.17")
    Call color.SetRGB(80, 100, 244)
    Dim circleObj As AcadCircle
    Dim centerPoint(0 To 2) As Double
    Dim radius As Double
    centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0#
    radius = 5#
    Set circleObj = _
    ThisDrawing.ModelSpace.AddCircle(centerPoint, radius)
    circleObj.TrueColor = color
    ZoomAll
End Sub
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
以上来自VBA帮助。
color读取的是颜色索引值,The value returned is a color index number from 0 to 256
truecolor可以自己设置RGB值
回复

使用道具 举报

5

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
32
发表于 2016-4-27 21:47:00 | 显示全部楼层

谢谢你的指导,学习你的指点,我搞定了
    Dim EntityObj As AcadEntity
    Dim icolorIndex As Integer
    icolorIndex = EntityObj.TrueColor.ColorIndex
通过读取TrueColor的ColorIndex属性,可以得到每个对象的颜色值,噢耶
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-4-20 01:03 , Processed in 2.738383 second(s), 59 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表