除常用的ufusr()和ufsta()外,还有其它用户出口,下文有其它用户出口入口点,关键字和环境变量
实例
功能:在保存部件前,先检查部件的名称中是否包含了“NXOpen”字符串
使用的是ufput(),环境变量名是USER_FILE,在ugii_env_ug.dat中设置环境变量
USER_FILE = 编译得到的dll文件
#include "uf_all.h";
//入口函数
void ufput(char* parm, int* returnCode, int rlen) {
//初始化
UF_initialize();
//添加用户代码
//获取工作部件标识
tag_t workPart = UF_ASSEM_ask_work_part();
//获取部件的文件名(包括路径)
char partFullName[MAX_FSPEC_SIZE] = { 0 };
UF_PART_ask_part_name(workPart,partFullName);
//获取部件名称
char partName[MAX_FSPEC_SIZE] = { 0 };
uc4574(partFullName,2,partName);
//判断部件名称是否包含NXOpen 字符串
if (strstr(partName,"NXOpen")!= NULL) {
*returnCode = 0;
}
else {
uc1601("部件名必须含有NXOpen",1);
*returnCode = 1;
}
//终止程序
UF_terminate();
}
//出口函数
int ufusr_ask_unload(void) {
return (UF_UNLOAD_IMMEDIATELY);
}
点击保存部件时,部件名没有NXOpen时会提示信息
程序的卸载方式
UF_UNLOAD_IMMEDIATELY | 程序执行完毕立即卸载。在NXOpen C++中,用(int)Session::LibraryUnloadOptionImmediately替代 |
UF_UNLOAD_SEL_DIALOG | 需要在NX主界面单击“File”->“Utilities”->“Unload Shared Image…”,启动 Unload Shared Image工具选择需要卸载的应用程序执行卸载。在NXOpen C++中,用(int)Session::LibraryUnloadOptionExplicitly替代 |
UF_UNLOAD_UG_TERMINATE | 在关闭NX时卸载应用程序,在NXOpen C++中,用(int)Session::LibraryUnloadOptionTermination替代 |