找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 529|回复: 2

[求助]:从未遇到的选择集怪现象!

[复制链接]
发表于 2005-5-7 15:54:19 | 显示全部楼层 |阅读模式

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

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

×
几乎对选择集失去信心了。请大家看看如下的奇特现象:
这是一个选择集的很普通的程序段:

Dim ssetObj As AcadSelectionSet
    On Error Resume Next
If ThisDrawing.SelectionSets.Count <> 0 Then     
   If Not IsNull(ThisDrawing.SelectionSets.Item("SSS67ET")) Then
      Set ssetObj = ThisDrawing.SelectionSets.Item("SSS67ET")
        ssetObj.Delete
    End If
End If
    Set ssetObj = ThisDrawing.SelectionSets.Add("SSS67ET")
   
    Dim mode As Integer
    Dim corner1(0 To 2) As Double
    Dim corner2(0 To 2) As Double
    mode = acSelectionSetWindow
    ...
    (给corner1,corner2都赋了值)   
   
    ssetObj.Select mode, corner1, corner2
    ...
    ssetObj.delete

运行时 ,在有些电脑上出现了怪现象:
autocad2004下,用编辑器跟踪 mode 的值始终为0,就是说
mode = acSelectionSetWindow
这行语句无效。
究其原因,发现acSelectionSetWindow=0 ! 难道autocad2004将它作为变量处理?

为了绕过该问题,
    ssetObj.Select mode, corner1, corner2
这一行中 mode 直接替换为 "4"

出现了第二个怪现象, 无论corner1,corner2所取的窗口范围有多大,ssetObj中都只有一个 item.

小弟调试了一天 ,几乎对选择集失去信心。请问各位能否指教下,这到底属于什么问题呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-5-8 20:10:44 | 显示全部楼层
1.经2004测试mode = acSelectionSetWindow 一句未发现问题,楼上代码不全,不知是否由其它语句引起错误。
2.Select方法只能选择当前屏幕显示的对象,如果显示范围不包括目标对象,corner1,corner2取再大的值也没用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-8 20:50:45 | 显示全部楼层
谢谢这位仁兄。
“Select方法只能选择当前屏幕显示的对象”点醒了我。
先zoom后就是对的了。
第二个奇怪现象仍然存在。
不知道是怎么回事。
不过我找回了对选择集的信心!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 03:26 , Processed in 0.275578 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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