|
|
发表于 2009-2-9 12:27:54
|
显示全部楼层
来自: 中国辽宁营口
在VBA中设置和修改对象颜色有新旧两种方法。
: P. J2 l4 u7 C* W在2004以前的老版本,图形、组和图层对象有一个Color属性,其值为0到256,分别代表ByBlock(0)、ByLayer(256)和255种索引颜色,每种颜色对应的索引值可以在CAD图形界面的颜色对话框中看到。( K7 }! W8 y8 `" o
改变对象颜色只需要修改对象的Color属性为目标颜色的索引值就可以了。' A9 |4 ^) e& j, N
在2004以后版本,由于CAD的颜色增加了真彩色,而Color属性只能使用索引颜色,因而被Autodesk宣布废除了,在新版本的对象浏览器中也看不到Color属性了(但事实上在新版本中仍然可以使用)。代替Color属性的是TrueColor属性。对TrueColor属性赋值需要引用AcCmColor对象,AcCmColor对象的属性主要包括ColorIndex(相当于老版本的Color属性,使用索引颜色)、Red、Green、Blue(红、绿、蓝三种颜色分量,每个属性值分别为0到255)和EntityColor(长整形数,代表32位颜色)。
3 @1 N# {; h' y3 i% q5 {2 j+ p9 e. A改变颜色时,首先要声明一个AcCmColor对象,把其颜色改为目标颜色,然后再把其赋值给图形、组和图层对象的TrueColor属性。& U N W: u: e
下面的代码是使用Color属性的例子
' x& K) J2 Q4 i/ O( R& b& l
U9 R; K3 C1 o+ @- Sub A()
, N8 Z; Z* M3 _+ b - '声明一个二维填充对象和所用的点4 T! f0 R, Y q: \+ t
- Dim S As AcadSolid, P1(2) As Double, P2(2) As Double, P3(2) As Double P' f! h& w* Y
- '定义二维填充顶点
" M8 B, q- K! ^, { - P2(0) = 10- y8 B5 Q$ x9 Z3 S% q9 Z8 w# i; v- y
- P3(0) = 10: P3(1) = 10
& o# N3 Z/ A- N7 _: B: g3 W+ o - '创建二维填充/ \, p* ~1 a0 }/ s; S; K
- Set S = ThisDrawing.ModelSpace.AddSolid(P1, P2, P3, P3)0 G0 p# ^8 g0 c
- '二维填充的颜色改为红色。其中acRed是CAD七种标准颜色之一“红色”的命名常量,相当于12 b9 `- l- K, z% V y& Q
- S.color = acRed
2 ]+ @+ ~* b$ E, ?- n - End Sub
- U: y+ U9 i/ J4 V
复制代码 / o7 ]9 l7 U' n- k
下面的代码是使用TrueColor属性的例子 ^1 J, J- y0 k2 j
: J, `4 {& K: ^$ i0 S8 l- Sub A()
) W' I! [& |' h' \8 d1 o - '声明一个二维填充对象和所用的点9 |% ]; D. |+ R* P! z
- Dim S As AcadSolid, P1(2) As Double, P2(2) As Double, P3(2) As Double
* o$ v, Y; X. E - '声明并新建一个颜色- r( W( U1 h2 U
- Dim C As New AcadAcCmColor
/ F: E. H5 V! q4 `; s' F - '定义二维填充顶点
, _# w2 F n9 ]3 |, [ - P2(0) = 10
8 V. r/ p+ f. w6 ^' K - P3(0) = 10: P3(1) = 104 O1 W2 t, V X8 [0 H
- '创建二维填充4 |2 U7 P& p" a6 Q( F$ @' F
- Set S = ThisDrawing.ModelSpace.AddSolid(P1, P2, P3, P3)* c( Q+ c5 s, \$ t l
- '颜色C使用CAD索引颜色“红色”
3 a3 A* I# n6 Q2 s: \$ ^ - C.ColorIndex = acRed
, c0 {& B2 r& k4 {& Q7 H - '二维填充的颜色改为颜色C# ]8 Z! E5 b6 K% \
- S.TrueColor = C' ]$ {* ^7 d, \4 P- {0 O4 n
- End Sub
* b$ H5 o* n5 D% h3 Q, h
复制代码 |
|