明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3849|回复: 9

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

[复制链接]
发表于 2013-11-14 10:12:50 | 显示全部楼层 |阅读模式
有一个程序,手动加载可以运行,但是自动加载运行就会出错,如果再手动加载一次后,就可以了,这是什么情况?
还有,error函数能不能用来检查程序运行到哪一行出错的,这样方便查错?
发表于 2013-11-14 11:07:07 | 显示全部楼层
error不能!
有可能是你两个程序的参数用重了
你先把所有自动加载的程序都取消,然后只加载这一个程序试试看!
就能知道是不是这个问题了!
发表于 2013-11-14 11:10:11 | 显示全部楼层
;;用error函数帮助你检查哪一行出错了
(Defun *Error* (st)
  (vl-bt)
)
 楼主| 发表于 2013-11-15 10:08:28 | 显示全部楼层
phoenixdjq 发表于 2013-11-14 11:07
error不能!
有可能是你两个程序的参数用重了
你先把所有自动加载的程序都取消,然后只加载这一个程序试试 ...

参数用重了?因为我很多子程序很多程序都有在用,所以变量定义一般不会改,但是里面的变量都是局部变量,难道这个也有影响?
发表于 2013-11-15 10:22:41 | 显示全部楼层
fwdll 发表于 2013-11-15 10:08
参数用重了?因为我很多子程序很多程序都有在用,所以变量定义一般不会改,但是里面的变量都是局部变量, ...

局部变量不会影响,全局变量会影响,但你的情况可能是子函数和哪个程序重名了。
检查一下在这个程序后面自动加载的程序,看看子函数名是否冲突。
 楼主| 发表于 2013-11-18 09:02:44 | 显示全部楼层
ll_j 发表于 2013-11-15 10:22
局部变量不会影响,全局变量会影响,但你的情况可能是子函数和哪个程序重名了。
检查一下在这个程序后面 ...

子程序应该不会和主程序名同名,因为我子程序名都是sub开头的,我再查查看吧。谢了。
发表于 2013-11-18 09:10:20 | 显示全部楼层
fwdll 发表于 2013-11-18 09:02
子程序应该不会和主程序名同名,因为我子程序名都是sub开头的,我再查查看吧。谢了。

不是主程序和子程序同名,是不同程序的子程序同名。
主程序加前缀是好方法,但仅加一个sub是没有意义的,可以加程序名。
我是这样加的,如文件名为“abc”,则子程序均以“abc_”为前缀,全局变量均以"abc:“为前缀,这样重名冲突的概率会降到最低。
 楼主| 发表于 2013-11-18 09:13:17 | 显示全部楼层
ll_j 发表于 2013-11-18 09:10
不是主程序和子程序同名,是不同程序的子程序同名。
主程序加前缀是好方法,但仅加一个sub是没有意义的, ...

哦,那肯定是子程序重名了,十分感谢。
 楼主| 发表于 2013-11-18 09:58:18 | 显示全部楼层
我按ll_j的方法,把子程序重新定义,可以了。
发表于 2013-11-21 00:07:48 | 显示全部楼层
手动把lisp命令复制到CAD中命令行即可!然后再用AP→启动组→加载。完成!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-25 04:31 , Processed in 0.169107 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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