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

最近更新于 2024-07-14 22:33

基本环境

AutoCAD 机械版 2025
Visual Studio 2022(需要安装“C++ 桌面开发”,建议右侧手动增加勾选“MFC”)
file

file

开发环境

下载

百度网盘

https://pan.baidu.com/s/115Lk6uom7vF70_WyJdUMYA?pwd=h2a6

官网下载

(1)ObjectARX SDK 下载(提供开发使用的 API):https://aps.autodesk.com/developer/overview/autocad-objectarx-sdk-downloads
file

(2)ObjectARX Wizard 下载(项目创建向导):https://aps.autodesk.com/developer/overview/autocad
目前最新的也只有 2024,可以直接用这个,本身只是用来创建项目时完成配置的,版本更新没多大的影响
file

安装

SDK

SDK 下载的是一个自解压程序,自定义解压路径,注意记住路径,后面要用
file

Wizard(项目创建向导(模板))

Wizard 下载的包解压出来,直接运行安装
这里的路径不用管,改了也不生效
file

打开路径 C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\vcprojects\Autodesk (路径要看实际的VS 安装在哪里)
分别以管理员权限打开编辑器编辑这两个文件
file

ArxAppWiz2024.vsz 中 [TARGETDIR]ArxAppWiz 改为 C:\Program Files (x86)\Autodesk\ObjectARX 2024 Wizards\ArxAppWiz
file
file

ArxAppWizOMF2024.vsz 中 [TARGETDIR]ArxAppWiz182 改为 C:\Program Files (x86)\Autodesk\ObjectARX 2024 Wizards\ArxAppWiz182
file
file

打开路径 C:\Program Files (x86)\Autodesk\ObjectARX 2024 Wizards\ArxAppWiz\Templates\1033 以管理员权限编辑 Autodesk.arx-2024.props(属性模板)
file
把 AcadDir 处路径改为实际的 AutoCAD 路径(注意路径后加上反斜杠)(运行调试的时候需要)
file
把 ArxSdkDir 处路径改为 ObjectRAX 解压路径再加上“CDROM1”(编译链接库需要这个路径)
file
这里改的两项就对应安装 wizard 时填选的两个路径,但是安装的时候改了也没用,这里直接手动改模板文件,在使用向导创建项目后在项目目录中就有一个 Autodesk.arx-2024.props 文件的副本,用于实际在当前项目中控制调试程序和链接路径。

可选配置项

加速 CAD 调试启动(属性预设)

以管理员权限编辑 C:\Program Files (x86)\Autodesk\ObjectARX 2024 Wizards\ArxAppWiz\Templates\1033\Autodesk.arx-2024.props
添加调试命令属性预设 /nologo,可以跳过 CAD 徽标显示,加快启动速度
找到LocalDebuggerCommand 位置,在它下面插入一行

<LocalDebuggerCommandArguments>/nologo</LocalDebuggerCommandArguments>

file

禁用安全检查(属性预设)

以管理员权限编辑 C:\Program Files (x86)\Autodesk\ObjectARX 2024 Wizards\ArxAppWiz\Templates\1033\Autodesk.arx-2024.props
不想用 VS 自创的安全函数,又不想手动禁用就这里直接改模板
Project 层内找到一个空位置,插入下面内容

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

file

修改默认“注册开发者符号”

以管理员权限编辑 C:\Program Files (x86)\Autodesk\ObjectARX 2024 Wizards\ArxAppWiz\HTML\1033\default.htm,搜索关键词“RDS_SYMB”,默认值是 “ADSK” 改成自己的标识就行,向导界面只能填写不超过四位,这里修改向导界面代码可以实现预填超过四位,不建议混合符号,可能导致项目没法构建
file

填在 VALUE= 里面
file

实现调试自动加载(三步)

思路是创建一个 scr 脚本,注明要自动加载的程序(修改向导源码实现自动创建这个 scr 脚本及写入匹配的内容)。再配置调试命令的属性预设,在 CAD 启动时指定要执行的 scr 脚本,实现自动加载程序

(1)修改向导程序源码

以管理员权限编辑 C:\Program Files (x86)\Autodesk\ObjectARX 2024 Wizards\ArxAppWiz\Scripts\1033\default.js
找到function CreateArxProject,在 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

(2)修改属性模板

以管理员权限编辑 C:\Program Files (x86)\Autodesk\ObjectARX 2024 Wizards\ArxAppWiz\Templates\1033\Autodesk.arx-2024.props

修改部位同上面“加速 CAD 调试启动”,但是将整个 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>
(3)添加信任

经过上面的修改已经可以实现调试启动 CAD 后自动加载自己编写的程序,但是因为没有签名也不在信任路径,可能导致需要手动确认是否加载
file

需要打开 CAD,op 命令打开选项-》系统-》安全选项
file

把开发路径添加到受信任文件夹,注意如果直接把文件夹路径复制进去,那么就只是信任文件夹下一层的程序,如果还有子目录,那依旧是不信任的,要想目录中所有路径都信任,需要加上三个英文句点
比如 C:\ 就只是信任 C:\ 下的程序,C:\User 下有程序就不是信任的
但是如果输入 C:\… ,那么就是信任 C:\ 以下所有文件
file

测试创建项目

创建

现在在 VS 中可以看到,测试创建一个 ARX 项目
file

框里可以输入自己(开发者)的标识,会携带在最终生成文件的名字中
file

使用

编译

尝试编译创建的模板
file

如果报错“/RTCc rejects conformant code”,项目属性里关掉“较小类型检查”,再次生成
file

可以在项目目录中看到生成的 arx 插件
file

测试使用

打开 CAD 并新建图纸,输入 AP 命令回车打开扩展程序加载对话框,在里面找到编译好的插件,测试加载
file

成功加载
file

调试

在 VS 中直接运行调试
file

VS 会启动 CAD,加载插件的操作和上面使用的一样,只是通过 VS 调试的时候可以显示 CAD 的堆栈信息等,也可以在 VS 中打断点,便于调试控制。入股按我上面的说明配置过的,那么可以实现调试自动加载插件,直接测试。

开发资料

在 ObjectArx 自解压的路径下包含有帮助文档(doc)和案例程序(samples)
file

ObjectARX 2025 官方文档:https://help.autodesk.com/view/OARX/2025/CHS/

AutoCAD 2025 ObjectARX(C++)开发环境搭建
Scroll to top