一、前言

本人之前在用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.0D:\software\VS2017

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_NX 二次开发 添加保存事件监控


NX11.0安装目录

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_NX 二次开发 添加保存事件监控_02


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#(为了保险我备份了一下,你们可以不用备份),如下图所示,右键复制下来。

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_环境变量_03

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

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_NX 二次开发 添加保存事件监控_04

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

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_环境变量_05


NX 二次开发 添加保存事件监控 ug二次开发环境搭建_NX 二次开发 添加保存事件监控_06


同理将D:\software\VS2017\VB\VBProjects文件夹下的NX11_VB.vsz文件D:\software\VS2017\VC#\CSharpProjects文件夹下的NX11_VCS.vsz文件的版本号也修改为15.0 VS版本对照表


VS版本

对应版本号

Visual Studio 2017

15.0

Visual Studio 2015

14.0

Visual Studio 2013

12.0

Visual Studio 2012

11.0

Visual Studio 2010

10.0

④此时打开Visual Studio会发现,创建VB和VC#项目时,已经出现了可供选择的模板向导,但是创建VC项目时却没有模板向导选项,其实原因在于真正的VC文件夹位于VS安装目录下的D:\software\VS2017\Common7\IDE路径下,此时我们只需要重新将NX安装目录D:\software\NX11.0\UGOPEN\vs_files里面的VC文件右键复制下来,然后复制到路径D:\software\VS2017\Common7\IDE下,并同样修改D:\software\VS2017\Common7\IDE\VC\vcprojects里面的NX11_NXOpenCPP.vszNX11_Open.vsz文件的版本号。

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_NX 二次开发 添加保存事件监控_07


NX 二次开发 添加保存事件监控 ug二次开发环境搭建_二次开发_08


⑤到这里,打开Visual Studio,创建VC项目时就会看到模板向导选项,如下图所示。点击确定创建项目,如果出现下图所示向导,则说明已经配置成功了,可跳过第⑥步,直接看三、添加环境变量。如果点击确定出现了脚本错误,请继续看第⑥步。

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_NX 二次开发 添加保存事件监控_09


NX 二次开发 添加保存事件监控 ug二次开发环境搭建_二次开发_10

⑥处理脚本错误。我在配置的时候就出现了如下脚本错误,如下图所示,搞了很久也没解决,后来在网上看到别人的方法,试了一下发现解决了,现在分享给大家。

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_环境变量_11


打开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.htmEntryPoints.htm。再将D:\software\VS2017\Common7\IDE\VC\VCWizards\NX11_Open\html\1033里面的三个.htm文件做同样的修改,然后打开Visual Studio就可以正常地创建向导了!

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_二次开发_12


NX 二次开发 添加保存事件监控 ug二次开发环境搭建_环境变量_13


NX 二次开发 添加保存事件监控 ug二次开发环境搭建_二次开发_14

三、添加环境变量

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

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

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_二次开发_15


接下来添加环境变量:

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

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_环境变量_16


NX 二次开发 添加保存事件监控 ug二次开发环境搭建_二次开发_17

四、测试

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

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

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

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

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_二次开发_18


NX 二次开发 添加保存事件监控 ug二次开发环境搭建_NX 二次开发 添加保存事件监控_19


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

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_NX 二次开发 添加保存事件监控_20


然后找到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下,如图所示:

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_二次开发_21

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

NX 二次开发 添加保存事件监控 ug二次开发环境搭建_Visual_22


NX 二次开发 添加保存事件监控 ug二次开发环境搭建_Visual_23

五、结语

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