bbkcylh 发表于 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值

bbkcylh 发表于 2016-4-27 21:47:30

浪迹天涯追月 发表于 2016-4-27 08:41 static/image/common/back.gif
要更改对象的颜色,请使用为该对象提供的 TrueColor 特性。用户可以指定图形中各个对象的颜色。每种颜色均由 ...

谢谢你的指导,学习你的指点,我搞定了
    Dim EntityObj As AcadEntity
    Dim icolorIndex As Integer
    icolorIndex = EntityObj.TrueColor.ColorIndex
通过读取TrueColor的ColorIndex属性,可以得到每个对象的颜色值,噢耶
页: [1]
查看完整版本: 如何读取实体的颜色值