基于 C++ 的 UG/NX 二次开发环境配置

参考链接,原文更详细:基于 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 建模工作区中生成一个长方体。

相关推荐
aqiu11111124 分钟前
【C++算法打怪专栏】C++ `unordered_set` 常用初始化与插入方法总结
开发语言·c++·算法
Terra.K39 分钟前
高精度阶乘求和模板深度解析
开发语言·c++·算法
智码看视界1 小时前
C++智能指针全景剖析及面试20问
开发语言·c++·深度学习·面试·内存管理·智能指针
Peregrine91 小时前
C++ - > 类和对象
java·c++·算法
‎ദ്ദിᵔ.˛.ᵔ₎3 小时前
c++11:fuction包装器
开发语言·c++
霍霍的袁4 小时前
【C++】哈希表实现指南:从原理到开放定址法、链地址法的实现
c++·学习·哈希算法·散列表·visual studio
WL学习笔记5 小时前
类和对象(下)
c++·类和对象
傲世仙尊5 小时前
拷贝构造-传值传参的连锁反应与隐式函数的三个局限
c++
垆边人似月.6 小时前
华为机试题 :最大数
c++·算法·华为
方便面不加香菜6 小时前
C++ 关于多态的知识点讲解
开发语言·c++