找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 952|回复: 4

[VBA程序]:选择集的问题

[复制链接]
发表于 2006-7-10 11:25:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如何获得由COPY、MOVE 、erase等命令 发出后产生的选择集的内容。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-7-11 20:46:45 | 显示全部楼层
activeselectionset
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-12 13:20:19 | 显示全部楼层
Private Sub NotDel()        '发出命令后进行操作
Dim sset As AcadSelectionSet
     Set sset = AcadDoc.ActiveSelectionSet
      Dim objs(0) As AcadEntity

Dim Ent As Object
        DDD = sset.Count
        For Each Ent In sset
        On Error Resume Next
            Ent.GetXData "Test_Application", xt, xd

           If IsNull(xd(0)) = True Then
             Else
                If xd(0) = "Test_Application" Then
                     Set objs(0) = Ent
                     sset.RemoveItems objs
             '  AcadDoc.ActiveSelectionSet.RemoveItems objs
             '使用上面这条语句也不行
               End If         
            End If
       Next
End Sub
斑主我写了上面的代码,现在想实现如果存在有属性的实体就不能被移动拷贝删除,也就是从当前活动的ActiveSelectionSet选择集中去处这些实体,使之不能被操作。
还有一个问题,在执行ERASE命令时上述代码无法起作用,实体还一样被删除,好像该实体已经被删除了。我看帮助好像ActiveSelectionSet选择集可以进行读写操作。
请斑主给帮忙。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-14 10:19:33 | 显示全部楼层
楼主问的是斑竹,我看见了,先说说我的看法,呵呵
第一,不知你用的是VB还是VBA,如果是VBA的话,Set sset = AcadDoc.ActiveSelectionSet 应该改成 Set sset = = ThisDrawing.ActiveSelectionSet
第二,可能是判断属性是否存在的语句出了毛病,请把 If IsNull(xd(0)) = True Then 改成
If VarType(xd) = vbEmpty Then 试一下
小弟浅薄,如果有错误之处,请不要见笑
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-14 12:47:51 | 显示全部楼层
我使用的使VB,使用VB作一个OCX直接加载到CAD中,可以作出ARX开发的效果。关于两条语句的功能基本一致。
目前主要是想解决基础图纸不能被拷贝,复制,删除等操作。做法是从这些命令发出指令后从ENDCOMMAND中进行获得当前的选择集(ActiveSelectionSet)并从该选择集中删除这些被控制的实体。这些实体在加入时已经给了属性。
其他使用什么好方法也不知道。使用外部参照可以被用户发现路径无法保证图形的安全性。
希望大家从事过这方面的同志能给点思路。我了解杭州有一家公司可以实现这项功能。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 16:01 , Processed in 0.198524 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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