fwdll 发表于 2013-11-14 10:12:50

自动加载,不能运行,重新加载后就可以了

有一个程序,手动加载可以运行,但是自动加载运行就会出错,如果再手动加载一次后,就可以了,这是什么情况?
还有,error函数能不能用来检查程序运行到哪一行出错的,这样方便查错?

phoenixdjq 发表于 2013-11-14 11:07:07

error不能!
有可能是你两个程序的参数用重了
你先把所有自动加载的程序都取消,然后只加载这一个程序试试看!
就能知道是不是这个问题了!

自贡黄明儒 发表于 2013-11-14 11:10:11

;;用error函数帮助你检查哪一行出错了
(Defun *Error* (st)
(vl-bt)
)

fwdll 发表于 2013-11-15 10:08:28

phoenixdjq 发表于 2013-11-14 11:07 static/image/common/back.gif
error不能!
有可能是你两个程序的参数用重了
你先把所有自动加载的程序都取消,然后只加载这一个程序试试 ...

参数用重了?因为我很多子程序很多程序都有在用,所以变量定义一般不会改,但是里面的变量都是局部变量,难道这个也有影响?

ll_j 发表于 2013-11-15 10:22:41

fwdll 发表于 2013-11-15 10:08 static/image/common/back.gif
参数用重了?因为我很多子程序很多程序都有在用,所以变量定义一般不会改,但是里面的变量都是局部变量, ...

局部变量不会影响,全局变量会影响,但你的情况可能是子函数和哪个程序重名了。
检查一下在这个程序后面自动加载的程序,看看子函数名是否冲突。

fwdll 发表于 2013-11-18 09:02:44

ll_j 发表于 2013-11-15 10:22 static/image/common/back.gif
局部变量不会影响,全局变量会影响,但你的情况可能是子函数和哪个程序重名了。
检查一下在这个程序后面 ...

子程序应该不会和主程序名同名,因为我子程序名都是sub开头的,我再查查看吧。谢了。

ll_j 发表于 2013-11-18 09:10:20

fwdll 发表于 2013-11-18 09:02 static/image/common/back.gif
子程序应该不会和主程序名同名,因为我子程序名都是sub开头的,我再查查看吧。谢了。

不是主程序和子程序同名,是不同程序的子程序同名。
主程序加前缀是好方法,但仅加一个sub是没有意义的,可以加程序名。
我是这样加的,如文件名为“abc”,则子程序均以“abc_”为前缀,全局变量均以"abc:“为前缀,这样重名冲突的概率会降到最低。

fwdll 发表于 2013-11-18 09:13:17

ll_j 发表于 2013-11-18 09:10 static/image/common/back.gif
不是主程序和子程序同名,是不同程序的子程序同名。
主程序加前缀是好方法,但仅加一个sub是没有意义的, ...

哦,那肯定是子程序重名了,十分感谢。

fwdll 发表于 2013-11-18 09:58:18

我按ll_j的方法,把子程序重新定义,可以了。

混沌初开 发表于 2013-11-21 00:07:48

手动把lisp命令复制到CAD中命令行即可!然后再用AP→启动组→加载。完成!
页: [1]
查看完整版本: 自动加载,不能运行,重新加载后就可以了