AutoCAD 2027 ObjectARX SDK(C++)开发环境搭建

最近更新于 2026-05-10 16:09

基本环境

写于 2026/5/10

  • Windows 11 25H2
  • AutoCAD Mechanical 2027
  • Visual Studio Community 2026(免费授权版)
    需要安装C++ 桌面开发,建议右侧手动增加勾选C++ MFC for x64/x86
    file
    单个组件下安装Help Viewer用于支持 ObjectARX SDK 文档
    file

下载安装

ObjectARX SDK 2027

ObjectARX SDK下载地址:https://aps.autodesk.com/developer/overview/autocad-objectarx-sdk-downloads
ObjectARX SDK 2027 直接下载地址:https://damassets.autodesk.net/content/dam/autodesk/files/esd/objectarx/2027/objectarx-for-autocad-2027-win-64bit.exe
file

下载后直接双击运行,这是一个自解压程序
file

解压路径如下,不要改,后面配置与这个路径息息相关

C:\ObjectARX2027

Extract进行解压
file

完成后可以打开 C 盘看到它
file

手动配置 ObjectARX Wizards 2027

向导本身是个开源项目,地址:https://github.com/ADN-DevTech/ObjectARX-Wizards
AutoCAD 官网会释放打包的安装包,只是现在还没发布 2027 版的向导程序,可以用 2026 版的进行手动配置。
file

克隆源码

下载安装 git:https://git-scm.com/
注意不要偷懒直接下载 ZIP 包,Windows 默认使用 CRLF 换行符,ZIP 版本的源码文件的换行符是 LF,Visual Studio 无法正常处理会报错。要么就要自行逐个文件去改换行符,或者使用其它批量处理工具。这里建议就使用 git 克隆源码,它会根据当前系统自动改换行符。
打开 CMD 或 PowerShell,工作路径切换到方便查看的目录,比如下载目录,执行命令克隆 2026 版最新的源码

git clone https://github.com/ADN-DevTech/ObjectARX-Wizards.git --branch=ForAutoCAD2026 --depth=1

指定代理可以使用

-c "http.proxy="

file

修改文件

建议使用 VScode 编辑,克隆得到的文件夹为 ObjectARX-Wizards,描述的修改路径就基于它。

编辑 ObjectARX-Wizards_Installs\Autodesk.arx-2026.props

原始:<AcadDir Condition="'$(Platform)'=='x64'">C:\Program Files\Autodesk\AutoCAD 2026\</AcadDir>
改为:<AcadDir Condition="'$(Platform)'=='x64'">C:\Program Files\Autodesk\AutoCAD 2027\</AcadDir>
注意:这里的路径是实际的 AutoCAD 安装路径,这里的示例未改安装路径的默认路径

file

原始:<ArxSdkDir>C:\ObjectARX\</ArxSdkDir>
改为:<ArxSdkDir>C:\ObjectARX2027\CDROM1</ArxSdkDir>

file

原始:<_ProjectFileVersion>26.0</_ProjectFileVersion>
改为:<_ProjectFileVersion>27.0</_ProjectFileVersion>
原始:<_PropertySheetDisplayName>ObjectARX 2026</_PropertySheetDisplayName>
改为:<_PropertySheetDisplayName>ObjectARX 2027</_PropertySheetDisplayName>

file

原始:<Import Condition="'$(ArxAppType)'=='dbxnet' or '$(ArxAppType)'=='crxnet' or '$(ArxAppType)'=='arxnet'" Project="Autodesk.arx-2026-net.props" />
改为:<Import Condition="'$(ArxAppType)'=='dbxnet' or '$(ArxAppType)'=='crxnet' or '$(ArxAppType)'=='arxnet'" Project="Autodesk.arx-2027-net.props" />

file

原始:<ArxSDKVersion>26.0</ArxSDKVersion>
改为:<ArxSDKVersion>27.0</ArxSDKVersion>
原始:<ArxSDKPlatform>v143</ArxSDKPlatform>
改为:<ArxSDKPlatform>v145</ArxSDKPlatform>

file

Autodesk.arx-2026.props 改名为 Autodesk.arx-2027.props
Autodesk.arx-2026-net.props 改名为 Autodesk.arx-2027-net.props
将这两个文件复制粘贴到 ObjectARX-Wizards\ArxAppWiz\Templates\1033
file

