自动加载,不能运行,重新加载后就可以了
有一个程序,手动加载可以运行,但是自动加载运行就会出错,如果再手动加载一次后,就可以了,这是什么情况?还有,error函数能不能用来检查程序运行到哪一行出错的,这样方便查错?
error不能!
有可能是你两个程序的参数用重了
你先把所有自动加载的程序都取消,然后只加载这一个程序试试看!
就能知道是不是这个问题了! ;;用error函数帮助你检查哪一行出错了
(Defun *Error* (st)
(vl-bt)
) phoenixdjq 发表于 2013-11-14 11:07 static/image/common/back.gif
error不能!
有可能是你两个程序的参数用重了
你先把所有自动加载的程序都取消,然后只加载这一个程序试试 ...
参数用重了?因为我很多子程序很多程序都有在用,所以变量定义一般不会改,但是里面的变量都是局部变量,难道这个也有影响? fwdll 发表于 2013-11-15 10:08 static/image/common/back.gif
参数用重了?因为我很多子程序很多程序都有在用,所以变量定义一般不会改,但是里面的变量都是局部变量, ...
局部变量不会影响,全局变量会影响,但你的情况可能是子函数和哪个程序重名了。
检查一下在这个程序后面自动加载的程序,看看子函数名是否冲突。 ll_j 发表于 2013-11-15 10:22 static/image/common/back.gif
局部变量不会影响,全局变量会影响,但你的情况可能是子函数和哪个程序重名了。
检查一下在这个程序后面 ...
子程序应该不会和主程序名同名,因为我子程序名都是sub开头的,我再查查看吧。谢了。 fwdll 发表于 2013-11-18 09:02 static/image/common/back.gif
子程序应该不会和主程序名同名,因为我子程序名都是sub开头的,我再查查看吧。谢了。
不是主程序和子程序同名,是不同程序的子程序同名。
主程序加前缀是好方法,但仅加一个sub是没有意义的,可以加程序名。
我是这样加的,如文件名为“abc”,则子程序均以“abc_”为前缀,全局变量均以"abc:“为前缀,这样重名冲突的概率会降到最低。 ll_j 发表于 2013-11-18 09:10 static/image/common/back.gif
不是主程序和子程序同名,是不同程序的子程序同名。
主程序加前缀是好方法,但仅加一个sub是没有意义的, ...
哦,那肯定是子程序重名了,十分感谢。 我按ll_j的方法,把子程序重新定义,可以了。 手动把lisp命令复制到CAD中命令行即可!然后再用AP→启动组→加载。完成!
页:
[1]