操作cad等方式有很多,比如C,C++,vb、lisp(效率最高,但是語言結構性太差)和C#,因為我等個人習慣和方便等原因,在此講解一下用C#操作流程,後續會更新操作圖層、擴展數據、繪圖等操作步驟。當然前提是電腦上用cad程式,要不然沒法調試喲! 1、第一步新建C#解決方案,然後新建類庫。 2、引用 ...
操作cad等方式有很多,比如C,C++,vb、lisp(效率最高,但是語言結構性太差)和C#,因為我等個人習慣和方便等原因,在此講解一下用C#操作流程,後續會更新操作圖層、擴展數據、繪圖等操作步驟。當然前提是電腦上用cad程式,要不然沒法調試喲!
1、第一步新建C#解決方案,然後新建類庫。
2、引用cad內部dll介面。
引用acdbmgd.dll和acmgd.dll,它們在cad安裝目錄都能很容易找到。
別忘了引用後修改dll屬性為複製到本地。
3、引用命名空間。
其實這一步可有可無,因為如果vs裡面有類似resharp等插件等話,需要等時候會只能提示引用。在此把常用的命名空間寫一下:
using Autodesk.AutoCAD.DatabaseServices;// (Database, DBPoint, Line, Spline) using Autodesk.AutoCAD.Geometry ;//(Point3d, Line3d, Curve3d) using Autodesk.AutoCAD.ApplicationServices;// (Application, Document) using Autodesk.AutoCAD.Runtime;// (CommandMethodAttribute, RXObject, CommandFlag) using Autodesk.AutoCAD.EditorInput ;//(Editor, PromptXOptions, PromptXResult) using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;為了後面編寫代碼的方面,也可有在類裡面加上常用的類,比如:
public Document doc = AcadApp.DocumentManager.MdiActiveDocument; public Database db = AcadApp.DocumentManager.MdiActiveDocument.Database; public Editor ed = AcadApp.DocumentManager.MdiActiveDocument.Editor; 4、與用戶前臺交互數據的方式有兩種,一種是用命令行輸入自定義命名,一種是通過自定義winform通過按鈕操作,原理都是一樣。在此一一介紹。 首先,我們需要會用命令與前臺交互,因為winform也是需要用命令調出的,這是基礎必須掌握。 方法很簡單,在類上加上標記就好了,比如:[CommandMethod("myZoom")] public void Zoom() { Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument; Point2d pt1 = new Point2d(0, 0); Point2d pt2 = new Point2d(2, 2); string cmd = string.Format("Zoom {0},{1} {2},{3} ", pt1.X, pt1.Y, pt2.X, pt2.Y); doc.SendStringToExecute(cmd, true, false, false); }
這就是一個我們自定義的圖形縮放的命令,輸入myZoom就可以自動縮放到由(0,0)和(2,2)為兩個頂點的矩形大小。
5、好了,一個簡單的功能就完成了,生成dll後我們該如何調用呢?
很簡單,打開用cad打開dwg圖形,在命令行輸入netload(或者在菜單欄選擇工具-載入net程式)然後選擇剛剛生成的dll文件就好了。
然後輸入myZoom試試,看看有沒有變化?如果你有什麼問題,請直接留言回覆,我們一起學習一起進步。
後續請繼續關註cad更多操作方式。