一、前言
本人之前在用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\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.vsz
和NX11_Open.vsz
文件的版本号。
⑤到这里,打开Visual Studio,创建VC项目时就会看到模板向导选项,如下图所示。点击确定创建项目,如果出现下图所示向导,则说明已经配置成功了,可跳过第⑥步,直接看三、添加环境变量
。如果点击确定出现了脚本错误,请继续看第⑥步。
⑥处理脚本错误。我在配置的时候就出现了如下脚本错误,如下图所示,搞了很久也没解决,后来在网上看到别人的方法,试了一下发现解决了,现在分享给大家。
打开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 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
,项目就创建好了。
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,这就是我们自己创建的菜单按钮,点击后会自动生成一个块。测试完毕!
五、结语
如果有错误,欢迎大家指正,觉得有用的话点个赞吧!!