我用vc操作AutoCAD的类型库,本来是正常的函数却得不到预期的结果,比如下面一段关于过滤选择的代码,在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高手朋友,都没能解决这个问题,只好到这个非vba的版块中来请教vc高手:如何用vc操作autocad类型库,让选择具有过滤功能,请知道的朋友不吝赐教,尤其请版主大人亲自指导! |