|
|
发表于 2009-2-9 12:27:54
|
显示全部楼层
来自: 中国辽宁营口
在VBA中设置和修改对象颜色有新旧两种方法。
3 d6 l4 o' w$ v+ G& K! B* [在2004以前的老版本,图形、组和图层对象有一个Color属性,其值为0到256,分别代表ByBlock(0)、ByLayer(256)和255种索引颜色,每种颜色对应的索引值可以在CAD图形界面的颜色对话框中看到。9 a6 {/ C0 B( p- w
改变对象颜色只需要修改对象的Color属性为目标颜色的索引值就可以了。
0 v. R/ a2 K' e在2004以后版本,由于CAD的颜色增加了真彩色,而Color属性只能使用索引颜色,因而被Autodesk宣布废除了,在新版本的对象浏览器中也看不到Color属性了(但事实上在新版本中仍然可以使用)。代替Color属性的是TrueColor属性。对TrueColor属性赋值需要引用AcCmColor对象,AcCmColor对象的属性主要包括ColorIndex(相当于老版本的Color属性,使用索引颜色)、Red、Green、Blue(红、绿、蓝三种颜色分量,每个属性值分别为0到255)和EntityColor(长整形数,代表32位颜色)。; Z. ]1 X4 F: c2 ^# e0 L; l
改变颜色时,首先要声明一个AcCmColor对象,把其颜色改为目标颜色,然后再把其赋值给图形、组和图层对象的TrueColor属性。/ G- \& { p2 w
下面的代码是使用Color属性的例子. ^6 v2 C: E5 o8 F
! [8 d0 H. R7 x0 I- B6 J3 u& M8 s- Sub A()& ?1 t3 a/ W* w" {3 E
- '声明一个二维填充对象和所用的点
0 O5 g/ H8 E6 D" T' W4 ?8 I- G - Dim S As AcadSolid, P1(2) As Double, P2(2) As Double, P3(2) As Double3 T9 ?( }; E9 w
- '定义二维填充顶点; b9 j. ~: K# D4 s- C% Y
- P2(0) = 10
, a- e7 }1 G& s - P3(0) = 10: P3(1) = 101 g2 [- r3 f, x% R0 ]1 s
- '创建二维填充
2 w% I4 A' \. p0 y - Set S = ThisDrawing.ModelSpace.AddSolid(P1, P2, P3, P3)7 n0 C8 j5 N7 o
- '二维填充的颜色改为红色。其中acRed是CAD七种标准颜色之一“红色”的命名常量,相当于1
% n: P) W7 I' q) `, t C - S.color = acRed5 u: a( @, |, R ~1 c
- End Sub$ v' N) @" m6 m! M, _
复制代码 " Z B/ E, q# U" x
下面的代码是使用TrueColor属性的例子
& J) O* Y" h( u: I S- ( l3 c4 \. i; x; b, E
- Sub A()5 P# Z" t& f* s, c
- '声明一个二维填充对象和所用的点) {: ` V4 `- r- v/ f: ~: w! I1 U
- Dim S As AcadSolid, P1(2) As Double, P2(2) As Double, P3(2) As Double( p8 ^* T% g. s, Y" E/ _+ T* _! i6 v
- '声明并新建一个颜色
+ U( k) n7 a; V4 p1 O3 I - Dim C As New AcadAcCmColor7 ~8 \$ }' f* k+ \
- '定义二维填充顶点
0 o+ O5 X# z- W) F" k2 y- D - P2(0) = 10+ v \ }3 o; Y" y& n& q! u$ f; b
- P3(0) = 10: P3(1) = 10
5 {( W4 _8 Q3 O8 h - '创建二维填充- p3 \: D# A o- {
- Set S = ThisDrawing.ModelSpace.AddSolid(P1, P2, P3, P3)6 A# J, ^4 G- p. [- ^' x% D8 A
- '颜色C使用CAD索引颜色“红色”
1 D: E9 \ C F- M: t2 M - C.ColorIndex = acRed" \6 [% u5 U9 j
- '二维填充的颜色改为颜色C
" i. s+ ?' t( w+ U - S.TrueColor = C
- y3 e. O3 g9 O0 [6 X4 w - End Sub, J4 H1 V1 u8 g
复制代码 |
|