明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2294|回复: 9

lisp程序把AutoCAD搞垮了

[复制链接]
发表于 2003-10-14 15:51:00 | 显示全部楼层 |阅读模式
我编的lisp程序中需要多次(成千上万次)调用AutoCAD命令,如:
(command "_.ucs"...)
(command "_.insert" ...)
(command "_.interfere" ...)
等等,多次运行发现,在同样的情况下,每次运行一段时间(时间长短不定)后,在命令行出现

“指定窗口角点,输入比例因子 (nX 或 nXP),或
[全部(A)/中心点(C)/动态(D)/范围(E)/上一个(P)/比例(S)/窗口(W)] <实时>: ”

这是zoom命令的提示,但程序中并没有zoom命令。
出现提示后,任意按键,随后出现两个对话框:

“致命错误:Unhandled Access Violation Reading 0xfffff0b2 Exception at 659a5021h”

“AutoCAD无法继续,但从最后一个命令开始对图形所做的任何修改都可以得到保存。是否保存所做的修改?”
然后,AutoCAD就退出了。

为了找出原因,我把程序进行了大改,还是这个问题,把command改成VL-CmdF也没有用。最后,我把所有的调用AutoCAD命令的语句注释掉,程序可以安全运行了,但达不到原来的功能。

请问各位高手,到底是什么原因造成这种情况,还能使AutoCAD崩溃?
发表于 2003-10-14 16:14:00 | 显示全部楼层
你得给个东西让人调试啊,程序,图。
这种不确定的错误是不能笼统地说的,而且我也没遇到过,
 楼主| 发表于 2003-10-14 16:26:00 | 显示全部楼层
我的程序很大,不能直接贴上来。不过,我编了个试验程序,同样是这个问题:
(defun test(/ tt)
  (setq tt 10000)
  (while (> (setq tt (1- tt)) 0)
    (progn
      (command "ucs" "")
      (print tt)
    )
  )
)

多试几次,就出现了,10000还可以改更大。
发表于 2003-10-14 17:09:00 | 显示全部楼层
其实可以看出,从这么简单一个程序,应该很明显程序本身没有问题,这样如果出错,肯定就是系统的问题了,就像我们平常使用时都会出错退出一样。这可能还是盗版系统不稳定吧,我有不太清楚了。
有什么程序需要调用这么多的command,如果这样实在不行,应该想想别的办法,尽量少用一些command
 楼主| 发表于 2003-10-14 17:21:00 | 显示全部楼层
用command也是没办法,因为AutoCAD的三维实体数据不能提取出来,而且AutoCAD有检测干涉的interfere命令,不用自己再编了。
那个小程序在版主的计算机上运行有问题吗?
发表于 2003-10-14 17:23:00 | 显示全部楼层
我试了好多次了,没有出现错误。我是2004版的
 楼主| 发表于 2003-10-14 17:34:00 | 显示全部楼层
我用的是2000,换2004试试
发表于 2003-10-14 18:26:00 | 显示全部楼层
设置断点找到出错的地方,然后复制到命令行中试一下。
发表于 2003-10-14 18:59:00 | 显示全部楼层
gzy发表于2003-10-14 18:26:00设置断点找到出错的地方,然后复制到命令行中试一下。



就这么几句,还要设置断点?
而且是10000次循环,不知道哪次会出错,你准备调试到什么时候?
这是系统不稳定而出现的错误,程序本身并没有问题
 楼主| 发表于 2003-10-14 20:49:00 | 显示全部楼层
刚试了一下,在AutoCAD2004中没有问题,看来是2000版的bug,多谢版主。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 14:29 , Processed in 0.191883 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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