基于 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 建模工作区中生成一个长方体。

相关推荐
杰之行6 小时前
Fast-DDS Transport 层架构详解
c++·人工智能
W23035765736 小时前
Linux C++ 基于 timerfd + epoll 实现高性能定时器队列(完整源码 + 超详细解析)
linux·开发语言·c++·线程池
Lochor Lee6 小时前
C++学习笔记——输入输出的格式
c++·笔记·学习
j7~6 小时前
【Linux】基础IO超万字解析(文件描述符)(2)
linux·运维·服务器·c++·file·重定向·文件描述
lingzhilab6 小时前
零知派ESP32——TCS3200高精度RGB颜色识别系统教程
c++·mfc
蜡笔小马6 小时前
10.C++设计模式-代理模式
c++·设计模式·代理模式
郝学胜-神的一滴6 小时前
CMake 010 :一步到位链接静态库
开发语言·c++·qt·程序人生·系统架构·cmake
小则又沐风a6 小时前
C++继承
开发语言·c++
雪度娃娃6 小时前
转向现代C++——在创建对象时注意区分()和{}
开发语言·c++
Tisfy6 小时前
VSCode Docker(Code Server)首次调试C++长时间下载debuginfo问题
c++·vscode·docker