AutoCAD插件開發系列一:win7下Visual Studio 2012 update4、AutoCAD 2016和二次開發插件ObjectARX2016環境安裝及配置

前言

最近接到了一個小小的項目爲AutoCAD 2016開發插件,開發的第一步當然是配置系統的開發環境,但在這個過程中發現環境配置有許多坑,並且各類資料、博客比較少,寫的也不夠全面。所以此係列一就先詳細描述一下環境配置的詳細過程並且需要注意的地方吧!

我的配置爲:Visual Studio 2012 update4+AutoCAD2016+ObjectARX2016

1 AutoCAD 2016安裝

在網上下載AutoCAD2016破解版,按照安裝破解提示完成安裝,此過程比較簡單,這裏不再贅述。

2 Visual Studio 2012安裝

VS2012在網上可以很輕鬆下載到,下載完成後按照提示一步步安裝即可,這裏就不再贅述。重點說一下安裝完成後運行軟件會出現和win7不兼容的提示。題主認爲原因是VS2012和AutoCAD2016發生了不兼容,因爲先安裝VS2012後運行並不會提示不兼容,但是安裝完AutoCAD2016後就會出現這個問題。解決辦法是在網上下載VS2012 update4更新包,更新完成後問題解決。

3 ObjectARX 2016安裝

ObjectARX的安裝最爲麻煩,安裝文件分爲兩個,如下圖:
在這裏插入圖片描述
第一個文件解壓後是一個exe執行文件,雙擊安裝,我的安裝路徑爲D:\ObjectARX。
第二個msi文件需要先給右鍵添加以管理員運行的菜單,操作方法如下:

(1) cmd命令行窗口輸入命令regedit打開註冊表編輯器,定位至HKEY_CLASSES_ROOT\Msi.Package\shell,右鍵點擊shell,選擇“新建 - 項”,然後把新建項重命名爲“runas”。選中runas項,然後在右側窗口中雙擊“默認”字符串值,在彈出的“編輯字符串”窗口中,把數值數據修改成“以管理員身份運行”,確定。如圖:
在這裏插入圖片描述
(2) 然後在“runas”項下再新建一個“command”項,用同樣的方法把“默認”字符串值的數值數據修改成“msiexec /i“%1””。如圖:
在這裏插入圖片描述
完成(1)(2)兩步後,關閉註冊表編輯器,然後你再在msi安裝包點擊右鍵,就會發現右鍵菜單中已經出現“以管理員身份運行”選項了。

注: 這個過程網上還有通過建立註冊表文件來執行導入註冊表的方法,讀者自行百度,不過我通過這種方法並沒有成功,註冊表導入後並沒有生效!!

(3) objectARXWizard.msi 文件上右鍵 以管理員運行 執行安裝。安裝完成後,安裝程序默認安裝到VS2012下面去,如圖:
在這裏插入圖片描述
打開ArxAppWiz.vsz,發現文件關鍵項沒有改掉,[WIZVERSION][TARGETDIR]這兩個還是臨時名,修改後如下:

VSWIZARD 7.0
Wizard=VsWizard.VsWizardEngine.11.0
Param="WIZARD_NAME = ArxAppWiz"
Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\ObjectARX 2016 Wizards\ArxAppWiz"
Param="FALLBACK_LCID = 1033"

第二行是使用的vs嚮導版本,這裏是vs2012,所以是VsWizard.VsWizardEngine.11.0,vs2013應該是12.0,vs2015是14.0,vs2017好像改成了註冊表的clsid。
第三行是嚮導的路徑,這裏是ObiectARX 2016的默認路徑。這兩項讀者可根據自己的實際情況修改,至此,ObjectARX 2016的安裝就完成了。

4 利用開發環境完成第一個插件Hello World

現在來完成AutoCAD的第一個插件HelloWorld!
(1) 新建一個ObjectARX項目,如圖:
在這裏插入圖片描述
確定後在下一個界面點擊finish即可,如圖:
在這裏插入圖片描述
(2) 點擊finish後出現了一個報錯,如下圖:
在這裏插入圖片描述
注意看錯誤提示爲CAD2016\inc文件夾下沒有arx.props這個文件,所以解決方法是將ObjectARX安裝文件下的inc文件夾下的文件 (包含arx.props文件) 拷貝到CAD2016\inc下,問題解決,其他的錯誤也是類似的解決方法!

(3) 找到acrxEntryPoint.cpp文件,定位到static void MyGroupMyCommand ()函數,給函數添加acutPrintf(_T("\nHello World!")); 語句,這行代碼表示要在CAD命令欄打印Hello World!。

(4) 在編譯之前,我們查看文件的末尾處,這裏有需要注意的地方。如圖:
在這裏插入圖片描述
留心第二行的參數MyGroup, MyCommand與我們修改的static void MyGroupMyCommand ()函數的關係,MyCommandLocal,這是等會在AutoCAD 2016中要輸入的命令。
(5) 因爲我的AutoCAD 2016是64位版本的,在Visual Studio 2012上需要將編譯平臺改爲x64。如圖:
在這裏插入圖片描述
配置管理器下拉debug可找到,如上圖紅色標註。
(6) 點擊生成-生成HelloWorld,出現以下錯誤,如圖:
在這裏插入圖片描述
這是由於項目沒有包含庫導致的,右鍵項目-屬性-VC++目錄,如圖:

在這裏插入圖片描述
包含目錄和庫目錄分別將ObjectARX下的inc-x64和lib-x64包含,完成後如圖:
在這裏插入圖片描述
重新生成解決方案,編譯通過。
(7) 打開AutoCAD 2016,開始繪製-管理-加載應用程序,找到HelloWord工程下x64文件夾下的HelloWorld.arx文件,加載插件。在命令窗口中輸入MyCommandLocal命令,命令欄輸出HelloWorld!,如圖:
在這裏插入圖片描述

以上!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章