【NX二次开发】开发好几年,还只会用ufusr?其他用户出口函数介绍
用户出口(User Exit)是NX Open 中的一个重要概念。NX在运行过程中某些特定的位置存在规定的出口,当进程执行到这些出口时,NX会自动检查用户是否在此处已定义了指向内部程序位置的环境变量:若没有定义,则以NX默认的方式继续运行下去;若已定义,则从该处自动运行用户定制的应用程序。利用不同的User Exit,可使用户定制的应用程序在NX运行到特定点时被自动执行。每个User Exit 都有唯一的出口名称,以便用户在子程序中调用,不同的 User Exit使用不同的出口函数,最常用的 User Exit是ufsta()与 ufusr(),ufsta()是NX菜单启动时的 User Exit,ufusr()是直接激活的 User Exit。通常情况下,User Exit函数的参数和返回值都相同。User Exit函数的定义如下:void 入口函数名(char * param,int * retcode,int rlen);其中param和retcode 是输出参数,rlen 是指参数param 的长度,由NX系统自动处理。
根据最后的附表,可以完成许多调用dll的方法。下面以打开部件时运行dll为例。
第一步 设置环境变量:
方法1(不推荐):右键计算机->属性->高级系统设置->环境变量
方法2:打开 ".....\Siemens\NX 12.0\UGII\ugii_env_ug.dat",搜索找到打开部件时运行dll,对应的环境变量USER_RETRIEVE,在ugii_env_ug.dat文件中搜一下(如下图),然后 将#USER_RETRIEVE=; 改为 USER_RETRIEVE=D:\WangPaiFeiXingYuan.dll”

第二步 设置出口函数:
打开部件时运行dll需要设置入口为ufget,例子:
#include <uf.h>
#include <uf_ui.h>
#include <uf_exit.h>
extern DllExport void ufget(char *param, int *returnCode, int rlen)//注意入口不是ufusr
{
UF_initialize();
uc1601("Hello 王牌飞行员!", 1);
UF_terminate();
}
extern int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
生成的dll放到 上一步环境变量指定的路径。


第三步 打开NX,点击打开部件,测试成功!