删除 ObjectARX-Wizards\ArxAppWiz\Templates\1033 下原有的这两个文件
file

编辑 ObjectARX-Wizards_Installs\VC\vcprojects\Autodesk\ArxAppWiz.vsdir

原始:ArxAppWiz.vsz| |ARX/DBX Project For AutoCAD 2026|1|ObjectARX/DBX Application Wizard for AutoCAD 2026| |6777| |ArxProject
改为:ArxAppWiz.vsz| |ARX/DBX Project For AutoCAD 2027|1|ObjectARX/DBX Application Wizard for AutoCAD 2027| |6777| |ArxProject

编辑 ObjectARX-Wizards_Installs\VC\vcprojects\Autodesk\ArxAppWiz.vsz

原始:Param="ABSOLUTE_PATH = [TARGETDIR]ArxAppWiz"
改为:Param="ABSOLUTE_PATH = Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxAppWiz""

编辑 ObjectARX-Wizards_Installs\VC\vcprojects\Autodesk\ArxAppWizOMF.vsdir

原始:ArxAppWizOMF.vsz| |OMF Project For AutoCAD 2026|1|ObjectARX/DBX/OMF Application Wizard for AutoCAD 2026| |6777| |ArxProject
改为:ArxAppWizOMF.vsz| |OMF Project For AutoCAD 2027|1|ObjectARX/DBX/OMF Application Wizard for AutoCAD 2027| |6777| |ArxProject

编辑 ObjectARX-Wizards_Installs\VC\vcprojects\Autodesk\ArxAppWizOMF.vsz

原始:Param="ABSOLUTE_PATH = [TARGETDIR]ArxAppWiz182"
改为:Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxAppWiz182"

编辑 ObjectARX-Wizards_Installs\VC\VCAddClass\ObjectARX2026\ArxAtlWizComWrapper.vsz

原始:Param="ABSOLUTE_PATH = [TARGETDIR]ArxAtlWizComWrapper"
改为:Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxAtlWizComWrapper"

编辑 ObjectARX-Wizards_Installs\VC\VCAddClass\ObjectARX2026\ArxAtlWizDynProp.vsz

原始:Param="ABSOLUTE_PATH = [TARGETDIR]ArxAtlWizDynProp"
改为:Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxAtlWizDynProp"

编辑 ObjectARX-Wizards_Installs\VC\VCAddClass\ObjectARX2026\ArxWizCustomObject.vsz

原始:Param="ABSOLUTE_PATH = [TARGETDIR]ArxWizCustomObject"
改为:Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxWizCustomObject"

编辑 ObjectARX-Wizards_Installs\VC\VCAddClass\ObjectARX2026\ArxWizJig.vsz

原始:Param="ABSOLUTE_PATH = [TARGETDIR]ArxWizJig"
改为:Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxWizJig"

编辑 ObjectARX-Wizards_Installs\VC\VCAddClass\ObjectARX2026\ArxWizMFCSupport.vsz

原始:Param="ABSOLUTE_PATH = [TARGETDIR]ArxWizMFCSupport"
改为:Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxWizMFCSupport"

编辑 ObjectARX-Wizards_Installs\VC\VCAddClass\ObjectARX2026\ArxWizNETWrapper.vsz

原始:Param="ABSOLUTE_PATH = [TARGETDIR]ArxWizNETWrapper"
改为:Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxWizNETWrapper"

编辑 ObjectARX-Wizards_Installs\VC\VCAddClass\ObjectARX2026\ArxWizReactors.vsz

原始:Param="ABSOLUTE_PATH = [TARGETDIR]ArxWizReactors"
改为:Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxWizReactors"

编辑 ObjectARX-Wizards\ArxAppWiz\HTML\1033\default.htm(可选)

默认名是 ADSK,这里我改成自己的 IYATTyx,创建项目时的效果如下图
file

原始:<SYMBOL NAME='RDS_SYMB' TYPE='text' VALUE='ADSK'></SYMBOL>
改为:<SYMBOL NAME='RDS_SYMB' TYPE='text' VALUE='IYATTyx'></SYMBOL>

file

编辑 ObjectARX-Wizards\ArxAppWiz\Templates\1033\x64win32.vcxproj

原始:<PlatformToolset>v143</PlatformToolset>
改为:<PlatformToolset>v145</PlatformToolset>

file

原始:<PlatformToolset Condition="'$(ArxSDKPlatform)'=='v143'">v143</PlatformToolset>
改为:<PlatformToolset Condition="'$(ArxSDKPlatform)'=='v145'">v145</PlatformToolset>

file

原始:<Import Project="Autodesk.arx-2026.props" />
改为:<Import Project="Autodesk.arx-2027.props" />

编辑 ObjectARX-Wizards\ArxAppWiz\Scripts\1033\default.js

    CopyPropsFile("Autodesk.arx-2026.props", strProjectName);
    CopyPropsFile("Autodesk.arx-2026-net.props", strProjectName);

改为

    CopyPropsFile("Autodesk.arx-2027.props", strProjectName);
    CopyPropsFile("Autodesk.arx-2027-net.props", strProjectName);

file

复制文件

创建文件夹C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards,中间缺少某个目录就自己创建,后面需要使用这个路径。

①将 ObjectARX-Wizards 下的 ArxAppWiz、ArxAppWiz182、ArxAtlWizComWrapper、ArxAtlWizDynProp、ArxWizCommon、ArxWizCustomObject、ArxWizJig、ArxWizMFCSupport、ArxWizNETWrapper、ArxWizReactors
复制粘贴到 C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards

file

②将 ObjectARX-Wizards_Installs 下的 Autodesk.arx-2026.props、Autodesk.arx-2026-net.props、crx.props、rxsdk_common.props
复制粘贴到 C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards

file

③将 ObjectARX-Wizards_Installs\VC\vcprojects 复制粘贴到 C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\VC 下(注意非社区版 VS,路径中不是 Community,后同)
file

file

④将 ObjectARX-Wizards_Installs\VC\VCAddClass 下的 ObjectARX2026 改名为 ObjectARX2027
再将它复制粘贴到 C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\VC\VCProjectItems
file

file

刷新 VS

在开始菜单搜索Developer Command Prompt for VS,以管理员身份运行

执行命令

devenv /updateconfiguration

file

改进设置

本章涉及文件修改需要使用管理员身份编辑,建议使用 VScode,可以保存时提权

调试时自动加载扩展

编辑 C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxAppWiz\Scripts\1033\default.js
在第 102 行

return oProj;

前面插入

    // 创建 scr 脚本
    /////////////////////////////////////////////

    // 写 scr 文件
    function writeScrFile(filename, content)
    {
      var fso = new ActiveXObject("Scripting.FileSystemObject");
      var startScrPath = strProjectPath + "\\" + filename;
      var startScrFile = fso.CreateTextFile(startScrPath, true);
      startScrFile.Write(content);
      startScrFile.Close();
    }

    // 确定程序扩展名
    var extension = "";
    if (wizard.FindSymbol("APP_ARX_TYPE")) {
      extension = ".arx";
    } else if (wizard.FindSymbol("APP_DBX_TYPE")) {
      extension = ".dbx";
    } else if (wizard.FindSymbol("APP_CRX_TYPE")) {
      extension = ".crx";
    } else {
      extension = ".arx";
    }

    debugFilename = "debug.scr"; // 调试版脚本
    releaseFilename = "release.scr"; // 发布版脚本

    var debugContent = "ARX L " + "\"" + strProjectPath + "\\x64\\Debug\\" + wizard.FindSymbol("RDS_SYMB") + strProjectName + extension + "\" ";
    var releaseContent = "ARX L " + "\"" + strProjectPath + "\\x64\\Release\\" + wizard.FindSymbol("RDS_SYMB") + strProjectName + extension + "\" ";

    writeScrFile(debugFilename, debugContent);
    writeScrFile(releaseFilename, releaseContent);
    /////////////////////////////////////////////

file

修改属性模板

