明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2783|回复: 9

为什么选择集不稳定啊,大家帮帮忙吧!

[复制链接]
发表于 2012-2-18 13:33:29 | 显示全部楼层 |阅读模式
我创建了一个选择集sstext然后
filtertype=0
filterdata=“text”
sstext.Select(AcSelect.acSelectionSetWindow, point1, point2, filtertype, filterdata)
为什么这么选择以后,结果不稳定呢?有时候能选到有时候选不到?开始以为是选择范围不在视野范围内,后来把范围调小了,还是不行,时有时无的,我跟踪去看了,明明两点之间范围内是有东西的,我两点第一点是左上第二点是右下,和这个有关系么?弄的我莫名其妙啊。。谁能帮帮我啊,不行我只能用笨方法全图循环了。。。
发表于 2012-2-18 14:50:06 | 显示全部楼层
还要求在视窗范围内
 楼主| 发表于 2012-2-19 00:58:15 | 显示全部楼层
sieben 发表于 2012-2-18 14:50
还要求在视窗范围内

肯定在视窗范围内啊,我没做一步都ZOOMALL一下的,还是不行,并且就是靠边的图不行,如果在中间的话就没事。。奇怪了。
发表于 2012-2-19 09:48:39 | 显示全部楼层
本帖最后由 sieben 于 2012-2-19 09:51 编辑

1,或许你应该用SelectCrossingWindow
2,或许你应该去掉过滤器
3,既然你怀疑左上右下,为什么不换左下右上试试?
4,你的是VBA?还是COM?不是ObjectARX.Net吧?
发表于 2012-2-19 10:21:30 | 显示全部楼层
试一下SelectAll试试
http://blog.csdn.net/sunchengbo2007/article/details/6626523
这个是选择集的介绍,我也不太懂。
 楼主| 发表于 2012-2-19 20:38:00 | 显示全部楼层
sieben 发表于 2012-2-19 09:48
1,或许你应该用SelectCrossingWindow
2,或许你应该去掉过滤器
3,既然你怀疑左上右下,为什么不换左下右上试 ...

目前还没搞清楚selectcrossingwindow和selectionsetwindow有什么区别,但是点的位置已经调整过了,开始是从左下到右上,后来改成左上到右下,都不行,时有时无的。。。要是去掉过滤器的话会很不效率啊,会选到很多没用的东西,影响运行速度怕。我用的是.COM要是objectarx就没问题了。。
发表于 2012-2-20 00:34:51 | 显示全部楼层
selectcrossingwindow 矩形范围内以及和矩形框相交的实体会被选择上
selectwindow 矩形范围内实体会被选择上
 楼主| 发表于 2012-2-20 19:10:45 | 显示全部楼层
sieben 发表于 2012-2-20 00:34
selectcrossingwindow 矩形范围内以及和矩形框相交的实体会被选择上
selectwindow 矩形范围内实体会被选择 ...

我今天又试了下,还是不行,各种方法都试了,还是有时候选的上有时候选不上,包括去掉过滤,也不行,SELECTWINDOW和SELECTCROSSINGWINDOW也试了,还是不行,各种试验,全部以失败告终,只有SELECTALL可以,但是是全图都选上了。。我要放弃了。。。
发表于 2012-8-6 09:15:27 | 显示全部楼层
我这两天也遇到这个问题,请看下图

我通过Editor.SelectCrossingWindow()分别选择三个图框中的对象进行处理,图中上面两个都正常,唯独下面第一个图形的标题栏丢了!
检查了框选点的坐标,没问题,我定义的分别是左下角-1和右上角+1,如果说没包括的话,应该连图框也没有啊,为什么偏偏少了标题栏呢?百思不得其解……

本帖子中包含更多资源

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

x
发表于 2012-8-6 09:50:15 | 显示全部楼层
本帖最后由 James.W.H.Li 于 2012-8-6 09:51 编辑

解决了!

在较早的一个帖子中发现,有朋友提到需要先缩放视窗到显示全部图形,再框选需要的图形,就照着试了一下,立竿见影啊,呵呵,总结一下:

1、我是对当前打开的一个doc进行操作,使用Editor.SelectCrossingWindow()前需要先缩放窗口,具体做法请看【http://bbs.mjtd.com/forum.php?mod=viewthread&tid=92727】帖子的八楼;
2、我是对当前图形进行循环操作,需要多次打开同一个文档,因此在设定全局命令时,需要设定标识,即[CommandMethod("doTest",CommandFlags.Session)];
3、遇到问题解决了,别忘记来说一下怎么解决的,众人拾柴火焰高,呵呵。

谢谢大家!谢谢为本论坛添砖加瓦的朋友们,我在这里学到了越来越多的知识,其乐无穷!!

点评

mark  发表于 2014-5-21 14:23
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 16:27 , Processed in 0.183531 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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