天天看點

基于.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命名空間提供。代碼如下所示

Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices

Public Class MyHello
    <CommandMethod("Hello")> _
    Public Sub Hello()
        '擷取目前活動文檔的Editor對象,
        Dim Doc As Autodesk.AutoCAD.ApplicationServices.Document = Application.DocumentManager.MdiActiveDocument
        Dim Ed As Autodesk.AutoCAD.EditorInput.Editor = Doc.Editor
        Ed.WriteMessage("Hello")

    End Sub
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

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

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

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

        打開項目屬性對話框 Properties   

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

       設定 Debugger Type 為 Managed v2.0 

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

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

2007-2009 -> Framework 2.0
2010-2011 -> Framework 3.5
2012-2013 -> Framework 4.0
           

原文位址: http://www.cnblogs.com/rliverpool/p/3949302.html

繼續閱讀