Oceanable 发表于 2019-8-1 08:30:31

CopyObjects 函数在 CAD2012 中变慢


使用 CopyObjects 函数编制了一个合并图纸的小程序,技术细节就是遍历图纸中的每个对象,然后将其复制到当前图纸了。在CAD 2007 2008 64Bit里面运行非常的快,但是到了 cad 2012 64Bit 就变成蜗牛了。无意中打开任务管理器,发现 CAD 2012 与 VBA Enabler 64 是互相独立运行的两个 windows 程序。是因为这个原因么?还是因为别的技术因素?
:handshake

风言无际 发表于 2019-8-1 17:23:04

CopyObjects这个方法没用过,不了解它的用法。
你说的合并图纸,不知道是不是说多张图纸的内容合并到一张图上,并保持原来的坐标不变,就像CAD的粘贴到原坐标一样。如果是这样的话,你可以换个思路试试:用AcadSelection选择集acSelectionAll方法选择屏幕中所有对象,然后用CopyObjects复制,不知道这样操作行不行的通。

Oceanable 发表于 2019-8-1 17:32:44

对的,就是将多张图纸内容放到一个图纸中,坐标不变的。以前尝试过用键盘事件 Ctrl + all 然后选择黏贴失败了,,,那我试试你这个建议 :handshake

风言无际 发表于 2019-8-1 20:43:34

本帖最后由 风言无际 于 2019-8-1 20:47 编辑

Oceanable 发表于 2019-8-1 17:32
对的,就是将多张图纸内容放到一个图纸中,坐标不变的。以前尝试过用键盘事件 Ctrl + all 然后选择黏贴失败 ...
你试一下这个方法 InsertBlock。它可以直接插入图形文件,避免了一个个遍历对象的问题。

zzyong00 发表于 2019-8-2 16:10:56

跨进程,肯定很慢

Oceanable 发表于 2019-8-2 17:05:50

zzyong00 发表于 2019-8-2 16:10
跨进程,肯定很慢

真的是一步步逼 VBA 退位了 :(

Oceanable 发表于 2019-8-2 17:07:08

真的是一步步逼 VBA 退位了 :(

Oceanable 发表于 2019-8-2 17:11:15

真的是一步步逼 VBA 退位了 :(

xinxirong 发表于 2019-8-11 21:57:22

说啥好了    。
页: [1]
查看完整版本: CopyObjects 函数在 CAD2012 中变慢