用C#進行AutoCAD開發PDF列印機,會遇到列印位置偏差的情況,通過查詢資料,這些因為坐標系不同的原因,畫圖使用的是UCS坐標,列印使用的是DCS坐標,
根據查對資料,有三種解決方法:
第一種:參考http://bbs.mjtd.com/thread-169479-1-1.html,對于視圖方向與Z軸平行的情況,先Point3d ptTarget = Application.GetSystemVariable("TARGET");然后將列印范圍的X和Y分別減去ptTarget的X和Y值即可,
第二種:參考https://www.jixie5.com/jiaocheng/476.html,在圖紙中將TARGET恢復成默認值:0,0,0,
第三種:參考https://www.cnblogs.com/suncoolcat/p/3395455.html,利用ObjectARX 中有acedTrans()函式,進行坐標轉換,該參考文章中,使用的CAD版本為CAD2014前的,對應CAD2014后的,呼叫方法改為:
[DllImport("accore.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "acedTrans")] private static extern int acedTrans(double[] point, IntPtr fromResbuf, IntPtr toResbuf, int displacement, double[] result);
其它方法不變,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/276880.html
標籤:C#
