关于颜色的问题
在VBA中,我只会用那几种常见的8种颜色,请问有什么方法表示其它的颜色RGB
Object.Color属性的使用
在ACAD 2000/2002 VBA中,Color值可以指定0到256之间的任何整数,每个数字代表的颜色你可以启动ACAD,并使用更改颜色看到。常见的8种颜色用acRed等常数定义了,其它颜色没有这样的预定义,所以你只能使用0-255的颜色索引号(INDEX)。在ACAD 2004 VBA中,颜色管理通过AcCmColor对象实现,设置该对象,可以使用16bit真彩。
给一个例子吧
给一个例子吧例子:
本帖最后由 leeyeafu 于 2003-5-14 8:41:38 编辑以下代码请注意适用的ACAD版本。
Sub Samp_color_2004()
Dim objLine As AcadLine
Dim Stpt(0 To 2) As Double
Dim Edpt(0 To 2) As Double
Dim str As String
Stpt(0) = 100: Stpt(1) = 10: Stpt(2) = 0
Edpt(0) = 150: Edpt(1) = 100: Edpt(2) = 0
Set objLine = ThisDrawing.ModelSpace.AddLine(Stpt, Edpt)
ZoomAll
Dim color As AcadAcCmColor
Set color = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.16")
For i = 0 To 10
Call color.SetRGB(i * 100 Mod 255, ((i + 20) * 100) Mod 255, 255 - i * 20)
objLine.TrueColor = color
objLine.Update
str = ThisDrawing.Utility.GetString(False, "按任意键继续...")
Next i
End Sub
Sub Samp_color_2002()
Dim objLine As AcadLine
Dim Stpt(0 To 2) As Double
Dim Edpt(0 To 2) As Double
Dim str As String
Stpt(0) = 100: Stpt(1) = 10: Stpt(2) = 0
Edpt(0) = 150: Edpt(1) = 100: Edpt(2) = 0
Set objLine = ThisDrawing.ModelSpace.AddLine(Stpt, Edpt)
ZoomAll
For i = 1 To 25
objLine.color = i * 10 - 9
objLine.Update
str = ThisDrawing.Utility.GetString(False, "按任意键继续...")
Next i
End Sub
页:
[1]