zhumb 发表于 2005-4-10 11:40:00

帮忙看一下下面程序的问题!

Public Sub s()<BR>Dim i As Integer<BR>Dim ft(1) As Integer<BR>Dim fd(1) As Variant<BR>Dim Sset As AcadSelectionSet<BR>If ThisDrawing.SelectionSets.Count &lt;&gt; 0 Then<BR>                       For i = 0 To ThisDrawing.SelectionSets.Count - 1<BR>                                                       Set Sset = ThisDrawing.SelectionSets.Item(i)<BR>                                                       Sset.Delete<BR>                       Next<BR>End If<BR>Set Sset = ThisDrawing.SelectionSets.Add("AA")<BR>Sset.SelectOnScreen<BR>If Sset.Count = 0 Then Exit Sub<BR>ft(0) = 8: fd(0) = Sset.Item(0).Layer<BR>ft(1) = 62: fd(1) = Sset.Item(0).color<BR>Sset.Clear<BR>Sset.Select acSelectionSetAll, , , ft, fd<BR>Sset.Highlight (True)<BR>End Sub


运行上面宏后,符合要求的对象高亮显示,但是这些被选中的对象不像在CAD里直接选取一样,能够通过颜色下拉列表直接改变其颜色?这是为什么?有什么办法可以解决该问题。

mccad 发表于 2005-4-10 13:48:00

注意这只是高亮显示,而不是选中状态。<BR>选中状态只有手工才能做到。通过程序做不了。

zhumb 发表于 2005-4-10 14:24:00

vba难道就这么弱?

mccad 发表于 2005-4-10 21:32:00

你看看LISP行不行。呵呵。

qhq0309 发表于 2005-5-16 17:52:00

在vb中试试

今晚打老虎 发表于 2005-5-17 09:00:00

你用图层区分颜色不就行了,选中的对象放到别的颜色的图层里。退出选择就再放回来。

qhq0309 发表于 2005-5-23 19:55:00

多侃侃
页: [1]
查看完整版本: 帮忙看一下下面程序的问题!