|
我用vc操作的类型库,本来是正常的函数却得不到预期的结果,比如下面一段关于过滤选择的代码,在vba中完全没问题:
Sub DeleteBlock()
Dim ObjBlockRef As AcadBlockReference
Dim FilterType(0) As Integer, FilterData(0) As Variant
Dim sset As AcadSelectionSet
'选中名为"椅子"的块参照并删除
Set sset = ThisDrawing.SelectionSets.Add("test")
FilterType(0) = 2
FilterData(0) = "椅子"
sset.Select acSelectionSetAll, , , FilterType, FilterData
For Each ObjBlockRef In sset
ObjBlockRef.Delete
Next
sset.Delete
'删除块定义
ThisDrawing.Blocks.Item("椅子").Delete
End Sub
上面的代码将名为"椅子"的块参照全部选择和删除了,但是我在vc中用同样的selcet函数,而且使用同样的参数,执行后却将文件中所有的对象全部删除了,也就是说,没有起到过滤的作用,我请教了不少vba高手朋友,都没能解决这个问题,只好恭请版主大人出面指导了!
|
|