AutoCAD Mechanical SDK 2026 开发环境配置

最近更新于 2026-03-22 21:34

前言

2026/3/22
AutoCAD Mechanical 是机械版,AutoCAD 则是通用版,AutoCAD Mechanical 在 AutoCAD 基础上扩增了适合机械行业使用的功能。
ObjectARX SDK 适用 AutoCAD 开发,它包含了基础的接口。要对 AutoCAD Mechanical 进行开发,如果不涉及机械版特有的功能的话,ObjectARX 是足够的,否则还需要 AutoCAD Mechanical SDK。
例如 AutoCAD Mechanical 中的形位公差是 AcmFCF 对象,需要 AutoCAD Mechanical SDK 才能操作。
file

AutoCAD Mechanical 的第三方资料几乎没有,官方的文档也很烂,估计多少年没更新内容了。使用问题主要是:没有项目创建向导程序,文档也没说全要链接哪些库,头文件的引用还有顺序关系,还要定义特别的宏,不然就蹦出几十上百的错误,开头折腾我好久。

下面就是文档里告知的开始步骤:
file

这里就记录我测试可以跑通的操作。先提醒一下 AutoCAD Mechanical SDK 是在 ObjectARX SDK 上扩展的,所以前提要配置好 ObjectARX SDK 开发环境,可参考:https://blog.iyatt.com/?p=21187

操作

下载

AutoCAD Mechanical SDK 2026 直接下载链接:https://damassets.autodesk.net/content/dam/autodesk/www/files/autocad-mechanical-sdk-2026-english-win-64bit.zip

最新版:https://aps.autodesk.com/developer/overview/autocad-mechanical
file

下载后解压出来,进入到此目录下,复制 acadmapi 文件夹
file

粘粘到 ObjectARX 2026 的目录下(有 inc、lib-x64 等文件夹的目录下)
file

创建 AutoCAD Mechanical 项目

创建 ObjectARX 项目

先正常创建 ARX/DBX 项目
file

属性文件中配置头文件路径和链接的库文件

项目创建完成后,在项目目录下找到 .vcxproj 文件,文件名就是你的项目名,类型是 VC++ Project。在这个文件所在目录下创建一个文本文件,命名为 Autodesk.mechanical-2026.props
file

编辑 Autodesk.mechanical-2026.props,写入

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <AcadmSdkDir>$(ArxSdkDir)\acadmapi</AcadmSdkDir>
    </PropertyGroup>

    <PropertyGroup>
        <IncludePath>$(AcadmSdkDir)\inc;$(IncludePath)</IncludePath>
        <LibraryPath>$(AcadmSdkDir)\lib-x64;$(LibraryPath)</LibraryPath>
    </PropertyGroup>

    <ItemDefinitionGroup>
        <Link>
            <AdditionalDependencies>ac1st25.lib;acdb25.lib;acge25.lib;iso_stdio_wide_specifiers.lib;rxapi.lib;$(LIB_ACGE);$(LIB_AC1ST);$(LIB_ACDB);accore.lib;acad.lib;acgiapi.lib;acmsymbb_crx.lib;%(AdditionalDependencies)</AdditionalDependencies>
        </Link>
    </ItemDefinitionGroup>
</Project>

在项目文件中导入配置好的属性文件

然后编辑前面提到的“你的项目名.vcxproj”文件,搜索查找 Autodesk.arx-2026.props 位置,在它下一行插入

<Import Project="Autodesk.mechanical-2026.props" />

file

在预编译头文件中添加用到的头文件

(注:我这里加的也不一定完整,后面有缺的再增加更新)

再编辑 StdAfx.h 文件
file

找到 #include "arxHeaders.h",在它的后面插入下面代码

// AutoCAD Mechanical SDK
///////////////////////////////////
#ifdef ACMSYMBB_CRX_DLLSHARE
#undef ACMSYMBB_CRX_DLLSHARE
#endif
#define ACMSYMBB_CRX_DLLSHARE __declspec(dllimport)

#ifdef ACMSYMBB_CRX_DLLSHARE_DATA
#undef ACMSYMBB_CRX_DLLSHARE_DATA
#endif
#define ACMSYMBB_CRX_DLLSHARE_DATA __declspec(dllimport)

// 必须重新定义这个宏,否则 AcmCObjArray 内部会报错
#undef  DBREF_DECLARE
#define DBREF_DECLARE(AcDbType)

#include <afxtempl.h>
#include "acdb.h"
#include "aced.h"
#include "adslib.h"
#include "rxobject.h"
#include "rxregsvc.h"
#include "actrans.h"
#include "adesk.h"
#include "adeskabb.h"
#include "ol_errno.h"
#include "acgi.h"
#include "acestext.h"

// DBR files
#include "dbid.h"
#include "dbintar.h"
#include "dbptrar.h"
#include "dbidar.h"
#include "dbidmap.h"
#include "dbsymtb.h"
#include "dbents.h"
#include "dbhatch.h"
#include "dbsol3d.h"
#include "dbbody.h"
#include "dbmtext.h"
#include "dbproxy.h"
#include "dbcurve.h"
#include "dbdict.h"

// Ge Lib
#include "geassign.h"
#include "gegbl.h"
#include "gedblar.h"
#include "gearc3d.h"
#include "gelnsg3d.h"
#include "gepnt3d.h"
#include "gept3dar.h"
#include "gemat3d.h"
#include "gevec3d.h"

#include "mistatus.h"
#include "miarray.h"
#include "mibase.h"
#include "acm.h"
#include "acmdef.h"
#include "symbol.h"
#include "cauxent.h" 
#include "symstd.h"
#include "fcframe.h"
#include "FCFSymLib.h"
///////////////////////
// AutoCAD Mechanical SDK

file

file

开发

接着就正常写代码开发即可,比如我在研究读取形位公差的类型和内容
file

形位公差的符号是用的 GDT 字体,实际用的 ASCII 字符,只是使用 GDT 字体时会把 ASCII 字符映射到图形符号。比如我点选同心度,下面输出的内容可以看到:同心度的符号就是 r,位置度的符号就是 j。
file

AutoCAD Mechanical SDK 2026 开发环境配置
Scroll to top
打开目录