- UID
- 775380
- 积分
- 21
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2018-4-18
- 最后登录
- 1970-1-1
|
发表于 2018-8-4 20:37:03
|
显示全部楼层
使用C#实现AutoCAD截图目前了解的方式有以下几种:
1、使用CAD的Export、JPGOUT、PNGOUT,可以将选择集中的实体导出成图片,但要借助COM的接口先设置ActiveSelectionSet(AutoCAD.NET接口的SetImpliedSelection好像不行),然后再使用COM或者发送命令的方式调用Export、JPGOUT、PNGOUT等命令进行截图,参考代码如下(只测试了EXPORT,没有测试JPGOUT、PNGOUT等其他方式):
object oCad = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
Type tpCad = oCad.GetType();
object oDoc = tpCad.InvokeMember("ActiveDocument", System.Reflection.BindingFlags.GetProperty, null, oCad, null);
Type tpDoc = oDoc.GetType();
object ass = tpDoc.InvokeMember("ActiveSelectionSet", System.Reflection.BindingFlags.GetProperty, null, oDoc, null);
tpDoc.InvokeMember("Export", System.Reflection.BindingFlags.InvokeMethod, null, oDoc, new object[] { path + "\\abc", "WMF", ass });
ed.SetImpliedSelection(new ObjectId[] { });
2、使用View.GetSnapshot进行抓屏,具体可以参考这里。
3、使用打印功能将DWG图纸打印成PDF,然后再将PDF转成图片,其中导出PDF应该也是需要调用CAD的COM接口来实现,而PDF转图片可以使用Adobe的COM组件(Adobe Acrobat xx Type Library),或者其他第三方组件(可参考这里)。 |
|