.NET AutoCAD二次開發之路(一、基礎篇)


學習AutoCAD二次開發已經有一段時間了,磕磕碰碰,十分的艱辛枯燥。但回想一下還是會有些小激動,嘿嘿!最近這段時間一直都有這么個想法,就是將我學習CAD二次開發的過程用文字的方式記錄下來,形成系列,並定期更新。主要內容就是記錄自己每天學習過程中所碰見的問題和感悟,並總結今天所學到的內容。目的一是激勵自己堅持下去,看着自己一步一步的提高,多有成就感。還有就是和大家積極溝通,希望能夠指正我的錯誤,減少我的彎路。再者就是望能給后面學習的人一點點借鑒經驗,好吧其實還有點裝B的心里。廢話不多說就進入今天的正題:
⦁ 使用工具:Visual Studio 2013和AutoCAD2010
⦁ 學習工具:《AutoCAD VBA和VB.NET開發基礎和實例教程》C#版、《深入淺出AutoCAD.NET二次開發》、《AutoCAD .net開發人員手冊》和網絡(目前)
⦁ 操作系統:Win10 64位
⦁ 開發語言:C#
⦁ 軟件設置:
       1.打開Visual Studio 2013,新建一個【類庫】項目;
       2.在軟件右側【解決方案資源管理器】(如果沒有,在【視圖】中選擇第一個選項即可)的項目內找到“引用”,右擊選擇【添加引用】,然后選擇【瀏覽】選項卡,接着找到CAD安裝目錄下的acdbmgd.dll和acmgd.dll這兩個文件,【確定】;
       3.在“引用”中找到剛引用的兩個文件acdbmgd.dll和acmgd.dll,右擊選擇屬性,將他們【復制本地】的值設為“False”,雙擊即可更改。顧名思義,如果【復制本地】的值為“True”時,會將這兩個文件復制到當前所創建項目下,會導致AutoCAD運行時發生未知錯誤(其實我也沒試過),在【解決方案資源管理器】里可以包含多個類庫文件,每個類庫里也可以添加多個類文件(.cs)。每次添加新的【類庫】時,都要引用acdbmgd.dll和acmgd.dll這兩個文件。
       4.右擊類庫名,選擇屬性,將【應用程序】中“目標框架”里面的內容改為“.NET Framework 3.5”,將【生成】中“目標平台”改為“X64”(這個是根據操作系統來選擇的,X86是32位,X64則為64位,貌似不改也可以)。

                                                    AutoCAD .NET與Visual Studio版本對應關系
AutoCAD版本 .NET版本 Visual Studio版本
2010-2011(R18.0-R18.1) 3.5 VS2008 SP1
2012(R18.2) 4 VS2010
2013(R19.0) 4 VS2010 SP1


      5.添加命名空間,目的是為了方便調用命名空間中的集成函數,剛看到這得時候也不是很理解,但到后面的具體實例,親自動手實驗了下,就明白了。前幾天剛看了教學視頻,其中有一句話對我影響很大,他是說不要心疼電腦的鍵盤,學習編程就要不斷的敲擊鍵盤,當你敲壞一個鍵盤的時候,你就入門了,當你敲得代碼有10G的時侯,你就出師了。下面是常用的幾個命名空間:
Autodesk.AutoCAD.DatabaseServices;命名空間中的類包括直線、圓、圓弧等,以及層、線型和樣式等。
Autodesk.AutoCAD.Runtime;命名空間中的類提供了系統級別的功能,比如常用的CommandMethod屬性。(其實我也沒理解)
Autodesk.AutoCAD.ApplicationServices;命名空間中的類用來定義和注冊新的AutoCAD命令。
Autodesk.AutoCAD.EditorInput;命名空間提供了與用戶交互有關的類,比如提示用戶輸入等。通過這句話就能理解出命名空間的作用。
Autodesk.AutoCAD.Colors;命名空間提供了與顏色有關的類。
Autodesk.AutoCAD.Geometry;命名空間中的類被用來執行2D和3D的幾何操作。
    6.要能使能在AutoCAD中能調用命令的方法(比如畫直線的命令“L”),執行代碼,就需要在類代碼開頭加入CommandMethod屬性。

復制代碼
public class Class1
{
  [CommandMethod("HW")]
  public void HW()
  {

  }
}
復制代碼

 


    7.打開AutoCAD,輸入NETLOAD,瀏覽項目目錄...項目名稱\bin\debug文件夾下的dll文件,然后輸入相應命令即可。


感謝:《AutoCAD VBA和VB.NET開發基礎和實例教程》C#版的作者才鳥,其中大部分知識都是學習這本書上的,再次感謝。我學的時候並沒有挨着學習,而是根據具體例子來跳躍學習,具體實例會在今后的日記中說明。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM