[求助]采用VB对CAD选择集遍历操作时速度超级慢?
我采用VB对CAD选择集遍历操作,但时速度超级慢。而在VBA下面直接操作速度很快。
同样的操作,为啥速度差这么多呢?
vb中主要相关代码如下:
Set SSet = AcadDoc.SelectionSets.Add("Example")
Dim FilterType(0 To 3) As Integer
Dim FilterData(0 To 3) As Variant
FilterType(0) = -4
FilterData(0) = ""
SSet.Select acSelectionSetAll, , , FilterType, FilterData
For Each element In SSet
If (SSet.Item(j).Length =170) Then
''''这里是随便处理语句
End If
Next
在vba中相同的代码(AcadDoc改成ThisDrawing)
当SSET选择集被筛选出来的结果数量达到几百个时,VB中速度慢得让人难以忍受,而VBA中速度相当快。
各位大侠,帮我分析一下,是不是我的思路不对?难道在VB中处理选择集本来就很慢?
真是郁闷啊!!!
把VB代码封装成DLL 封装成dll就能快吗? 封装成dll后在哪里调用?在VBA中? 我就是不想使用VBA才在VB中编的。
请教一下怎么封装 还有一点:是不是封装成dll一定能提高速度?
VBA是与AutoCAD在同一进程中运行,而VB与AutoCAD则非同一进程运行,速度肯定会比VBA中慢。 感谢上面兄弟的回答,我现在的想法是干脆使用VBA,或者直接用VB去控制CAD加载并运行VBA宏算了。
这样简单的多。毕竟我以前的程序就是在VBA下开发的,本来想转移到vb中去,看来难度挺大。
当然我不知道还有没有更好的办法?比如采用其他语言实现?
C#的ARX开发,速度最快 我试试看看ARX,需要现学一把ARX。唉,命苦阿。从LISP到VBA到VB到ARX都要学一遍,试一遍,真的很无奈阿。
用VLisp有什么解决不了的问题,而要转到VBA\ARX?
页:
[1]