明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1759|回复: 2

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

[复制链接]
发表于 2007-8-17 18:11:00 | 显示全部楼层 |阅读模式

我用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类型库,让选择具有过滤功能,请知道的朋友不吝赐教,尤其请版主大人亲自指导!

 楼主| 发表于 2007-8-19 13:26:00 | 显示全部楼层

连管理员也不知道吗

发表于 2007-8-25 06:57:00 | 显示全部楼层
概然是VC,为何不用AcedSsGget函数?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 17:30 , Processed in 0.183662 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表