本文章用於CAD二次開發學習工作總結,參考李冠藝著編的《深入淺出AutoCAD.NET二次開發》。
- 一、開發前準備:
- 首先開發前默認有一定的C#編程經驗。
- 對CAD有一定的瞭解。
- 安裝好Visual Studio 以及CAD 。
-
其中Visual Studio 和CAD的版本對應關係如下:
CAD版本 |
版本號 | Visual Studio 版本 | .net Framework版本 |
---|---|---|---|
CAD2007 | R17.0 | Visual Studio 2010 | .net Framework 3.5 |
CAD2008 |
R17.1 | Visual Studio 2010 | .net Framework 3.5 |
CAD2009 | R17.2 | Visual Studio 2010 | .net Framework 3.5 |
CAD2010 | R18.0 | Visual Studio 2012 | .net Framework 4.0 |
CAD2012 | R18.2 | Visual Studio 2012 | .net Framework 4.0 |
CAD2013 | R19.0 | Visual Studio 2012 | .net Framework 4.0 |
CAD2014 | R19.1 | Visual Studio 2012 | .net Framework 4.0 |
CAD2015 | R20.0 | - | - |
CAD2016 | R20.1 | Visual Studio 2013 | .net Framework 4.5 |
CAD2017 | R21.0 | - | - |
CAD2018 | R22.0 | - | - |
CAD2019 | R23.0 | - | - |
CAD2020 | - | - | - |
注:以上僅供參考,並不嚴謹。-表示當前未調試過對應的版本,不明確其信息。本人開發採用的是 AutoCAD2014 +Visual Studio 2012+.net Framework 4.5(4.0也可以編譯通過)。
- 二、配置開發環境:
- 1.打開Visual Studio 2012,創建類庫項目。
- 引用關鍵類庫
- 找到CAD的安裝目錄下這三個dll文件
- 添加完成後
- 選中添加的組件,右鍵屬性
- 並將複製本地改爲False
- 接着
- 右鍵項目屬性,選中調試,改爲啓動外部程序
- 定位到cad的安裝目錄下 ,選擇acad.exe文件
- 至此,就可以開始寫代碼了。
- 附:
- CAD2013以前版本一般只需要引用acdbmgd.dll acmgd.dll,2013以後版本還需要引用accoremgd.dll
- 常用dll及命名空間對應關係(這裏是對2010版本dll的介紹,2013版本有部分命名空間移到了accoremgd.dll文件裏了)
- (1)acdbmgd.dll 包含對ObjectDBX API的封裝,用於對圖形對象的操作。主要包含的命名空間有:
- Autodesk.AutoCAD.Colors
- Autodesk.AutoCAD.DatabaseServices
- Autodesk.AutoCAD.Geometry
- Autodesk.AutoCAD.Runtime
- Autodesk.AutoCAD.GraphicsInterface
- Autodesk.AutoCAD.LayerManager
- (2)acmgd.dll 包含對大多數AutoCAD API的封裝,用於對AutoCAD應用程序進行操作。主要包含的命名空間有:
- Autodesk.AutoCAD.ApplicationServices
- Autodesk.AutoCAD.EditorInput
- Autodesk.AutoCAD.Windows
- Autodesk.AutoCAD.Windows.ToolPalette
- Autodesk.AutoCAD.Internal.Windows
- Autodesk.AutoCAD.Internal.Forms
- (3)AcCui.dll 包含常用用戶界面的封裝,用於用戶自定義文件進行操作。主要包含的命名空間有:
- Autodesk.AutoCAD.Customization
- Autodesk.AutoCAD.Customization.Interop
- (4)AdWindows.dll 包含常用Autodesk界面的封裝,用於用戶自定義工具條及菜單等用戶界面。主要包含的命名空間有:
- Autodesk.Windows
- Autodesk.Windows.ToolBars
- 三、CAD的層次結構
- 其中
- Application對象是頂層對象,對應着整個CAD應用程序的管理。
- DocumntManager對象是所有打開的CAD文檔對象(Document)的集合。
- Document對象是CAD的圖紙文檔,是Database的前端顯示。
- Database是對DWG數據文件的操作類。
- Database包含的表(每張表裏包含若干表記錄):
- ViewTable 視圖表 -ViewTableRecord 視圖表記錄
- TextStykeTable 文字表 -TextStykeTableRecord 文字表記錄
- LayerTable 圖層表 -LayerTableRecord 圖層表記錄
- LinetypeTable 線形表 -LinetypeTableRecord 線形表記錄
- DimStyleTable -DimStyleTableRecord
- ViewportTable 視口表 -ViewportTableRecord 視口表記錄
- UCSTable 座標系表 -UCSTableRecord 座標系表記錄
- RegAppTable 擴展數據表 -RegAppTableRecord 擴展數據表記錄
- BlockTable 塊表- BlockTableRecord 塊表記錄(其中CAD種模型和佈局是特殊的塊表記錄)
- ObjectDictionary 字典表
- Editor對象用於管理人機交互操作。
- Entity爲圖元實體對象。