附:环境变量、用户出口对应表。
| 描述 | 环境变量 | 入口函数 |
| Open Part | USER_RETRIEVE | ufget |
| New Part | USER_CREATE | ufcre |
| Save Part | USER_FILE | ufput |
| Save Part As | USER_SAVEAS | ufsvas |
| Import Part | USER_MERGE | ufmrg |
| Execute GRIP Program | USER_GRIP | ufgrp |
| Add Existing Part | USER_RCOMP | ufrcp |
| Export Part | USER_FCOMP | uffcp |
| Component Where-used | USER_WHERE_USED | ufusd |
| Plot File | USER_PLOT | ufplt |
| 2D Analysis Using Curves | USER_AREAPROPCRV | uf2da |
| User Defined Symbols | USER_UDSYMBOL | ufuds |
| Open CLSF | USER_CLS_OPEN | ufclso |
| Save CLSF | USER_CLS_SAVE | ufclss |
| Rename CLSF | USER_CLS_RENAME | ufclsr |
| Generate CLF | USER_CL_GEN | ufclg |
| Postprocess CLSF | USER_POST | ufpost |
| Create Component | USER_CCOMP | ufccp |
| Change Displayed Part | USER_CDISP | ufcdp |
| Change Work Part | USER_CWORK | ufcwp |
| Remove Component | USER_DCOMP | ufdcp |
| Reposition Component | USER_MCOMP | ufmcp |
| Substitute Component Out | USER_SCOMP1 | ufscpo |
| Substitute Component In | USER_SCOMP2 | ufscpi |
| Open Spreadsheet | USER_SPRD_OPN | ufspop |
| Close Spreadsheet | USER_SPRD_CLO | ufspcl |
| Update Spreadsheet | USER_SPRD_UPD | ufspup |
| Finish Updating Spreadsheet | USER_SPRD_UPF | ufspuf |
| Replace Reference Set | USER_RRSET | ufrrs |
| Rename Component | USER_NCOMP | ufncp |
| NX Startup | USER_STARTUP | ufsta |
| Access Genius Library Management System | USER_GENIUS | ufgen |
| Execute DebUG GRIP | USER_GRIPDEBUG | ufgrpd |
| Execute User Function | USER_UFUNC | ufufun |
| Initialize new operation | USER_CREATE_OPER | ufnopr |
| CAM Startup | USER_CAM_STARTUP | ufcams |
【NX二次开发】开发好几年,还只会用ufusr?其他用户出口函数介绍的更多相关文章
- 【NX二次开发】用户出口函数介绍
用户出口(User Exit)是NX Open 中的一个重要概念.NX在运行过程中某些特定的位置存在规定的出口,当进程执行到这些出口时,NX会自动检查用户是否在此处已定义了指向内部程序位置的环境变量: ...
- 【NX二次开发】大开眼界,DLL还可以这么调!
NX二次开发应用程序有交互式.批处理和远程3中模式.交互模式的应用程序(.dll)在NX界面环境下运行.dll以动态链接库的方式被加载到NX的进程空间中.dll可以通过下列几种方式执行. 1.直接激活 ...
- NX二次开发-BlockUI对话框嵌套MFC对话框制作进度条
半年前在一些QQ群看到有大神NX二次开发做出了进度条,那个时候我还不会弄,也不知道怎么弄得,后来断断续续得研究了一下,直到今天我把它做出来了.内心还是很喜悦的!回想自己这两年当初从没公司肯给我做NX二 ...
- NX二次开发-UFUN发射线函数UF_MODL_trace_a_ray的用法
今天是国庆节,放假休息懒得动,没有出去玩,在家研究一下发射线函数UF_MODL_trace_a_ray.小弟以前在软件公司混的时候,当时我做的那个项目就用到了UF_MODL_trace_a_ray,当 ...
- NX二次开发-使用NXOPEN C++向导模板做二次开发
版本 NX9+VS2012 1.怎么往VS软件里添加VC,C#,VB向导模板 先到NX安装目录下UGOPEN文件夹里找到这三个文件夹 拷贝到VS的安装目录下 这里有几个注意事项,VS2017,VS20 ...
- NX二次开发-Block UI C++界面关于 在Block UI中UF_initialize();和UF_terminate();的使用
关于 在Block UI中UF_initialize();和UF_terminate();的使用 用Block UI作NX二次开发的时候,不需要在使用UFUN函数的时候加UF_initialize() ...
- NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))
NX二次开发API里没有对EXCAL读写操作的相关函数,市面上有很多种方法去实现,比如UFUN调KF,ODBC,OLE(COM组件)等等.这里我是用的OLE(COM组件)方式去做的,这种在VC上创建的 ...
- NX二次开发-基于NX开发向导模板的NX对Excel读写操作(OLE方式(COM组件))
在看这个博客前,请读者先去完整看完:NX二次开发-基于MFC界面的NX对Excel读写操作(OLE方式(COM组件))https://ufun-nxopen.blog.csdn.net/article ...
- NX二次开发-基于MFC界面对话框与NX交互的开发
打开VS2013 点击新建,选择MFC DLL 点击确定 点下一步 什么都不改,直接点完成 进来之后先编译一下,看是否编译成功 打开项目属性,更改这几处 $(UGII_BASE_DIR)\ugopen ...
随机推荐
- 快速运行cmd
方法一 运行 windows+r 输入cmd 指定要手动输入cd ...... 方法二 文件地址栏 在指定路径在文件地址栏前面输入cmd 方法三 shift+鼠标右键 打开到指定文件夹,shift+鼠 ...
- maven工程添加servlet依赖
实现导入HttpServlet <!-- Servlet依赖--> <dependency> <groupId>javax.servlet</groupId& ...
- Linux安装与使用FTP服务-vsftpd
简介 vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行 ...
- 【BUAA 软工博客作业】个人博客作业
项目 内容 课程:2020春季软件工程课程博客作业(罗杰,任健) 博客园班级链接 作业:热身作业,阅读并撰写博客 作业要求 课程目标 学习大规模软件开发的技巧与方法,锻炼开发能力 作业目标 阅读教材, ...
- work2_求交点数
教学班级:周三上午三四节 项目地址:https://github.com/875571216/- PSP表格 psp2.1 Personal Software Process Stages 预估耗时( ...
- input type
input的type有: text 文本输入 password密码输入 file选择文件 radio单选按钮 checkbox复选按钮 submit对应form的action按钮 button 普通按 ...
- opencv——形态学深究(分析和应用)
摘要: 形态学一般指生物学中研究动物和植物结构的一个分支.用数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具. 基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对 ...
- Office·Word高级·VBA基础概念语法
阅文时长 | 5.21分钟 字数统计 | 1823字符 『Office·Word高级·VBA基础概念语法』 编写人 | SCscHero 编写时间 | Monday, June 29, 2020 文章 ...
- centos下查看网卡,主板,CPU,显卡,硬盘型号等硬件信息
centos下查看网卡,主板,CPU,显卡,硬盘型号等硬件信息 rose_willow rose_willow 发布于 2016/06/16 11:32 字数 902 阅读 405 收藏 0 点赞 0 ...
- echo -n -e "请输入重启间隔的时间(分钟):\t"
echo -n -e "请输入重启间隔的时间(分钟):\t"read interval##echo -n "Your choice is " # 加上 -n 可 ...