基於.NET的CAD二次開發學習筆記一:CAD開發入門


1、AutoCAD .NET API由不同的DLL文件組成,它們提供用於訪問圖形文件或AutoCAD應用程序的包含豐富的類、結構、方法和事件。每一個DLL文件都定義不同的使用基於功能的庫組織組件的命名空間。

下面是你將頻繁地要使用的AutoCAD .NET API 的三個主要的DLL文件:

      AcDbMgd.dll. 當使用圖形文件中的對象時使用這個DLL文件。

      AcMgd.dll. 當使用AutoCAD應用程序時使用這個DLL文件。

      AcCui.dll. 當使用自定義文件時使用這個DLL文件。

 

注意:在創建CAD項目時,需要引用到以上DLL,一般來說前面兩個使用的較多。AutoCAD .NET API DLL被引用,就必須設置引用DLL文件的“復制到本地”屬性為False。復制到本地屬性確定當Microsoft Visual Studio編譯工程時是否創建一個引用DLL文件的副本並將它放在與工程的程序集文件相同的目錄下。由於引用文件已經是AutoCAD附屬文件,因此,創建引用文件的副本后當加載程序集文件到AutoCAD中時將可能引發意想不到的結果。

 

2、在.NET 類中加入CAD能調用的命令,必須用到CommandMethod屬性,這個屬性由Runtime命名空間提供。代碼如下所示

 1 Imports Autodesk.AutoCAD.Runtime
 2 Imports Autodesk.AutoCAD.ApplicationServices
 3 Imports Autodesk.AutoCAD.DatabaseServices
 4 
 5 Public Class MyHello
 6     <CommandMethod("Hello")> _
 7     Public Sub Hello()
 8         '獲取當前活動文檔的Editor對象,
 9         Dim Doc As Autodesk.AutoCAD.ApplicationServices.Document = Application.DocumentManager.MdiActiveDocument
10         Dim Ed As Autodesk.AutoCAD.EditorInput.Editor = Doc.Editor
11         Ed.WriteMessage("Hello")
12 
13     End Sub
14 End Class

 

 

 

3、CAD項目生成類庫后,可在 AutoCAD 的命令提示符中,輸入 netload 命令,並選中生成的DLL,加載CAD項目,即可在CAD中使用CommandMethod指定的命令。

 

4、CAD調試(以CAD2010、VS2010為例):右鍵打開項目屬性-->調試-->選擇啟動外部程序  \AutoCAD2010\acad.exe

 

斷點不起作用如下

(解決方法摘自:http://www.cnblogs.com/junqilian/archive/2010/04/29/1724403.html)

斷點不起作用的原因在於Visual Studio 2010在調試時啟動了默認的debugger(v4.0),但是為了讓我們的.net應用程序能在AutoCAD Map (或Revit)等上運行,我們需要.net 2.0 framework( 3.5也是運行在CLR 2.0之上的)。

解決辦法有如下兩個方案:

方案1

編輯宿主程序的config 文件(acad.exe.config, revit.exe.config等等),這個文件在AutoCAD的安裝目錄下。在</configuration>前面加上下面的代碼(CAD2010該行代碼已被注釋):

<startup>

<supportedRuntime version="v2.0.50727" />

</startup>

 

方案2

把宿主exe文件作為一個已有的項目加到您的解決方案中,並把debugger設置為v2.0

       右鍵單擊Solution Explorer,選擇Add->Existing Project,瀏覽到AutoCAD的啟動文件Acad.exe

 

        右鍵單擊該項目,把它設置為啟動項目 Set as StartUp Project

 

        打開項目屬性對話框 Properties   

 

       設置 Debugger Type 為 Managed v2.0 

5、對於不同的AutoCAD版本,推薦使用的.NET Framework版本如下:

2007-2009 -> Framework 2.0

2010-2011 -> Framework 3.5

2012-2013 -> Framework 4.0

 

 

 


免責聲明!

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



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