明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: neteasy

如何只选择屏幕上的圆弧和线?

  [复制链接]
发表于 2004-3-28 19:40:00 | 显示全部楼层
我是在2004下调试的,但也不是完全不行,开始是可以的,但后来不知道怎么就不行了,


又仔细试了一下,调试过程如下:


建一个新图,画两个矩形,用


(setq ss (ax:ssget nil nil));选择第一个矩形


(setq ss2 (ax:ssget nil nil));选择第二个矩形


然后删除ss中的对象,


(vlax-for item ss (vla-delete item))


然后点击撤消(在图中表现为取消绘制第二个矩形的命令),再使用


(setq ss (ax:ssget nil nil))就报错了。。。。


至于你说的,最后释放肯定是必要的,
发表于 2004-3-28 19:55:00 | 显示全部楼层
对于AX选择集为什么会出错,在VBA版块中以前我也讨论过,后来我的做法是不管选择集是否存在,先将指定名称的选择集删除,再添加该名称的选择集,这样做程序语句也少几句,而且也不会再出错了。我不同意大家为了提高那点点的速度来使用AX方法的选择集,因为AX的选择集存在着很多的限制:
1.在2002及以前版本,选择对象时不能实时平移或缩放;
2.提示选择对象时无法使用以下选项,如
  1. 窗口(W)/上一个(L)/窗交(C)/框(BOX)/全部(ALL)/栏选(F)/圈围(WP)/圈交(CP)/编组(G)/类(CL)/添加(A)/删除(R)/多个(M)/上一个(P)/放弃(U)/自动(AU)/单个(SI)
复制代码
我一直想在VBA中使用LISP中的选择方法,但做不到。
发表于 2004-3-28 23:39:00 | 显示全部楼层
我喜欢这样用:(能满足你上贴说的选项) (setq ss (ssget '((0 . "circle")))
vss (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad-object))))
(vlax-for obj vss (vla-delete obj))
发表于 2004-3-29 22:10:00 | 显示全部楼层
无痕发表于2004-3-28 23:39:00我喜欢这样用:(能满足你上贴说的选项) (setq ss (ssget '((0 . \"circle\"))) vss (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad...

高~我对你的景仰有如滔滔江水连绵不绝,又如……
发表于 2004-3-29 22:29:00 | 显示全部楼层
无痕发表于2004-3-28 23:39:00我喜欢这样用:(能满足你上贴说的选项) (setq ss (ssget '((0 . \"circle\"))) vss (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad...

试试这样操作,你会发现你的代码不能删除刚选定的圆: 选择文件菜单->打开 来显示“打开文件对话框”,点对话框中的“取消”键回到原来的图形。这时再运行你的程序。呵呵,问题出来了。
发表于 2004-3-29 23:37:00 | 显示全部楼层
厉害,这种bug也能被你找到!佩服


查了一下,打开文件摁取消退出后


显示<activeselectionset> automation错误,调用方法additems(接口iacadselectionset)失败
发表于 2004-3-29 23:47:00 | 显示全部楼层
我认为这应该属于cad的bug。不知道有什么办法解决没有?
发表于 2004-3-30 12:48:00 | 显示全部楼层
可以避免,在使用activeselectionset前先把名称为“CURRENT”的选择集删除掉。
发表于 2004-3-30 13:49:00 | 显示全部楼层
没试,我想这样又会带来如我上面所说的问题了。。。
发表于 2004-3-30 19:19:00 | 显示全部楼层
应该不会再出错,因为关键问题是当图形中存在指定名称选择集时进行我说的操作后,再想使用该选择集就会出错,所以在使用前先将同名的选择集删除掉就不会再出错了。
这种操作方法我目前一直在用,再也没有用户说有问题。
调用activeselectionset时真正的内部过程是
新建CURRENT选择集(如果选择集不存在则新建,如果选择集存在则Clear清空)->用AddItems方法将最后一次选择集的对象放到该选择集中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-7 07:38 , Processed in 0.151343 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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