编辑 C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxAppWiz\Templates\1033\Autodesk.arx-2026.props

    <PropertyGroup>
        <!-- Local Windows debugger -->
        <LocalDebuggerDebuggerType>Auto</LocalDebuggerDebuggerType>
        <!-- LocalDebuggerCommand is defined into an empty $(TargetPath) for the property page, it is later redefined to its proper value. -->
        <LocalDebuggerCommand>$(AcadDir)$(AcadExe)</LocalDebuggerCommand>
        <LocalDebuggerWorkingDirectory>$(ProjectDir)</LocalDebuggerWorkingDirectory>
    </PropertyGroup>

替换为

    <PropertyGroup Condition="'$(Configuration)'=='Debug'">
        <!-- Local Windows debugger -->
        <LocalDebuggerDebuggerType>Auto</LocalDebuggerDebuggerType>
        <LocalDebuggerCommand>$(AcadDir)$(AcadExe)</LocalDebuggerCommand>
        <LocalDebuggerCommandArguments>/nologo /b $(ProjectDir)debug.scr</LocalDebuggerCommandArguments>
        <LocalDebuggerWorkingDirectory>$(ProjectDir)</LocalDebuggerWorkingDirectory>
    </PropertyGroup>

    <PropertyGroup Condition="'$(Configuration)'=='Release'">
        <!-- Local Windows debugger -->
        <LocalDebuggerDebuggerType>Auto</LocalDebuggerDebuggerType>
        <LocalDebuggerCommand>$(AcadDir)$(AcadExe)</LocalDebuggerCommand>
        <LocalDebuggerCommandArguments>/nologo /b $(ProjectDir)release.scr</LocalDebuggerCommandArguments>
        <LocalDebuggerWorkingDirectory>$(ProjectDir)</LocalDebuggerWorkingDirectory>
    </PropertyGroup>

file

file

添加 CAD 信任

自己开发的扩展程序没有签名,在加载的时候会提示

打开 CAD 进入图纸状态,执行 OPTIONS 命令打开选项,切换到系统选项卡,点开安全选项
file

把开发路径添加进去,路径后加三个点,则此路径及更深层路径都添加,否则只添加这一层目录到白名单
file

禁用较小类型检查

编辑 C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxAppWiz\Templates\1033\Autodesk.arx-2027.props
Project 标签包含范围内插入

    <ItemDefinitionGroup>
        <ClCompile>
            <SmallerTypeCheck>false</SmallerTypeCheck>
        </ClCompile>
    </ItemDefinitionGroup>

file

禁用 VS 安全检查

MSVC 自己搞了安全函数,使用原版函数会报错,这里直接改模板实现默认关闭。
file

编辑 C:\Program Files (x86)\Autodesk\ObjectARX 2027 Wizards\ArxAppWiz\Templates\1033\Autodesk.arx-2027.props
Project 标签包含范围内插入

    <ItemDefinitionGroup>
        <ClCompile>
            <BufferSecurityCheck>false</BufferSecurityCheck>
        </ClCompile>
    </ItemDefinitionGroup>

file

测试

file

file

file

F5 编译并调试运行,可以看到已经加载了扩展程序
file

执行 APPLOAD 命令,可以查看已加载的扩展程序
file

文档

安装 ObjectARX SDK 文档

进入 C:\ObjectARX2027\CDROM1\docs 目录,在 setup.exe 右键以管理员身份运行
file

一直点 Next 继续,最后安装完毕点Close关闭
file

这个目录下的 chm 文件就是问大哥,直接双击打开查看也可以,安装后可以通过 VS 内部搜索查看,也能从函数名直接跳转文档。
打开 VS,项目打开状态,展开帮助-设置帮助(L)首选项,选在帮助查看器中启动
file

如果没有修改 VS 默认快捷键的话,在函数上按 F1 会自动跳转到对应文档部分

我习惯使用 VScode 快捷键,但是 VScode 没有这个跳转帮助的功能,也就没有这个快捷键,这里需要手动 F1 快捷键:

工具选项
file

所有设置环境键盘
file

现实命令包含里查找窗口.快速启动,在选定命令的快捷键下拉,可以看到有个快捷键是用了F1,选中它点击移除
file

然后再查找帮助.F1帮助,在按快捷键里安F1,点击分配,然后确定修改
file

类继承关系图

C:\ObjectARX2027\CDROM1\classmap\classmap.dwg
file

file

AutoCAD 2027 ObjectARX SDK(C++)开发环境搭建
Scroll to top
打开目录