找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1044|回复: 12

[求助] 同一个DWG文件中,多次调用ARX命令后,ARX运行越来越慢

[复制链接]
发表于 2018-7-1 17:19:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
自己写了一个ARX程序,主要功能是在一个给定的空间内尽可能多的填充,首次填充很快就完成,但是后面再调用时,速度越来越慢,有时是首次的4-5倍时间;但是,如果这时把整个CAD程序关闭再打开,速度就会恢复。不知道这会是哪方面影响的,要怎么解决呢?
希望有经验的朋友能指点一下,困在这个地方很久了,非常感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 5060个

财富等级: 富甲天下

发表于 2018-7-2 18:17:34 来自手机 | 显示全部楼层
你多画一条线填充都会慢一点啦
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-2 22:25:10 | 显示全部楼层
代码比较简单,就是两层while结构
while(n<max1)
{...
m=0;
while(m<max2)
{
....
insertblock();
++m;
}
++n
}



点评

为什么要用两层循环呢? 什么样的区域,什么样的尽可能多的填充,有图吗? 你把 insertblock()注释掉,然后执行,看看速度还慢不,如果正常,说明你insertblock里面的问题。  详情 回复 发表于 2018-7-2 22:49
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-2 22:28:12 | 显示全部楼层
xinxirong 发表于 2018-7-2 18:17
你多画一条线填充都会慢一点啦

插入很多次,然后我在两层循环结束后,CAD文件里面都用undo撤销了所有插入,只记下m和n的值,这样也会影响吗?
感谢你的回复!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-2 22:30:43 | 显示全部楼层
xinxirong 发表于 2018-7-2 18:17
你多画一条线填充都会慢一点啦

插入很多次,然后我在两层循环结束后,CAD文件里面都用undo撤销了所有插入,只记下m和n的值,这样也会影响吗?
感谢你的回复!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-7-2 22:49:36 | 显示全部楼层
fengdaoge 发表于 2018-7-2 22:25
代码比较简单,就是两层while结构
while(n

为什么要用两层循环呢? 什么样的区域,什么样的尽可能多的填充,有图吗?

你把 insertblock()注释掉,然后执行,看看速度还慢不,如果正常,说明你insertblock里面的问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-2 22:52:55 | 显示全部楼层
marting 发表于 2018-7-2 22:49
为什么要用两层循环呢? 什么样的区域,什么样的尽可能多的填充,有图吗?

你把 insertblock()注释掉 ...

注释过,也不行;
另外补充一下,在填充的时候会生成很多的辅助线,用来检测即将填充的块与周边可能存在的物体的相对位置,不知道这个会不会有影响到性能?

点评

那你那些....是什么? 肯定有你没说的影响了。 为什么不贴完整的代码呢?写代码不能靠猜啊。  详情 回复 发表于 2018-7-2 23:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2018-7-2 23:00:32 | 显示全部楼层
fengdaoge 发表于 2018-7-2 22:52
注释过,也不行;
另外补充一下,在填充的时候会生成很多的辅助线,用来检测即将填充的块与周边可能存在 ...

那你那些....是什么? 肯定有你没说的影响了。
为什么不贴完整的代码呢?写代码不能靠说和猜啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-2 23:01:17 | 显示全部楼层
marting 发表于 2018-7-2 22:49
为什么要用两层循环呢? 什么样的区域,什么样的尽可能多的填充,有图吗?

你把 insertblock()注释掉 ...

类似上图这样的寻路过程,不碰到长方体,并且当检测到已有的路径时,会自动安装前一条路径走,

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

使用道具 举报

 楼主| 发表于 2018-7-2 23:06:06 | 显示全部楼层
代码太长了,不好贴啊,另外还有其他部分是别人写的,我这边没有完整的工程。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-3 10:05:18 | 显示全部楼层
marting 发表于 2018-7-2 22:49
为什么要用两层循环呢? 什么样的区域,什么样的尽可能多的填充,有图吗?

你把 insertblock()注释掉 ...

今天减少了辅助线检测密度,效果好一些了,难道ARX运行和图形里总共生产过的图元有关系吗?
现在还有一个问题就是关闭dwg重新打开又好了,是不是说关闭后清理了一些东西呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-7-3 10:17:21 | 显示全部楼层
没法说,就是同一个算法,不同的人写出来效率也可能不一样,和你用的数据结构有关,代码有没有内存泄露等等,你越执行越慢,很大可能是代码耗费了资源原来越多而没清理。你不贴代码,提供不了其他建议。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 11:42 , Processed in 0.477095 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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