明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1314|回复: 7

[源码] 谈谈关于加载 vlx 或 fas 无法自动运行其命令的解决办法

[复制链接]
发表于 2020-5-12 15:46 | 显示全部楼层 |阅读模式
本帖最后由 669423907 于 2020-5-12 17:09 编辑

前一段时间,看见有网友发帖提问这样的问题,当时没空回复,现在找不到帖子,同时也希望能引出更合适的方法,因此发一新帖。


本人并不会写什么代码,都是从各位大师那里东拼西凑出来的,不规范之处,还望指正
(defun c:13(/ *error*)
(defun *error*(msg)(c:123))
(if (= (type c:123) 'subr)(c:123)(load "xxx.vlx") )
(princ))

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-5-12 16:18 | 显示全部楼层
  1. (defun c:13 (/)
  2.   (if (/= (type c:j123) 'subr)
  3.    (load "xxx.vlx")
  4.   )
  5.   (c:123)
  6.   (princ)
  7. )
 楼主| 发表于 2020-5-12 17:30 | 显示全部楼层

是我描述的不够清晰,我意思是这样的:

(defun c:13()
(if (= (type c:123) 'subr)(c:123) (progn (load "xxx.vlx") (c:123) ) )
(princ))
无发运行123时,可以尝试以下
(defun c:13(/ *error*)
(defun *error*(msg)(c:123))
(if (= (type c:123) 'subr)(c:123) (load "xxx.vlx"))
(princ))


发表于 2020-5-12 21:13 | 显示全部楼层
本帖最后由 tryhi 于 2020-6-30 00:15 编辑

表述得一点都不清楚,但居然被我看明白了,这个前提是这个VLX或者FAS文件有问题,并没有完全加载完时就报错退出,但是呢又有一部分用得到的功能已经加载进去了,简单来说就是这个文件只能加载一半,所以在后面接(c:123)是没用的,因为根本不会执行,所以定义*error*函数出错后执行


==================分割线====================
续一下贴,既然楼主想引出更合适的方法,那就再回复一下吧,vlx本身有问题而导致只能加载一半的,用vl-catch-all-apply就可以解决,并不需要这么麻烦
(defun c:13()
        (if (= (type c:123) 'subr)(c:123) (progn (vl-catch-all-apply 'load '("xxx.vlx")) (c:123) ) )
        (princ)
)
发表于 2020-5-14 08:16 | 显示全部楼层
谢谢,受教了!
发表于 2020-6-29 19:37 | 显示全部楼层
马克                                                         
发表于 2020-6-30 00:12 | 显示全部楼层
既然楼主想引出更合适的方法,那就再回复一下吧,vlx本身有问题而导致只能加载一半的,用vl-catch-all-apply就可以解决,并不需要这么麻烦
(vl-catch-all-apply 'load '("xxx.vlx"))
(c:123)
 楼主| 发表于 2020-7-2 21:25 | 显示全部楼层
tryhi 发表于 2020-6-30 00:12
既然楼主想引出更合适的方法,那就再回复一下吧,vlx本身有问题而导致只能加载一半的,用vl-catch-all-appl ...

一招 大海无量 非常给力!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 05:14 , Processed in 0.270339 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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