点击查看详细介绍

【NX二次开发】开发好几年,还只会用ufusr?其他用户出口函数介绍。 精华帖

王牌飞行员 VIP会员 6年前 3798 6

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


用户出口(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 PartUSER_RETRIEVEufget
New PartUSER_CREATEufcre
Save PartUSER_FILEufput
Save Part AsUSER_SAVEASufsvas
Import PartUSER_MERGEufmrg
Execute GRIP ProgramUSER_GRIPufgrp
Add Existing PartUSER_RCOMPufrcp
Export PartUSER_FCOMPuffcp
Component Where-usedUSER_WHERE_USEDufusd
Plot FileUSER_PLOTufplt
2D Analysis Using CurvesUSER_AREAPROPCRVuf2da
User Defined SymbolsUSER_UDSYMBOLufuds
Open CLSFUSER_CLS_OPENufclso
Save CLSFUSER_CLS_SAVEufclss
Rename CLSFUSER_CLS_RENAMEufclsr
Generate CLFUSER_CL_GENufclg
Postprocess CLSFUSER_POSTufpost
Create ComponentUSER_CCOMPufccp
Change Displayed PartUSER_CDISPufcdp
Change Work PartUSER_CWORKufcwp
Remove ComponentUSER_DCOMPufdcp
Reposition ComponentUSER_MCOMPufmcp
Substitute Component OutUSER_SCOMP1ufscpo
Substitute Component InUSER_SCOMP2ufscpi
Open SpreadsheetUSER_SPRD_OPNufspop
Close SpreadsheetUSER_SPRD_CLOufspcl
Update SpreadsheetUSER_SPRD_UPDufspup
Finish Updating SpreadsheetUSER_SPRD_UPFufspuf
Replace Reference SetUSER_RRSETufrrs
Rename ComponentUSER_NCOMPufncp
NX StartupUSER_STARTUPufsta
Access Genius Library Management SystemUSER_GENIUSufgen
Execute DebUG GRIPUSER_GRIPDEBUGufgrpd
Execute User FunctionUSER_UFUNCufufun
Initialize new operationUSER_CREATE_OPERufnopr
CAM StartupUSER_CAM_STARTUPufcams

1

最新回复 (6)
  • tianmu1972 VIP会员 6年前
    1

    路过,顶下楼主!!!

  • forecast 6年前
    2

    路过,顶下楼主!!!

  • boyue 5年前
    3

    谢谢分享,顶下楼主!!!

  • yy306683560 5年前
    4

    感谢楼主分享。。

  • 王小九 VIP会员 4年前
    5

    谢谢分享,,,,,,,,

  • king_chinese VIP会员 4年前
    6

    谢谢分享,,,,,,,,

请登录后发表新帖