PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

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

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

x
! W: @5 u% \- Y; l! K6 V9 z2 O
NX二次开发源码分享】关闭NX后,做点儿事
, X) N" E: W" F3 B% a5 _# g$ Y7 r2 u9 J' T
[mw_shl_code=c,true]/*( q+ ?* u, c; Z

" w% e" U" p8 A9 o' d    ufusr_ask_unload is invoked immediately following the completion of ufusr' i; z: d3 N* ]
    (or ufsta when the dll is run from a startup folder) to find out when you
. y9 x7 q8 o$ w, D7 b% h    want the dll to be unloaded.  If ufusr_ask_unload returns3 g* T/ B; C3 i* C$ K
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is( [* [6 R% k9 C+ Y
    unload when NX is terminating.  To prove to yourself that this works, set
5 Q# L' ]. w, X! J% B& \    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not# w; \! S) D- ]) |5 e2 c1 n- ^
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
, U3 k2 F4 B1 d: v    Log File and make a note of the full path to the syslog which will be shown& V& g2 V0 E/ B/ X& t. g
    as its own first line.  Run the dll built from this code (nothing noticable
' D9 I( ?! U  f! ^( G* I    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
0 B" o: X8 b* Q* a0 j' A( [1 f# e    see this line near the bottom:; ?: A0 M) M5 j% f) p
# x' Q. d* j& w/ Z5 d
NX is shutting down - running ufusr_cleanup
" D  p  W  J, k; Y9 I. j0 w: o. [5 X  @% X: _
*/: i6 A" X+ o4 o1 P* X' t. \6 j
#include <stdio.h>" i5 `: {; h, X: C
#include <string.h>
: a. q5 w' e: \" [, r. \#include <uf.h>& f/ J, r, y  F6 A: V. ]5 |
#include <uf_ui.h>5 M2 Z. u& Q' |* h0 P* K
#include <uf_exit.h>
. e. l# q- c% e8 [% I
- o- V/ F: l) y5 V, _! H#include <stdarg.h>: m/ E6 f0 @* `' W
- e, \: K& L' t! r# \
static void ECHO(char *format, ...)
5 X/ J5 L- B! E+ V5 Y: W; U{
# B( G/ ^9 I- R    char msg[UF_UI_MAX_STRING_LEN+1];# v1 J- ?( [8 I, k3 Y+ K
    va_list args;) n# `- q3 L2 x/ L7 v
    va_start(args, format);
" Z; f: B% T1 w6 ^. U8 B2 C" a* N    vsprintf(msg, format, args);0 f- g( e! ~1 d, t8 c, \
    va_end(args);
4 |2 \/ A; l8 _    UF_UI_open_listing_window();
/ j* z1 F, k$ u( j1 I    UF_UI_write_listing_window(msg);% l" E: m' z. p
    UF_print_syslog(msg, FALSE);
' v4 }7 P: k4 Z$ J9 T2 y- Z% Y" d$ \}1 P$ R# |+ Q  ]" i: J

( x6 F4 {* w6 B+ j  [- P6 L#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))) ]8 z8 S  k! v/ L2 h
  B, Q& E8 h) g3 W! `& R3 `% h
static int report_error( char *file, int line, char *call, int irc)
( c& E: v8 d8 B0 N9 ]2 _' D, Q{
8 {6 O. @5 g! a( ^* R    if (irc)8 |3 ~4 k% _7 w5 H$ }
    {, m* X% O5 U' S9 j5 @% E+ k
        char err[133];
: S+ ]6 q3 ]: t% i5 z5 n0 p5 @
) y& C  C( Z+ I9 l6 ^        UF_get_fail_message(irc, err);
3 m" Z$ x. O8 ]% ^- e* t        ECHO("*** ERROR code %d at line %d in %s:\n",. n3 }8 \* z  S7 N. A- s) o
            irc, line, file);; Z: A  i+ ~) A% A, W7 X. I
        ECHO("+++ %s\n", err);" U* ?" T, G! C7 E
        ECHO("%s;\n", call);7 m8 T1 x. p: T9 f2 b9 b, m9 f% K
    }. j" p9 F( T" P
( m; O% n8 G2 \) S: m+ o
    return(irc);$ Z5 f6 G' l+ C, ~
}3 r: i5 }! W+ z4 H9 @" f' z

& j% T% a" o& W# \/*ARGSUSED*/: l& \) z( z+ `2 R  h
void ufusr(char *param, int *reTCode, int paramLen)
' {0 h. M& j" U6 y2 V{2 a3 _! g  Z# L$ K% S& T
}
: P9 w6 V3 a2 @% P' [; k& u
. U5 _# `6 Z6 j- B8 b# V" ~/*ARGSUSED*/2 i% T8 L7 s1 m9 {9 R6 `
void ufsta(char *param, int *retcode, int paramLen)) F1 O) l! P4 Q
{. J( r8 k: O: c9 ^; Z7 ?
}1 n2 y6 Q' n4 M2 G5 c

3 i6 X8 T1 N  [: `1 ?int ufusr_ask_unload(void)
9 f* Q  O" d8 U3 T6 v* W{
. j0 m; W6 a9 i/ o" u    return (UF_UNLOAD_UG_TERMINATE);' W4 |5 {% {- `
}
$ ~4 q8 A: H) U; \
6 @: P6 Z* d. b8 X! dvoid ufusr_cleanup(void)& Y" W; g7 Z' K
{& p" U! f* L) Q' Z+ m
    ECHO("NX is shutting down - running ufusr_cleanup\n");
% n9 \/ U2 n0 \$ E0 U; ^5 L
5 a" I) L8 {5 g8 G    /* put your code here */
/ J# m: i6 n' h1 k- P' q}[/mw_shl_code]
7 s. j1 V1 b% z7 D
上海点团信息科技有限公司,承接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. k. R4 r) i- K
请问这个函数是怎么用的?有什么用?
+ {. @% Z7 \7 s( e  o
入口函数 改成 ufusr_cleanup 7 g# M0 p& u/ E8 P
2 b9 i0 z, }" }2 x) P4 Q; c
意思是 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二次开发专题模块培训报名开始啦

    我知道了