NX-UG二次开发环境配置方法—史上最详细版(以NX11.0和Visual Studio 2017为例)

发布时间:2025-12-10 11:28:15 浏览次数:8

一、前言

本人之前在用NX12.0以及Visual Studio 2017进行NX二次开发时,进行过开发环境的配置,当时也遇到了一点问题,好在最后解决了。最近由于项目需求,我卸载了NX12.0,重装了NX11.0,然后在配置环境的时候就遇到了麻烦的问题,为了避免大家绕弯路,这里直接把我的经验分享给大家,觉得有用的话点个赞吧!

配置开发环境的方法分为以下几步,按照这个方法一步一步来,基本可以保证大家都能配置成功!

二、二次开发环境配置方法

因为我使用的NX11.0和Visual Studio 2017 ,所以以下步骤都是基于NX11.0和Visual Studio 2017 进行,大家版本和我不一样的也不要紧,一步一步来,后面会有说明。

1、安装NX11.0和Visual Studio 2017

安装软件就不用多说了,大家可以通过相应渠道安装自己需要的软件版本,我这里安装的是NX11.0和Visual Studio 2017,需要注意的是软件安装目录不能包含中文路径。最终我的安装目录为D:\software\NX11.0和D:\software\VS2017

NX11.0安装目录 Visual Studio 2017安装目录

2、配置Visual Studio

为什么要配置Visual Studio呢?其实不配置也可以,我们可以建一个空项目,然后手动修改该项目属性,添加附加包含目录、附加库目录等,使其包含NXOpen的相关库函数,但是每次创建项目都要修改属性是一件很麻烦的事情,于是就有了配置Visual Studio这个操作。

配置Visual Studio就是让我们在创建项目时可以直接选择以模板向导的方式创建一个项目,这种方式创建出来的项目已经自动帮我们配置好了所有属性,可以直接写代码编译运行了。下面直接介绍步骤:

①打开NX安装目录下的UGOPEN\vs_files,也就是D:\software\NX11.0\UGOPEN\vs_files,里面有三个文件VB、VC、VC#(为了保险我备份了一下,你们可以不用备份),如下图所示,右键复制下来。

②打开Visual Studio的安装目录,也就是D:\software\VS2017,里面也有VB、VC、VC#三个文件,在空白处粘贴,之前复制的三个文件会和这个目录下的VB、VC、VC#进行合并,如下图所示。

③用记事本打开文件夹D:\software\VS2017\VC\vcprojects中的NX11_NXOpenCPP.vsz和NX11_Open.vsz文件,将其中的版本号修改为15.0,然后保存,如下图所示。如果你是其他的VS版本,可参照后面给出的版本对照表。


打开D:\software\VS2017\Common7\IDE\VC\VCWizards\NX11_NXOpenCPP\html\1033路径,里面有三个.htm文件,用记事本打开default.htm,按Ctrl+F查找1033,把strURL += "1033";这一行注释掉,把它上一行//strURL += window.external.GetHostLocale();取消注释。然后查找下一个1033,做同样的修改,每个.htm文件都有两处需要修改。同理修改另外两个文件AppSettings.htm和EntryPoints.htm。再将D:\software\VS2017\Common7\IDE\VC\VCWizards\NX11_Open\html\1033里面的三个.htm文件做同样的修改,然后打开Visual Studio就可以正常地创建向导了!


三、添加环境变量

添加环境变量的目的是:NX在启动后会自动加载我们设置的用户目录,读取里面的菜单文件和动态链接库文件等,从而实现二次开发的功能。

先随便在一个目录下建立一个文件夹,最好是便于访问的目录,例如我就是在D盘建立了一个NXOPEN文件夹,在NXOPEN下再新建startup和application两个文件夹。startup文件夹用来存放菜单文件,application文件夹用来存放对话框文件.dlx和动态链接库文件.dll,如下图所示。

接下来添加环境变量:

在此电脑上右键 -> 属性 -> 高级系统设置 -> 高级 -> 环境变量 -> 新建,变量名设为UGII_USER_DIR,变量值设为刚刚新建的那个文件夹,我这里是D:\NXOPEN,然后点击确定,环境变量就添加好了。


四、测试

接下来做一个简单的测试,实现一个块的创建。

1、在之前建立的文件夹D:\NXOPEN\startup下新建一个menu.men文件,用记事本打开,将以下内容复制进去,保存。

VERSION 120EDIT UG_GATEWAY_MAIN_MENUBARAFTER UG_HELPCASCADE_BUTTON MyTOOLSLABEL MyToolsEND_OF_AFTERMENU MyTOOLSBUTTON MyTOOLS_BUTTON1LABEL create_blockBITMAP blockACTIONS create_block.dllEND_OF_MENU

2、创建一个NXOpen C++ Wizard项目,位置自选,项目名称改为create_block,如下图所示。跳出向导界面后直接点Finish,项目就创建好了。



3、打开create_block.cpp文件,先在头文件处加一行代码#include <uf_modl_primitives.h>


然后找到do_it()函数,在do_it()函数中添加如下代码:

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();}

点击生成解决方案,会在该项目路径...\create_block\x64\Debug下生成一个create_block.dll文件,将该.dll文件复制到二次开发目录D:\NXOPEN\application下,如图所示:

4、打开NX软件,新建一个空白零件。点击菜单 -> MyTools -> create_block,这就是我们自己创建的菜单按钮,点击后会自动生成一个块。测试完毕!


五、结语

如果有错误,欢迎大家指正,觉得有用的话点个赞吧!!

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477