已解决!vla-get-activeselectionset报错的问题
本帖最后由 xiaxiang 于 2011-4-13 10:16 编辑为何我一运行这个代码段就报错? (vlax-for obj (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad-object)))
(vla-offset obj dist)
(vla-offset obj (* dist -1))
)
报错:错误: Automation 错误。 调用方法 Clear (接口 IAcadSelectionSet) 失败
首先感谢gu_xl版主的回复。
问题已解决!阐述如下:
很多同仁用如下方法操作当前选择集,都是相同的问题。
(vlax-for obj (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad-object)))
...
)使用第一次很成功,第二次则报错
错误: Automation 错误。 调用方法 Clear (接口 IAcadSelectionSet) 失败
为何?
没有及时清空选择集!
所以都请在之前执行此函数,以保证程序顺利执行。
(defun Clearcset (/ cset)
(if (not (vl-catch-all-error-p
(setq cset (vl-catch-all-apply 'vla-item (list(vlax-get-property (vlax-get-property (vlax-get-acad-object) 'activedocument ) 'selectionsets)"CURRENT")))
)
)
(vla-delete cset)
)
(princ)
)
本帖最后由 Gu_xl 于 2011-4-12 11:41 编辑
回复 xiaxiang 的帖子
不是所有的物体都能offset,有些物体即使可以offset,但因偏移距离不满足要求,也可能导致offset失败!请用vl-catch-apply执行,以避免程序暴尸街头! 回复 xiaxiang 的帖子
你的程序也缺少条件,为什么不判断一个类型再OFFSET呢
页:
[1]