用LISP调用一个VLX程序命令,么有调用成功什么情况?
本帖最后由 江南十笑 于 2020-5-4 09:46 编辑用LISP调用一个VLX程序命令,没有调用成功什么情况?(defun C:TT ()
(if (not (member 'ddmodify (vl-list-loaded-vlx)))
(load "DBJY.VLX")
)
;(initget "F D")
;(setq SYN (getkword "\n大板加腋,请您选择选择方式(F[框选]/D[点选(默认)])"))
;(if ( null SYN ) (setq SYN "D"))
;(if ( = "F" SYN )
;(c:uK)(c:uJ)
;)
;(load "DBJY.VLX")
(c:UK)
;(vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "UK")
)
论坛上搜到的各种调用语句都试了 包括command 都是程序加载 就没有后续了 但是手动输入UK又可以执行程序
(defun c:xxx ()
(if (null c:xxxx)
(load "C:/.../.../.../.../...lsp")
)
(c:xxxx)
(princ)
)
大板加腋的程序能分项一下吗 cghdy 发表于 2020-5-4 15:54
(defun c:xxx ()
(if (null c:xxxx)
(load "C:/.../.../.../.../...lsp")
试验了调用不了 程序你留个邮箱我发你不是我编的以前公司的 江南十笑 发表于 2020-5-4 21:42
试验了调用不了 程序你留个邮箱我发你不是我编的以前公司的
谢谢啦,1782067553@qq.com 有没有大佬知道解决方法啊 按道理要运行vlx里边的哪个命令或者哪个函数,直接检测它就行了。。。(vl-list-loaded-vlx)好象并不一定能真实返回所加载的VLX...反正我测试过一个vlx,不管通过APPLOAD命令加载还是load加载,事实上都加载成功了,但(vl-list-loaded-vlx)返回的是nil...
另外,建议load后边的vlx带上全路径...
(or c:uk(load "D:\\xxxxx\\xxxx\\DBJY.VLX"))
(c:uk) llsheng_73 发表于 2020-5-10 18:56
按道理要运行vlx里边的哪个命令或者哪个函数,直接检测它就行了。。。(vl-list-loaded-vlx)好象并不一定能 ...
谢谢我现在遇到的问题是能加载成功但是调用不了必须手动输入uk或者用另外写个lisp用(c:uk)调用也就是不了一次性加载 和输入命令调用感觉加载完后续命名就被打断了 (c:uk)无效 接道理不会出现这种情况,除非加载过程出错,比如原VLX里边除了定义(C:UK) 外,再它后边多加一个出错的语句,比如(+ "1" "2"),这样如果通过命令appload是能加载的,也能使用c:uk,但是由于加载过程它会运行到这个出错语句,导致后续无法继续。。。也就是加载语句之后的语句无法继续,因为加载过程运行到(+"1""2") 出错了,后边的(c:uk)根本运行不到,具体什么原因估计你得先把VLIDE打开,设置出错中断,然后在命令行通过appload加载它试试有没有加载过程出错才能确定 (defun C:TT ()
(if (not (member 'UK(vl-list-loaded-vlx)))
(load "DBJY.VLX")
)
(c:UK)
)
页:
[1]