huangbinlq 发表于 2007-8-17 18:11:00

可能只有版主才能解决的问题

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

huangbinlq 发表于 2007-8-19 13:26:00

<p>连管理员也不知道吗</p>

caiqs 发表于 2007-8-25 06:57:00

概然是VC,为何不用AcedSsGget函数?
页: [1]
查看完整版本: 可能只有版主才能解决的问题