- 积分
- 619
- 明经币
- 个
- 注册时间
- 2003-9-19
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
楼主 |
发表于 2005-6-24 09:59:00
|
显示全部楼层
我提问题的时候一般都搜索了一下论坛,可是我水平有限,到现在都不知道用什么关键字才能搜索到我要的答案,能不能告知我用什么关键字搜索?谢谢!
我希望用户选择多个DWG文件,我的程序将它们合并成一个DWG文件,最初我的插入文件使用了InsertBlock:
block = autoCadApp.ActiveDocument.ModelSpace.InsertBlock(insertPoint,cadFileName,1,1,1,0); block.Explode();
此方法有两个问题: 1.当插入的文件比较大(10M),内存占用达到几百M,运行时间也要十几分钟,感觉就像程序死了,而直接用CAD的命令插入文件则很快,内存占用也不大。 2.在Explode时也会将MText炸开成Text,而且图层变成当前图层。
因此我现在使用SendCommand的方法插入文件:
string command = string.Format("-insert \"*{0}\"\n0 1 0 ",cadFileName); autoCadApp.ActiveDocument.SendCommand(command);
此方法也有两个问题: 1.使用SendCommand时,CAD会自动取消隐藏状态,将CAD界面显示出来,用户可以操作CAD,可能导致我程序出现“RPC服务不可用”的错误。 2.用此方法可能会弹出选择字体的对话框,需要人工干预才能继续,所以我想在插入文件前屏蔽选择字体对话框,插入完成后恢复选择字体。
不知道有没有更好的解决方案?
BTW:我用的是AutoCAD2002 |
|