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