ARX项目模板一键创建多版本项目

原文连接:ARX项目模板一键创建多版本项目
我记得这个公众号的第一篇文章就是《平台搭建二次开发平台搭建(VS2012&CAD2016)》,现在看来后边的步骤是完全没必要的,项目创建之后,项目中的属性管理文件 *.props 就已经把需要的引用设定好了,我把后半部分删除重新发布一下水一篇,嘻嘻。

首先CAD ARX C++ 二次开发需要针对 AutoCAD 多个版本进行适配,核心原因在于 AutoCAD 版本迭代带来的底层架构、API 接口及运行环境的变化,而 ARX 作为直接与 AutoCAD 内核交互的开发方式,对这些变化高度敏感。具体原因如下:

  1. AutoCAD 内核与 API 的版本依赖性
    ARX 开发本质是通过调用 AutoCAD 提供的底层 API(基于 ObjectARX 框架)与 AutoCAD 内核(如图形数据库、几何引擎、命令系统等)交互。而 Autodesk 在每个 AutoCAD 新版本(如 2018、2022、2024 等)中,可能会:
  • 修改或移除旧 API:为了优化性能、修复漏洞或重构架构,部分旧版本的函数、类或数据结构可能被弃用(如 AcDbEntity 的某些方法),甚至直接移除。
  • 新增或调整接口:引入新功能(如三维建模增强、云协作支持)时,会新增 API 或调整现有接口的参数/返回值(如 AcGePoint3d 相关几何计算接口的扩展)。
  • 变更底层数据结构:AutoCAD 的图形数据库(AcDbDatabase)、实体存储格式等可能随版本优化,导致基于旧结构的 ARX 代码无法正确读写数据。

因此,针对某个 AutoCAD 版本开发的 ARX 插件,直接放到另一个版本中可能因 “接口不匹配” 导致编译失败(如找不到函数)或运行崩溃(如访问已变更的内存结构)。

  1. ARX SDK 与编译器的强绑定
    ARX 开发依赖 Autodesk 官方提供的 ObjectARX SDK,而每个 AutoCAD 版本对应唯一的 SDK 版本(如 AutoCAD 2023 对应 ObjectARX 2023 SDK)。同时,SDK 对编译器版本有严格要求:
  • 不同 SDK 可能仅支持特定版本的 Visual Studio(如 AutoCAD 2020 需 VS2017,2024 需 VS2022),因为编译工具链(如 C++ 标准库、链接器)的差异会导致二进制兼容性问题。
  • 若用旧 SDK 编译的插件在高版本 AutoCAD 中运行,可能因 “链接库版本不匹配” 导致加载失败(如 acdb19.dllacdb24.dll 不兼容)。

这意味着,即使代码逻辑不变,针对不同 AutoCAD 版本的插件也必须用对应版本的 SDK 和编译器重新编译。

  1. 运行时环境的差异
    AutoCAD 不同版本的运行时环境(如依赖的系统库、注册表配置、安全机制)可能不同:
  • 系统库依赖:新版本可能依赖更高版本的 Windows 系统库(如 .NET Framework、MSVC 运行时),旧版本插件可能因缺失依赖而无法启动。
  • 安全机制升级:高版本 AutoCAD 可能加强了插件加载验证(如数字签名要求、沙箱机制),未适配的旧插件可能被拦截。
  • 功能兼容性:某些 AutoCAD 功能(如动态块、参数化设计)在版本间有行为差异,ARX 插件若依赖这些功能的具体实现,需针对版本调整逻辑。
  1. 用户需求的多样性
    不同行业或用户可能因成本、习惯、协同需求等原因,长期使用特定版本的 AutoCAD(如设计院可能停留在 AutoCAD 2018,而新企业可能使用 2024)。若 ARX 插件仅支持单一版本,会大幅限制适用范围。因此,开发者需通过多版本适配覆盖更广泛的用户群体。

总结下来其实就是一句话:客户需要,不改就白干,不改没钱啊。

既然需要多版本,那么目前CAD ARX 都有哪些版本呢,下边的表格做了详细的统计(CAD 2008-2026):

