明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1566|回复: 4

[已解答] [已解决][求助] 获取 工程文件搜索路径时 :Automation 错误 获取惯用选项特性时出错

[复制链接]
发表于 2014-1-19 15:53 | 显示全部楼层 |阅读模式
本帖最后由 liyamg 于 2014-1-19 19:31 编辑

(vla-GetProjectFilePath (vla-get-files (vla-get-Preferences (vlax-get-acad-object))) "xx")
(vlax-invoke-method (vla-get-files (vla-get-Preferences (vlax-get-acad-object)))  'GetProjectFilePath "xx")

以上两句在获取 “工程文件路径”时,如果“xx” 不存在,只有“常用”,见下图,则报错:
Automation 错误  获取惯用选项特性时出错。

有什么办法判断,“xx” 是否存在呢?

本帖子中包含更多资源

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

x
 楼主| 发表于 2014-1-19 16:04 | 显示全部楼层
因为工作中,要引用大量的外部参照,路径需要批量更新。
发表于 2014-1-19 17:53 | 显示全部楼层
用vl-catch-all-apply 和vl-catch-all-error-p进行判断。
 楼主| 发表于 2014-1-19 19:30 | 显示全部楼层
多谢 lijiao 的指导,
又参考了G版的帖子 http://bbs.mjtd.com/thread-100616-1-1.html
问题解决了:
(defun C:tt (/)
  (setq        d2
         (VL-CATCH-ALL-APPLY
           'vla-GetProjectFilePath
           (list
             (vla-get-files (vla-get-Preferences (vlax-get-acad-object)))
             "xx"
           )
         )
  )
  (if (VL-CATCH-ALL-ERROR-P d2)
    (alert (VL-CATCH-ALL-ERROR-MESSAGE d2)) ;或者其他程序
  )
)
发表于 2014-1-20 10:18 | 显示全部楼层
安全调用所有函数
(defun cs-get-vba (fun lst / out)
  (if (vl-catch-all-error-p
        (setq out (vl-catch-all-apply fun lst))
      )
    nil
    out
  )
)

例如:
_$ (/ 2 0)
; 错误: 除数为零
_$ (cs-get-vba '/ '(2 0))
nil
_$ (cs-get-vba '/ '(2 1))
2
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-20 04:33 , Processed in 0.201534 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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