JackStone 发表于 2022-7-6 06:18:08

使用LISP runni创建表

下午好
 
在我的工作中,有必要创建表格(BOM表),我已经用一些AutoLISP程序自动化了这个过程。
 
问题是,当我收集和组织完数据,到了实际绘制表格的时候,程序就永远无法完成任务。
 
例如,一个表有6列和可变行数。如果我创建它,比如说,10行,程序将运行得相当快,只需要几秒钟来绘制表格。
 
然而,如果我试图创建这个包含100(一百)行的表,那么程序需要40(四十)分钟才能完成任务!这在一定程度上取决于计算机硬件,但并不那么重要。
 
我用来创建表的方法是vla AddTable等。我首先创建一个具有最终行数和列数的空表,然后继续设置每个单元格的内容(始终是字符串)和单元格的类型(“数据”、“标题”或“标题”)。
 
如果必要的话,我可以在这里发布代码,但有点长,我觉得上面的解释应该足够清楚了。
 
所以我的问题是:为什么AutoCAD要花这么长时间来绘制表格?经过的时间与表的大小不成线性比例。为什么会这样?
 
我知道这个问题有一些解决方法(例如将表格绘制为分解文本和线条,或者将100行表格划分为20个5行表格,这些表格可以快速单独绘制),但我想在尝试以另一种方式解决问题之前更好地理解这个问题。
 
那么,以前有人遇到过这样的困难吗?有给我的提示吗?
 
我提前感谢你们的时间和兴趣!

Lee Mac 发表于 2022-7-6 06:55:51

我建议在修改表内容之前将RegeneratTableSupported属性设置为:vlax true,并在执行所有操作后将其设置回:vlax false。

JackStone 发表于 2022-7-6 06:58:54

好极了很有魅力,李!实际上,在两秒钟内创建了一个200行的表格。
 
你又一次救了我那些草率的程序!
 
非常感谢你!此主题现在可能已结束。

Lee Mac 发表于 2022-7-6 07:23:50

不客气,杰克
页: [1]
查看完整版本: 使用LISP runni创建表