|
|
发表于 2009-2-9 12:27:54
|
显示全部楼层
来自: 中国辽宁营口
在VBA中设置和修改对象颜色有新旧两种方法。' v* ], _1 h. o/ @4 _
在2004以前的老版本,图形、组和图层对象有一个Color属性,其值为0到256,分别代表ByBlock(0)、ByLayer(256)和255种索引颜色,每种颜色对应的索引值可以在CAD图形界面的颜色对话框中看到。
. ]4 d7 |3 j1 i4 Z3 W/ O改变对象颜色只需要修改对象的Color属性为目标颜色的索引值就可以了。* i$ E- ~9 N( W! T4 M0 |
在2004以后版本,由于CAD的颜色增加了真彩色,而Color属性只能使用索引颜色,因而被Autodesk宣布废除了,在新版本的对象浏览器中也看不到Color属性了(但事实上在新版本中仍然可以使用)。代替Color属性的是TrueColor属性。对TrueColor属性赋值需要引用AcCmColor对象,AcCmColor对象的属性主要包括ColorIndex(相当于老版本的Color属性,使用索引颜色)、Red、Green、Blue(红、绿、蓝三种颜色分量,每个属性值分别为0到255)和EntityColor(长整形数,代表32位颜色)。
6 J& c% o: s$ P7 m) n) d改变颜色时,首先要声明一个AcCmColor对象,把其颜色改为目标颜色,然后再把其赋值给图形、组和图层对象的TrueColor属性。8 }/ u- o; B. Y
下面的代码是使用Color属性的例子8 X9 S% L$ b- O5 O
3 A& V$ V9 I6 D7 i- Sub A()& F6 F5 [' g2 g0 \/ l+ P' f
- '声明一个二维填充对象和所用的点" R7 [( j6 c3 Q0 X0 i
- Dim S As AcadSolid, P1(2) As Double, P2(2) As Double, P3(2) As Double9 I2 ^ D6 A0 A& ~
- '定义二维填充顶点
8 w! I% m5 e4 |: J+ a - P2(0) = 10
" y5 S* \0 z8 f/ D. S+ i - P3(0) = 10: P3(1) = 10, ]5 S2 M9 B; m5 e0 E
- '创建二维填充" V( G! M/ m S6 C: s
- Set S = ThisDrawing.ModelSpace.AddSolid(P1, P2, P3, P3)
$ ~$ ]3 A y' D( } - '二维填充的颜色改为红色。其中acRed是CAD七种标准颜色之一“红色”的命名常量,相当于19 i* q% N; h, k5 ~" \- x
- S.color = acRed
# W) M9 k7 c1 G, } - End Sub
$ S- ?$ K g0 p! [7 ~* s F
复制代码
( e0 H# S6 A7 D8 u* e/ \4 R下面的代码是使用TrueColor属性的例子
( m8 A s# R- }6 U
9 D8 Q: g7 n* r- Sub A()
& M% Z& x: R7 y - '声明一个二维填充对象和所用的点. z4 S4 i; ?- M! M$ O' J8 X# q
- Dim S As AcadSolid, P1(2) As Double, P2(2) As Double, P3(2) As Double* w2 @ A$ s% s, T' H
- '声明并新建一个颜色7 @2 j* |6 K& A
- Dim C As New AcadAcCmColor
+ X5 U- p) P/ j& P2 p/ j2 Z5 Q1 b - '定义二维填充顶点+ z3 S5 y+ P$ K- r0 Y$ s9 t5 C7 z1 ?
- P2(0) = 10' D5 A0 U1 U& \" s0 s- u2 u
- P3(0) = 10: P3(1) = 107 ?4 E: p; _, w" O
- '创建二维填充
# f8 u# q* I9 G; n+ v# C - Set S = ThisDrawing.ModelSpace.AddSolid(P1, P2, P3, P3)5 U8 _" T2 d) K1 s
- '颜色C使用CAD索引颜色“红色”7 c- y% I4 r3 w% }
- C.ColorIndex = acRed
0 |8 m5 F$ c$ H! T3 i; A9 M - '二维填充的颜色改为颜色C
8 ^- J& j2 ~3 k& c: E0 F) a - S.TrueColor = C6 v$ M. w) ?9 O% c9 t
- End Sub% @5 t, R4 |6 y+ Q3 J
复制代码 |
|