UG二次开发环境建立教程
- 关于UG二次开发环境的两种建立方法
- 方法一:导入UG二次开发向导模板
- 1.分别安装UG软件和Visual Studio软件,保证软件可以正常打开使用。
- 2.打开UG安装目录,比如在D:\NX12\UGOPEN\vs_files文件夹中,将VB、VC、VC#三个文件夹复制一份。
- 3.将VB、VC、VC#三个文件夹复制到VS软件安装目录下,比如D:\Visual Studio 2019,复制合并原有的文件夹,
- 4.在vs软件安装目录下比如D:\Visual Studio 2019\Common7\IDE同样复制替换合并VB、VC、VC#三个文件夹。
- 5.在路径D:\Visual Studio 2019\中将VB文件夹中的D:\Visual Studio 2019\VB\VBProjects中的.vsz文件,
- 6.将.vsz文件中Wizard=VsWizard.VsWizardEngine.16.0(不同UG版本打开后版本号不同)的版本号根据安装的VS版本进行更改,比如VS2019对应VC版本号为16,对应更改所有的.vsz文件中的版本号。
- 7.同时将VS软件安装目录下,比如D:\Visual Studio 2019\Common7\IDE文件夹下的VB、VC、VC#三个文件夹中projects文件夹的.vsz文件中的版本号也对应更改。
- 8.打开vs软件,在搜索框中输入NX,如果出现如图所示向导模板即可进入UG二次开发环境;
- 9.如果没有出现如图所示的向导模板(UG与VS版本不对应可能会出现此类问题),请关闭VS软件,打开Visual Studio Installer,连接网络进入修改选项。
- 10.选择.NET桌面开发选项,点击修改,等待完成安装,
- 11.进入VS开发环境,在源文件下ufsta模块即可愉快的对UG进行各种开发操作了。
- 12.以上是通过UG自带的向导文件进行二次开发环境的建立,省时省力,不需要进行很多操作进行设置;
- 13.设置环境,在项目工程文件属性中,C/C++选项中,附加包含目录新增UG安装目录下UGOPEN文件夹;
- 14.在工程属性/链接器/输入/附加依赖项,添加二次开发需要的库文件,在UG V17、V18以上:
- 15.导入头文件,stdlib.h、stdio.h、uf.h、uf_modl.h、uf_ui.h,
- 16.在入口函数增加自己的开发内容,即可生成动态链接库文件,使用UG即可打开。
- 17.调用方式:
关于UG二次开发环境的两种建立方法
UG二次开发有两种环境建立方法,一种是借助UG软件自带的向导文件建立VS开发模板,另一种方法就是自己直接在VS开发环境下进行动态链接库或者控制台的开发。
方法一:导入UG二次开发向导模板
1.分别安装UG软件和Visual Studio软件,保证软件可以正常打开使用。
2.打开UG安装目录,比如在D:\NX12\UGOPEN\vs_files文件夹中,将VB、VC、VC#三个文件夹复制一份。
3.将VB、VC、VC#三个文件夹复制到VS软件安装目录下,比如D:\Visual Studio 2019,复制合并原有的文件夹,
4.在vs软件安装目录下比如D:\Visual Studio 2019\Common7\IDE同样复制替换合并VB、VC、VC#三个文件夹。
5.在路径D:\Visual Studio 2019\中将VB文件夹中的D:\Visual Studio 2019\VB\VBProjects中的.vsz文件,
同理将VC文件夹中的D:\Visual Studio 2019\VC\vcprojects中的两个后缀为.vsz的文件,
以及D:\Visual Studio 2019\VC#\CSharpProjects文件夹中的.vsz后缀文件以记事本方式分别打开,
6.将.vsz文件中Wizard=VsWizard.VsWizardEngine.16.0(不同UG版本打开后版本号不同)的版本号根据安装的VS版本进行更改,比如VS2019对应VC版本号为16,对应更改所有的.vsz文件中的版本号。
7.同时将VS软件安装目录下,比如D:\Visual Studio 2019\Common7\IDE文件夹下的VB、VC、VC#三个文件夹中projects文件夹的.vsz文件中的版本号也对应更改。
如果.vsz文件更改后无法保存,可以复制后在外部文件夹中更改完毕后进行替换操作。
8.打开vs软件,在搜索框中输入NX,如果出现如图所示向导模板即可进入UG二次开发环境;
9.如果没有出现如图所示的向导模板(UG与VS版本不对应可能会出现此类问题),请关闭VS软件,打开Visual Studio Installer,连接网络进入修改选项。
10.选择.NET桌面开发选项,点击修改,等待完成安装,
重新进入VS软件,在新建项目搜索框中输入NX即出现UG二次开发相关模板,选择即可进入UG二次开发环境。
11.进入VS开发环境,在源文件下ufsta模块即可愉快的对UG进行各种开发操作了。
12.以上是通过UG自带的向导文件进行二次开发环境的建立,省时省力,不需要进行很多操作进行设置;
如果不想通过UG向导模板进行操作,也可以自己设置进行二次开发环境的建立。
比如要使用VS软件C++语言环境开发UG的动态链接库(.dll)文件,可以打开VS建立动态链接库建立开发环境(内部UF程序)。
外部UF函数建立控制台程序。
13.设置环境,在项目工程文件属性中,C/C++选项中,附加包含目录新增UG安装目录下UGOPEN文件夹;
在属性/链接器/常规/附加库目录,也新增文件夹—UG安装目录下UGOPEN文件夹;
14.在工程属性/链接器/输入/附加依赖项,添加二次开发需要的库文件,在UG V17、V18以上:
外部和内部UF,均需加入libufun.lib、和libugopenint.lib库;
UG NX8以上:使用VC2008以上,再加入libnxopencpp.lib、libnxopenuicpp.lib库
15.导入头文件,stdlib.h、stdio.h、uf.h、uf_modl.h、uf_ui.h,
(一般的常用头文件,具体需要引用什么头文件请参考函数用户手册)将以下规定内容复制到源文件中,在程序入口函数处即可进行UG二次开发。
#define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))
static int report(char* file, int line, char* call, int irc)
{
if (irc)
{
char messg[133];
printf("%s, line %d: %s\n", file, line, call);
(UF_get_fail_message(irc, messg)) ?
printf(" returned a %d\n", irc) :
printf(" returned error %d: %s\n", irc, messg);
}
return(irc);
}
static void do_ugopen_api(void)
{
//在此处进行二次开发代码输入//
UF_terminate();
return;
}
/*ARGSUSED*/
void ufusr(char* param, int* retcode, int paramLen)
{
if (!UF_CALL(UF_initialize()))
{
do_ugopen_api();
UF_CALL(UF_terminate());
}
}
int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
16.在入口函数增加自己的开发内容,即可生成动态链接库文件,使用UG即可打开。
17.调用方式:
UG调用内部UF的方式
1.启动UG后,从File→Execute UG/Open →User Function或者Ctrl+U(快捷方式) 进入, 运行内部UF程序(ufusr接口函数)
2. 从用户创建的菜单中(Menu Script) 调出用户定制的界面(UI Styler), 运行程序(ufsta),这种方法需要更改环境变量参数,新建UG用户变量,更改UG安装包内的 _env.dat文件,在此不再赘述。
(使用UG直接调用.dll文件不需要使用这种方法)
Author by WuXunde