AutoCAD.NET实现CAD截图

使用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),或者其他第三方组件(可参考这里)。

posted @ 2017-08-04 18:36  尼克劳斯  阅读(2290)  评论(1编辑  收藏  举报