明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2889|回复: 3

[函数] 已解决!vla-get-activeselectionset报错的问题

[复制链接]
发表于 2011-4-12 11:33 | 显示全部楼层 |阅读模式
本帖最后由 xiaxiang 于 2011-4-13 10:16 编辑

为何我一运行这个代码段就报错?
  1. (vlax-for obj (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad-object)))
  2.     (vla-offset obj dist)
  3.     (vla-offset obj (* dist -1))
  4.     )
复制代码

报错:错误: Automation 错误。 调用方法 Clear (接口 IAcadSelectionSet) 失败

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2011-4-13 10:13 | 显示全部楼层
首先感谢gu_xl版主的回复。
问题已解决!阐述如下:
很多同仁用如下方法操作当前选择集,都是相同的问题。
  1. (vlax-for obj (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad-object)))
  2. ...
  3. )
复制代码
使用第一次很成功,第二次则报错
错误: Automation 错误。 调用方法 Clear (接口 IAcadSelectionSet) 失败
为何?
没有及时清空选择集!
所以都请在之前执行此函数,以保证程序顺利执行。

  1. (defun Clearcset (/ cset)
  2. (if (not (vl-catch-all-error-p     
  3. (setq cset (vl-catch-all-apply 'vla-item (list(vlax-get-property (vlax-get-property (vlax-get-acad-object) 'activedocument ) 'selectionsets)"CURRENT")))
  4.               )      
  5.       )   
  6. (vla-delete cset)  
  7. )
  8. (princ)
  9. )

回复 支持 0 反对 1

使用道具 举报

发表于 2011-4-12 11:40 | 显示全部楼层
本帖最后由 Gu_xl 于 2011-4-12 11:41 编辑

回复 xiaxiang 的帖子

不是所有的物体都能offset,有些物体即使可以offset,但因偏移距离不满足要求,也可能导致offset失败!请用vl-catch-apply执行,以避免程序暴尸街头!
发表于 2011-4-26 07:41 | 显示全部楼层
回复 xiaxiang 的帖子

你的程序也缺少条件,为什么不判断一个类型再OFFSET呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-18 20:31 , Processed in 0.316293 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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