明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1789|回复: 2

如何读取实体的颜色值

[复制链接]
发表于 2016-4-27 06:14:01 | 显示全部楼层 |阅读模式
        CAD中每个对象都有个颜色值,用VBA应该读取哪个属性,折腾了好久没找到,谢谢
发表于 2016-4-27 08:41:51 | 显示全部楼层
要更改对象的颜色,请使用为该对象提供的 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值
 楼主| 发表于 2016-4-27 21:47:30 | 显示全部楼层
浪迹天涯追月 发表于 2016-4-27 08:41
要更改对象的颜色,请使用为该对象提供的 TrueColor 特性。用户可以指定图形中各个对象的颜色。每种颜色均由 ...

谢谢你的指导,学习你的指点,我搞定了
    Dim EntityObj As AcadEntity
    Dim icolorIndex As Integer
    icolorIndex = EntityObj.TrueColor.ColorIndex
通过读取TrueColor的ColorIndex属性,可以得到每个对象的颜色值,噢耶
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 09:35 , Processed in 0.189775 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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