找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: qq12345

[LISP程序]:为什么如下一小段lisp程序会导至autocad致命错?

[复制链接]
 楼主| 发表于 2002-11-12 00:09:39 | 显示全部楼层
这样看来,是acad2000有问题,在acad2002下不会有这个问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-12 00:11:28 | 显示全部楼层
如果有问题,你可以把程序贴上来,大家才好提建议。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-12 22:39:29 | 显示全部楼层
如下arx片段,line2执行1次多(约2500次循环),即产生致命错,而line1,执行10次(生成2万条
直线,也不产生致命错.
int line1()
{
        struct resbuf *rb;
        ads_point pt1={3,3,0},pt2={8,8,0};
       
        for(int i=0;i<2000;i++)
        {
            rb=acutBuildList(RTDXF0,"LINE",10,pt1,11,pt2,0);
            acdbEntMake(rb);
            acutRelRb(rb);
        }
        return 1;
}

int line2()
{
        ads_point pt1={3,3,0},pt2={8,8,0};
        ads_command(RTSTR,"cmdecho",RTSTR,"0",0);
        for(int i=0;i<2000;i++)
        {
            ads_command(RTSTR,"line",RTPOINT,pt1,RTPOINT,pt2,RTSTR,"",0);
                ads_printf("\n%d",i);
        }
        return 1;
}
以上两函数,完成同样的功能,一个因为使用Command导至致命错,另一个使用entmake,
工作得很好.另外即使是line2,在dos cad12.0循环几万次,也不会出错。
我认为这是acad2000的lisp解释器有问题,我又用scr文件写下几千行重复画线,同样
产生至命错,难道,在acad2000下手工鍵入2500条命令后,同样会令acad200崩溃?
即使我程序中不使用command,在我在编辑图形时,总还要打入command命令啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-12 23:02:06 | 显示全部楼层
最初由 qq12345 发布
[B]如下arx片段,line2执行1次多(约2500次循环),即产生致命错,而line1,执行10次(生成2万条
直线,也不产生致命错.
int line1()
{
        struct resbuf *rb;
        ads_point pt1={3,3,0},pt2={8,8,0};
       
        for(int i=0;i... [/B]


真如你所说,也不会影响到交互上的,只能解释程序循环时间很快,可能造成可能的错误(未定)。

你别生成同一条线,你每个循环里面,修改下顶点,生成新的线,看看结果如何?

另外,别在2000下了,早该升级了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-12 23:10:38 | 显示全部楼层
我试过,修改成2000条平行线,同样出错。另,我是想升2002,可单位上想。
手头上没acad2002,不知其上如何?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-12 23:12:20 | 显示全部楼层
最初由 qq12345 发布
[B]我试过,修改成2000条平行线,同样出错。另,我是想升2002,可单位上想。
手头上没acad2002,不知其上如何? [/B]


朋友不是回复你了吗,没有问题在2002上。2000我也估计不应该有问题,可能是你的机器环境的其他因素吧。没有2000,帮你测试不了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-12 23:19:33 | 显示全部楼层
我单位上的机器和我家里的机器,均发生同样的情况。另外,在autocad14.0上试,虽好一点
也同样会出现致命错,看来只能升acad2002了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 06:31 , Processed in 0.281468 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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