序号CAD版本CAD版本号二进制兼容.Net FrameworkVS版本VS平台集_MSC_VER
1AutoCAD 2008R17.0AutoCAD 2008VS2005V801400
2AutoCAD 2010R18.0AutoCAD 20103.5.1VS2008(SP1)V901500
3AutoCAD 2011R18.1AutoCAD 20113.5.1VS2008(SP1)V901500
4AutoCAD 2012R18.2AutoCAD 20124.0VS2008(SP1)V901500
5AutoCAD 2013R19.0AutoCAD 20134.0VS2010(SP1)V1001600
6AutoCAD 2014R19.1AutoCAD 20144.0VS2010(SP1)V1001600
7AutoCAD 2015R20.0AutoCAD 20154.5VS2012(SP4)V1101700
8AutoCAD 2016R20.1AutoCAD 20164.5VS2012(SP4)V1101700
9AutoCAD 2017R21.0AutoCAD 20174.6VS2015(SP1)V1401900
10AutoCAD 2018R22.0AutoCAD 20184.6.2VS2015(SP3)V1401900
11AutoCAD 2019R23.0AutoCAD 20194.7.2VS2017(SP2)V1411910
12AutoCAD 2020R23.1AutoCAD 20204.7.2VS2017(SP2)V1411910
13AutoCAD 2021R24.0AutoCAD 20214.8VS2019(16.0)V1421920
14AutoCAD 2022R24.1AutoCAD 20224.8VS2019(16.7)V1421927
15AutoCAD 2023R24.2AutoCAD 20234.8VS2019(16.11)V1421929
16AutoCAD 2024R24.3AutoCAD 20244.8VS2022(17.2)V1431932
17AutoCAD 2025R25.0AutoCAD2025net 8.0VS2022(17.3)V1431935
18AutoCAD 2026R25.1AutoCAD2026net 8.0VS2022(17.3)V1431935

如上表相同颜色版本插件是可以共用的,如 CAD 2024 编译的插件是可以在 CAD 2021-2024 四个版本上使用的(前提是没有使用新的接口)。
因此一般来说以上 CAD 2008-2026 这 18 个版本我们需要配置 2012、2014、2016、2017、2018、2020、2024 和 2026 这 8 个版本即可。

那么接下来就是如何实现多版本配置呢,这两篇文章
《也谈ObjectARX多版本批量编译》
《VS2022 编译 ARX2002~ARX2025》
详细介绍了这个过程,内容很详细,但是好复杂呀,看下来我只有一个念头:幸福三重奏陈建斌求放过soogifsoogif出品gif动图_动态图_表情包下载

但是摸摸自己的口袋还是乖乖的研究了起来,但是试了两次还是放弃了,那么有没有简单的不用动脑子的方法?
有,当然有!!!其实就是利用 VS 创建一个模板,之后我们创建项目的时候 VS 直接自动套模板就行了。

  1. 按照《二次开发平台搭建(VS2012&CAD2016)》采用向导安装一个 ARX 编译环境(推荐高版本),主要是为了在开发过程中使用 ARX MFC、反应器及 JIG 等模板
    ![图片]

  2. 下载需要的 CAD 对应的 SDK,解压之后放到规划好的目录下(我选择了 CAD 默认安装目录 C:\Program Files\Autodesk,Props 文件夹下是各版本的属性配置文件,这个自行按照向导生成的文件修改调整吧)
    ![图片]
    ![图片]

  3. 将模板项目 ArxTemplate.zip(这是个文件夹不是 zip 压缩包)放置到 VS 的模板文件夹下即可
    ![图片]

  4. VS 创建项目
    ![图片]

①. 直接 1 搜索 ARX , 2 创建新项目;
②. 如果侧边有 3 直接点击创建即可;
![图片]

如图,创建之后即可得到 2016-2026 多个版本,并可以一键编译成功。

  1. 视频演示

  2. 配置修改
    ![图片]

可以在模板文件此处修改为自己 ARX *.porps 属性文件位置。

  1. 资源分享
    公众号后台回复【ARX 项目模板】获取模板项目文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值