AutoCAD ObjectARX 二次開發(2020版)--2,手動創建CAD二次開發項目--

  • 本項目使用手動創建,意為不使用SDK模板。
  • 從Visual Studio的“文件”下拉菜單中,選擇“新建”->“項目...”。
  • 在出現的“新建項目”對話框的“項目類型:”樹中,單擊“ Visual C ++”節點。
  • 在模板列表中選擇“ Windows桌面向導”。
  • 在項目名稱編輯框中輸入所需的項目名稱,例如“ Step01”,然后確定

    

  • 確定后彈出對話框,從應用程序類型下拉選項中選擇動態鏈接庫。

       

 

項目創建成功之后,開始配置項目屬性。右鍵點擊解決方案,選擇屬性。依次配置下面內容:

“ C / C ++”->“常規”:

  在“附加包含目錄”中,添加ObjectARX SDK的頭文件路徑。

  將“警告等級”設置為“ 1級”。

  調試信息格式選擇 程序數據庫(/Zi)

“ C / C ++”->“代碼生成”:

  在“運行庫”中,選擇“多線程DLL(/MD)”。

“ C / C ++”->“預處理器”:

  刪除宏_DEBUG。 

“ 配置屬性”->“常規”:

  平臺工具集選擇Visual Studio 2017 (v141)

  目標文件擴展名修改為 .arx

  配置類型 改為 動態庫.dll

“鏈接器”->“輸入”:

  “附加依賴項”中,添加以下庫:
    rxapi.lib

    acdb23.lib

    acge23.lib

    acad.lib

    ac1st23.lib

    accore.lib 

  “模塊定義文件” 添加 ArxProject.def

“鏈接器”->“常規”:

  “輸出文件” 修改為 $(OutDir)AdskStep01_2020.arx

  “附加庫目錄” 中添加SDK的庫文件夾路徑(存放Lib文件的文件夾)

 

配置完畢,現在我們添加一個 .cpp文件到項目中。名字任意。注意,以后所有的SDK都代指ObjectARX 2020版。

#include "stdafx.h"
#include "tchar.h"
#include <aced.h>  //這是SDK里的頭文件
#include <rxregsvc.h>//這是SDK里的頭文件

//這是編程框架需要的函數,加載程序時調用,類似構造函數。里面調用了CAD API,向CAD注冊了一個新指令
void initApp()
{
    acedRegCmds->addCommand(_T("HELLOWORLD_COMMANDS"), _T("Hello"),_T("Bonjour"), ACRX_CMD_TRANSPARENT,helloWorld);
}

//這是編程框架需要的函數,卸載程序時調用,類似析構函數
void unloadApp()
{
    acedRegCmds->removeGroup(_T("HELLOWORLD_COMMANDS"));
}

//這是我們自己的函數,acutPrintf是SDK里的輸出函數,類似C語言的printf。
void helloWorld()
{
    acutPrintf(_T("\nHello World!"));
}

//這是CAD調用插件的入口函數,類似于程序的main函數。
extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
{
    switch (msg)
    {
        case AcRx::kInitAppMsg:
          acrxDynamicLinker->unlockApplication(pkt);
          acrxRegisterAppMDIAware(pkt);
          initApp();
          break;
        case AcRx::kUnloadAppMsg:
          unloadApp();
          break;
        default:
          break;
    }
    return AcRx::kRetOK;
} 

  

最后,添加def文件

快捷鍵Ctrl + Shift + A

  1. 在“添加新項目”對話框中,選擇項目“ Def File(.def)”。
  2. 在“名稱:”編輯框中輸入“ ArxProject”。然后打開,輸入以下內容
    EXPORTS
    acrxEntryPoint PRIVATE
    acrxGetApiVersion PRIVATE
    

 現在生成項目,應該是0警告,0錯誤,得到一個arx文件。

 ARX文件的機制類似于DLL文件,加載到CAD程序中,然后通過CAD的命令來調用,所以沒有main函數。

 整個程序的中心思想是,設計自己的函數,然后把這個函數通過回調函數注冊給CAD程序,打開CAD去調用自己的函數。  

  下一節我們來執行ARX文件。

 

posted on 2019-10-26 10:49  sn-Cloud  閱讀(...)  評論(... 編輯 收藏

導航

三d开奖结果走势图