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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

1 B0 G6 g/ x+ T9 c( lNX二次开发源码分享】关闭NX后,做点儿事
$ A: D0 i; M! f) Y
: `3 }1 g" P) Z4 |4 c[mw_shl_code=c,true]/*
1 y6 _( X. m! m5 k
  |, |# [8 K+ q7 A9 K! B    ufusr_ask_unload is invoked immediately following the completion of ufusr
. c% Q# Y- f, \7 K8 g# y/ h    (or ufsta when the dll is run from a startup folder) to find out when you
/ T$ H4 {7 h7 V1 ^  L% N' K# q/ t    want the dll to be unloaded.  If ufusr_ask_unload returns5 h" L$ C7 H- Y3 [  x9 O  L% j3 \
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
/ R$ i- Z0 D, I    unload when NX is terminating.  To prove to yourself that this works, set2 ]& J1 I3 h0 [* c+ H% U
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not, C% f  g; ]( D0 c2 B  Y
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
! R7 u0 M% J2 M    Log File and make a note of the full path to the syslog which will be shown
. B* P# a0 d) @# a. ^    as its own first line.  Run the dll built from this code (nothing noticable0 X/ c( ^5 `0 N7 ]  e2 L
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
" w1 \. M/ }7 F& ^$ Z. n: c    see this line near the bottom:
% z+ {9 r7 C; U0 k$ n* d; m+ ^  u- ^/ S# p0 |
NX is shutting down - running ufusr_cleanup& A- O& r* Z2 I7 t6 Z
6 ^2 h9 s+ T( \( W! k' E
*/
+ ]$ a( ^$ i! H$ ]! t* H& a* d#include <stdio.h>; x0 `5 O, u* h1 k/ S: l
#include <string.h>
0 t; b; a6 N9 a3 r#include <uf.h>
+ ]- o) L' L- j3 Z#include <uf_ui.h>) _% I1 \4 Z6 J5 S8 N+ ]
#include <uf_exit.h>
, n2 X" @5 e  z
& ]3 a( P: o+ i5 q0 S" S#include <stdarg.h>! d% Z4 c. u9 e1 ]5 @" ^* _0 Y. X

8 U6 b5 c. ^! L4 k; Ystatic void ECHO(char *format, ...)
+ |! r. I( ]) o# V* a{/ {: K) s5 K' V+ }4 t
    char msg[UF_UI_MAX_STRING_LEN+1];- Q* r1 \5 `+ x: i& I
    va_list args;
* I$ D* }2 P: w; Z    va_start(args, format);
, _& B1 Q% c( Z/ ^    vsprintf(msg, format, args);
! g" `+ V7 B0 z    va_end(args);
! p: f- U  y# m1 I: s: G: N0 i    UF_UI_open_listing_window();! i8 y- j/ N4 P
    UF_UI_write_listing_window(msg);% Z- l+ r, c5 e, b7 R9 a6 y
    UF_print_syslog(msg, FALSE);5 `. T6 P  \7 D$ j
}
; v* u9 n% d9 D7 q
* ]8 @" @5 D- X( t' }: E#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))  r' J* a5 z* I- z' r& ]

# R2 D5 x$ ]" n' Z. l& Z, mstatic int report_error( char *file, int line, char *call, int irc), E* h0 @, y, q8 x5 y' V
{2 K/ O% M# Y, L% I
    if (irc)
9 I' I- p$ v2 E* H4 O) Q3 Y( W    {
$ z& w: ?5 `# N" S" K        char err[133];
+ e$ X+ z9 `5 V8 F5 p4 i% t% y; V2 A" o8 |+ a
        UF_get_fail_message(irc, err);
4 [7 I" Z2 _8 M+ ^        ECHO("*** ERROR code %d at line %d in %s:\n",! G& K; h& s/ Q% ^6 b9 t* a: s+ e
            irc, line, file);# X$ D. p/ l/ ^9 E" X- n2 y9 q/ @
        ECHO("+++ %s\n", err);; Y; O4 j. Z& W& a! Z! P; E, C! j1 s
        ECHO("%s;\n", call);
* m1 K# G* a5 S    }/ `3 r; f' a& o2 _1 ?) W
8 f1 m( j% }6 t& Z! t: B
    return(irc);
$ s' H5 b0 n. C) h}4 {$ T% O! |- C
- ?7 J9 c, J% X  }  a: C
/*ARGSUSED*/
2 T& X9 c3 g& T! g0 M0 Dvoid ufusr(char *param, int *reTCode, int paramLen)
# [. I( v; h5 E# d: f9 g) N* ]1 ^, Q0 E{# t0 E! A3 |: b7 C- y& C5 ^
}
) ]4 d% W+ I6 V2 _" Y' ^! O4 ], R  i& m) N7 w6 V$ i$ [
/*ARGSUSED*/
) V, S5 G' {8 L" i) Q  hvoid ufsta(char *param, int *retcode, int paramLen)
% G/ s/ ?2 z) N6 W{6 z  z/ ~, z$ [, ]+ {
}
7 a& Y  {( `# ]1 B
% A6 k2 u% }/ f; Nint ufusr_ask_unload(void)) F7 @+ h! j4 h8 R* @: \% L; X
{
; {% u: r7 u+ b: `6 d    return (UF_UNLOAD_UG_TERMINATE);
& p, ^; E% E& t# k}8 S1 E/ T  {/ p; {, ?1 _
3 i: i% o/ N# R6 e: o
void ufusr_cleanup(void)
, Z7 v7 G; j5 Y+ A$ Y) x% r{: X4 a- z: [" @: u! E) A/ |" u
    ECHO("NX is shutting down - running ufusr_cleanup\n");$ l6 O: Z$ c2 Q
) i7 _9 u9 n$ W# |1 [
    /* put your code here */$ \. {3 a8 E: y( y' E& H
}[/mw_shl_code]1 b! r4 n; c/ p( l7 L" Z
上海点团信息科技有限公司,承接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* V" I$ |) V& L+ l: G; u! ?* R
请问这个函数是怎么用的?有什么用?

( p6 \* k/ }, ^) @入口函数 改成 ufusr_cleanup ; _. m% c" \( R6 ?9 p  O

4 u% X# F* L: i5 j% {, a意思是 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二次开发专题模块培训报名开始啦

    我知道了