明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1573|回复: 4

关于颜色的问题

[复制链接]
发表于 2003-5-13 08:17 | 显示全部楼层 |阅读模式
在VBA中,我只会用那几种常见的8种颜色,请问有什么方法表示其它的颜色
发表于 2003-5-13 08:28 | 显示全部楼层

RGB

发表于 2003-5-13 08:53 | 显示全部楼层

Object.Color属性的使用

在ACAD 2000/2002 VBA中,Color值可以指定0到256之间的任何整数,每个数字代表的颜色你可以启动ACAD,并使用更改颜色看到。常见的8种颜色用acRed等常数定义了,其它颜色没有这样的预定义,所以你只能使用0-255的颜色索引号(INDEX)。
在ACAD 2004 VBA中,颜色管理通过AcCmColor对象实现,设置该对象,可以使用16bit真彩。
 楼主| 发表于 2003-5-13 09:32 | 显示全部楼层

给一个例子吧

给一个例子吧
发表于 2003-5-14 08:41 | 显示全部楼层

例子:

本帖最后由 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 21:01 , Processed in 0.282145 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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