参考链接,原文更详细:基于 C++ 的 UG/NX 二次开发环境配置
一、配置 Visual Studio
1.1 拷贝 VB、VC、VC
打开NX安装目录下的C:\Program Files\Siemens\NX1926\UGOPEN\vs_files ,里面有三个文件VB、VC、VC# ,如下图所示,右键复制下来。

打开Visual Studio的安装目录D:\ Program Files (x86)\Microsoft VisualStudio\2019\Community ,里面也有**VB、VC、VC#三个文件,在空白处粘贴,之前复制的三个文件会和这个目录下的 VB、VC、VC#**进行合并,如下图所示。

勾选"为所有当前项目执行此操作 ",点击"继续 "

1.2 修改 VC 中的 NXOpenCPP.vsz 和 NXOpen.vsz 版本号
用记事本/Notepad++打开文件夹
D:\ Program Files (x86)\Microsoft VisualStudio\2019\Community\VC\vcprojects
中的NXOpenCPP.vsz和NXOpen.vsz文件,将其中的版本号修改为16.0,然后保存,如下图所示。

根据VS版本不同,修改值可参照下表
修改情况如下图所示:


1.3 修改 VB 中的 NXOpen_VB.vsz 版本号
同理将D:\ Program Files (x86)\Microsoft VisualStudio\2019\Community\VB\vcprojects 文件夹下的NXOpen_VB.vsz文件的版本号也修改为16.0
1.4 修改 VC# 中的 NXOpen_VB.vsz 版本号
同理将D:\VisualStudio\2022\Community\VC#\CSharpProjects文件夹下的NXOpen_VCS.vsz文件的版本号也修改为17.0
1.5 修改 IDE/VC 中的 NXOpenCPP.vsz 和 NXOpen.vsz 版本号
将 NX 安装目录 C:\Program Files\Siemens\NX1926\UGOPEN\vs_files 里面的VC文件右键复制下来,然后粘贴到路径 D:\ Program Files (x86)\Microsoft VisualStudio\2019\Community\Common7\IDE

并同样修改D:\ Program Files (x86)\Microsoft VisualStudio\2019\Community\Common7\IDE\VC\vcprojects 里面的NXOpenCPP.vsz和NXOpen.vsz文件的版本号16.0 。

1.6 模板向导测试
到这里,打开Visual Studio,创建 VC 项目时就会看到模板向导选项,如下图所示。点击"创建新项目(N)"

选择"NXOpen C++ Wicard",点击"下一步"

点击创建

出现NXOpenCPP Wizard向导界面,说明已经安装成功。

二、添加环境变量
添加环境变量的目的是:NX 在启动后会自动加载我们设置的用户目录,读取里面的菜单文件和动态链接库文件等,从而实现二次开发的功能。
我就是在K盘建立了一个UG_613文件夹,在文件夹下再新建startup和application两个文件夹。

接下来添加环境变量,在搜索栏直接搜索环境变量,点击环境变量

点击"系统变量(S)"下的"新建",变量名设为UG_OPEN_USER_DIR ,变量值设为刚刚新建的那个文件夹,我这里是K:\UG_613 ,然后点击确定,环境变量就添加好了。

三、测试
接下来做一个简单的测试,实现一个方块block的创建。
在之前建立的文件夹K:\UG_613\startup下新建一个menu.men文件
用记事本或Notepad++打开,添加以下内容:
cpp
VERSION 120
EDIT UG_GATEWAY_MAIN_MENUBAR
AFTER UG_HELP
CASCADE_BUTTON MyTOOLS
LABEL MyTools
END_OF_AFTER
MENU MyTOOLS
BUTTON MyTOOLS_BUTTON1
LABEL create_block
BITMAP block
ACTIONS create_block.dll
END_OF_MENU

打开Visual Studio,选择"创建新项目(N)",选择"NXOpen C++ Wizard",点击"下一步":

置项目名称"NXOpenCPP_Wizard_613TEST",保存位置为"K:\UG_613\projects**"

在NXOpenCPP Wizard向导页面中,选择"Finish"

打开NXOpenCPP_Wizard_613TEST.cpp**文件,在头文件处加一行代码
cpp
#include <uf_modl_primitives.h>

然后找到do_it()函数,在do_it()函数中添加如下代码:
cpp
void MyClass::do_it()
{
// TODO: add your code here
//将以下代码复制到你的do_it()函数中
UF_initialize();
double origin[3] = { 0.0, 0.0, 0.0 };
char * edge_len[3] = { "40", "60", "80" };
tag_t blk_obj_id = NULL_TAG;
UF_MODL_create_block1(UF_NULLSIGN, origin, edge_len, &blk_obj_id);
UF_terminate();
}

点击"解决方案'NXOpenCPP_Wizard_613TES',右键,选择"生成解决方案(B)"

生成成功

会在该项目路径K:\UG_613\projects\NXOpenCPP_Wizard_613TEST\x64\Debug 下生成一个NXOpenCPP_Wizard_613TEST.dll 文件,将该.dll文件复制到二次开发目录K:\UG_613\application 下,如图所示:


打开NX软件,点击左上角的文件,选择"新建",

文件名为613test_model.prt点击"确定"

即可得到如下界面

Ctrl+U打开上一步生成的DLL文件(NXOpenCPP_Wizard_613TEST.dll.dll)。

NX 会执行此动态库中的入口函数ufusr

在 NX 建模工作区中生成一个长方体。
