PLM之家PLMHome-工业软件与AI结合践行者

[二次开发源码] 【NX二次开发源码分享】关闭NX后,做点儿事

  [复制链接]

2023-1-10 20:46:56 3956 3

admin 发表于 2018-7-12 11:12:47 |阅读模式

admin 楼主

2018-7-12 11:12:47

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x

* U) Y& [: p. U8 ENX二次开发源码分享】关闭NX后,做点儿事
% y' y. `, h) o$ ?5 q+ }4 C9 R* D0 \" Z  L  _: j8 a( J
[mw_shl_code=c,true]/*
# {+ I/ H6 G+ y
% c, V: D, i' m2 p" _9 U    ufusr_ask_unload is invoked immediately following the completion of ufusr+ o- H% G9 U* n
    (or ufsta when the dll is run from a startup folder) to find out when you
" r3 ]2 O9 J$ M8 G( M7 t5 E6 f+ w    want the dll to be unloaded.  If ufusr_ask_unload returns0 C* c* F% p* S0 D
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is9 `0 ~4 Z# S* n6 G5 w8 I2 R
    unload when NX is terminating.  To prove to yourself that this works, set
+ q5 b' ^+ }5 k% p4 n    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not- u! h) s! i- J- A  ~
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX( p9 d& s! U- l, t
    Log File and make a note of the full path to the syslog which will be shown
" K( a/ f1 r  u  w& i( w# u4 ~9 o    as its own first line.  Run the dll built from this code (nothing noticable
7 D, Z4 ~0 w& O" |    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
. u9 H8 w5 ], ^" o/ k    see this line near the bottom:
. G& H5 k7 H  S+ X5 \4 }, j- d3 i1 a9 K: l
NX is shutting down - running ufusr_cleanup
7 |8 q, ]  T  `2 J& z) W! F& F# e8 B$ h2 s1 ?) C) E4 f4 i
*/6 B8 u! p/ s- _& A
#include <stdio.h>% D. w3 D; k* k9 C3 v/ b+ ]' ^
#include <string.h>7 V; T$ ^! n/ k! d% H' A
#include <uf.h>
) I9 l; N; V* Z7 G#include <uf_ui.h>, ]* e' [6 ~$ h7 J* J2 r* R
#include <uf_exit.h>2 }; J8 g$ ~2 q  P7 i- o8 ]4 X
2 ^8 w. y2 j1 ]# z
#include <stdarg.h>
4 @) u( Q. V8 D, t" u0 c- u7 g; s: R# L1 A5 F7 h4 G
static void ECHO(char *format, ...)8 M/ w; `4 u" s# J6 z' e
{* k# N) v9 C1 A% W% S
    char msg[UF_UI_MAX_STRING_LEN+1];
: V: ~! [! Q8 d( w+ y3 C    va_list args;
! ~0 [* T& t6 w& A, j    va_start(args, format);
: r7 J! q8 @) {: c    vsprintf(msg, format, args);
4 V  P" \& X  G    va_end(args);4 M! ~  }* A3 K8 ?* l; ^0 v
    UF_UI_open_listing_window();/ d% M: h. P- Q4 P, G! e$ f- w
    UF_UI_write_listing_window(msg);
8 {1 x+ J% G  ?- t; @3 g$ ?    UF_print_syslog(msg, FALSE);! ?8 l" J% P, [  S, q
}) y& p% F. B% P; \$ I( p
5 C- D/ F4 _7 d( O7 ~( T6 J
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X))), c# M/ Q! R- Z/ ]4 x# X# T3 ]8 K
0 c7 _: r, J- \3 P
static int report_error( char *file, int line, char *call, int irc)" S) X% `5 p; X
{
- v( J4 A6 ]' A/ m2 K    if (irc)7 i" }( ?+ {/ O' t+ K0 d
    {
* I# V# e5 ?# h4 @* C# B- b8 r        char err[133];
$ _0 L$ U0 j8 k" ^2 M
0 p) L- U8 o; S9 n' ?        UF_get_fail_message(irc, err);
. b8 l# ^+ r5 i: I        ECHO("*** ERROR code %d at line %d in %s:\n",
2 y/ R2 M8 a& \, z; U            irc, line, file);6 m3 \3 l+ M' n% ?1 x, b
        ECHO("+++ %s\n", err);5 @1 A, {6 b% d6 m
        ECHO("%s;\n", call);
# p; F: a0 T- ]5 ]* @8 l' S    }) L: D- y/ c! }4 o) x9 [, w

2 N; ^+ q& x  n2 }: z& V; I2 m    return(irc);
) w4 b2 W. ^- @}
- ]" h% b. M- J2 f9 L
0 z6 B7 U; u# H/*ARGSUSED*/7 S$ N2 R; J8 @1 y. @/ k$ f, g* t
void ufusr(char *param, int *reTCode, int paramLen)7 |$ G$ w0 x2 {) B8 E, X
{# g  ^4 ?7 i. G) Y1 @
}
& P0 \" t: @& {# {  ^3 ]$ v* \
/*ARGSUSED*/
  H  ]1 ?8 S' M- wvoid ufsta(char *param, int *retcode, int paramLen)) V7 K1 T* O) Z5 W; u& I) P
{
8 T5 h$ P/ v+ B# R}6 }* i+ e; ?# L5 \
5 T6 M, `* u& q( e
int ufusr_ask_unload(void)
& L% D" j- M- i& v) h. D. u{' i# V  L1 x  A6 ^: ?
    return (UF_UNLOAD_UG_TERMINATE);0 ]7 ~+ B4 i( V7 O- p8 W" W" d
}; I& m) [7 d9 K5 P
( \8 {. I' e! ]7 g7 P+ I4 G
void ufusr_cleanup(void)  \7 l- P1 K1 P& F
{
: F/ x1 l2 I# B+ D+ s    ECHO("NX is shutting down - running ufusr_cleanup\n");+ n  P8 d" H$ J/ t* i

% [2 m' v7 L" d3 j& R    /* put your code here */
# j( j6 H/ Q8 _) E0 _; H; M}[/mw_shl_code]
% J, q  D. L1 T0 C! a" g
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复5

licxsw 发表于 2019-12-25 08:49:24

licxsw 沙发

2019-12-25 08:49:24

请问这个函数是怎么用的?有什么用?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

admin 发表于 2020-2-13 08:43:55

admin 板凳

2020-2-13 08:43:55

licxsw 发表于 2019-12-25 08:49
. B+ Z) `' [0 w. [) [1 K4 R1 I请问这个函数是怎么用的?有什么用?

" g. u. e5 P2 g) V( `入口函数 改成 ufusr_cleanup 7 A% `7 L0 w0 o4 t' E+ Q

/ w2 R& |, L/ n2 B# O意思是 NX 程序退出后,你可以做些事情 ,具体做啥可以自己写,就是个入口
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复 支持 反对

使用道具 举报

licxsw 发表于 2023-1-10 20:46:56

licxsw 地板

2023-1-10 20:46:56

测试了 ufusr_cleanup入口处复制文件到指定目录下,不成功
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了