AutoCAD.NET實現CAD截圖
阿新 • • 發佈:2017-08-04
col lag flags pdf 方式 調用 沒有 cat com
使用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),或者其他第三方組件(可參考這裏)。
AutoCAD.NET實現CAD截圖