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

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

  [复制链接]

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

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

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

x

' Z  n& g6 r0 h3 q6 Y. s' }5 A. W! }NX二次开发源码分享】关闭NX后,做点儿事# U, A# ~, a( B5 S3 O! l2 Y

$ D8 v8 b8 `: m% d# _/ a! `+ y- D[mw_shl_code=c,true]/*! @$ u4 W9 h+ H! y4 A2 c

2 w5 B/ M$ n: E3 g    ufusr_ask_unload is invoked immediately following the completion of ufusr
: V' Z3 c  r& T    (or ufsta when the dll is run from a startup folder) to find out when you
: V1 L" m4 @( ?) F: E5 B0 l2 X0 z    want the dll to be unloaded.  If ufusr_ask_unload returns
: `7 q+ z) g" N* T* R/ x    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is, Q2 J" q1 x+ m8 I! z5 B$ Q. m
    unload when NX is terminating.  To prove to yourself that this works, set
; t7 H2 z7 E' |' Z: J8 f& g0 e    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not9 {+ k3 }% ^; Q
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX8 i6 |4 e; v; o, F* v
    Log File and make a note of the full path to the syslog which will be shown
5 m' y  d5 Q8 q    as its own first line.  Run the dll built from this code (nothing noticable# \. y( e4 O, u- K
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to) R8 x1 t! S4 m* x* V* Q$ h  A
    see this line near the bottom:
/ ~7 @0 F) e- `2 h
) o+ ]% R3 J( J' \; {2 E. s0 MNX is shutting down - running ufusr_cleanup
5 S7 T+ Z1 [% ~; z" ?+ `: C
( F6 o) p) G+ f3 r*/
8 I$ C% J# p/ E- m: R0 i) n3 v#include <stdio.h>
* l0 q3 z7 M# d' ~#include <string.h>2 x  m& B% p' q4 d/ ?& W5 G
#include <uf.h>" c* m; M; C; v! c. f6 z. \" Z
#include <uf_ui.h>! t/ |8 o" e* C/ Y' c! c
#include <uf_exit.h>+ R; q5 c  V0 W
& K+ B7 _" U" m6 D  p) W
#include <stdarg.h>$ a9 t$ b4 H- s+ Z6 p  G3 K' X
+ E6 q" V1 u4 ]4 e8 h
static void ECHO(char *format, ...)
! d" u. t3 L" l; E# p8 P- M{
% k" `6 z  V, l9 u    char msg[UF_UI_MAX_STRING_LEN+1];+ w- e4 v6 b- Z" q2 Z% a
    va_list args;1 I1 f$ K- K, J0 e3 f  C
    va_start(args, format);) V& c& ~) w% J. j( W7 U
    vsprintf(msg, format, args);+ m* C$ U7 |, h( t3 c
    va_end(args);
& o" G8 S! m: o    UF_UI_open_listing_window();( Y$ E$ F% Q# d% P
    UF_UI_write_listing_window(msg);
( h- w, j' {, H9 j9 j9 T  ?/ H    UF_print_syslog(msg, FALSE);
5 f7 L$ L  P* t9 D6 _}
3 m" O, \& v2 {' {+ Y' x* G1 t4 T7 e! E% k
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
' V% ?5 G8 ~$ Z( h# R! Z6 M
5 x7 S0 ^4 |5 f3 tstatic int report_error( char *file, int line, char *call, int irc), M& c" M* L4 _( A- b
{
4 l1 s9 O! g" Y    if (irc)8 f1 n4 ?0 W3 ?' y3 ]3 b
    {
2 ~2 W5 M( |/ x% p        char err[133];7 \/ }" W7 J8 X& b1 q

5 a# \# J* _$ P! Y        UF_get_fail_message(irc, err);
/ X( H/ z% V) c7 F        ECHO("*** ERROR code %d at line %d in %s:\n",; Z( m  S2 T; t) `# \5 n
            irc, line, file);
. B  {, F+ y! _; i3 P" X: I        ECHO("+++ %s\n", err);
, x5 Q! b$ X) h8 Z5 Q6 W        ECHO("%s;\n", call);
' }, @% p1 e1 a5 u$ [    }
. ^  I; l  f, Z+ |, ~
) ?# R5 v* y' i$ I! n% S, u    return(irc);
* a- ^% Y  k( ~  ~7 T/ H  z" ~}0 W. R$ ~9 u  _: g" |% W1 H5 K  Y8 Z
; O4 A, c9 q/ H, D5 A
/*ARGSUSED*/. |1 a$ I% O; \
void ufusr(char *param, int *reTCode, int paramLen)9 F4 C$ U. m& m! ~& V- u, c  x. a  M
{1 J: R2 b9 p  T+ ?3 u
}5 f8 \5 q( x) u0 `1 P6 z; h- f
3 H# B  A7 `! ^) [, L9 @  e+ S; R
/*ARGSUSED*/
3 i7 w" r% ?4 Y2 svoid ufsta(char *param, int *retcode, int paramLen)
( f0 p  F. a$ [( I; l% s- S9 I{9 i' i( `* P! c' D, a2 ]. [
}
$ `, `( l  _3 r) y  s3 c! H
' y) F1 B! d& E9 T8 E) F7 l% ~* V0 R: ?int ufusr_ask_unload(void)
) r- W1 i- n! K3 m{' I. w  Z" A/ p% x/ Q
    return (UF_UNLOAD_UG_TERMINATE);: H4 Q, Z) m) {- \" y. B+ {; Z
}! t% f$ b! W( Z$ w) q9 ^" U. T6 _
) G& H! a6 T+ @& ?* y
void ufusr_cleanup(void)
3 q. E' V9 _5 M% w{
1 \+ @# T! T2 A# g5 h, a+ _    ECHO("NX is shutting down - running ufusr_cleanup\n");4 W$ J7 r# q$ O$ _; R. d# Z7 A

6 B- E" L9 b! \. `, g    /* put your code here */3 z/ h6 l* G$ r$ z1 p
}[/mw_shl_code]
. i7 F0 B; e2 o- k
上海点团信息科技有限公司,承接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
* ]* B9 B; n- {5 g请问这个函数是怎么用的?有什么用?

2 s* w* }% l; i. q' ~9 @入口函数 改成 ufusr_cleanup " l; o8 `& a6 r! V: ^, K* J2 `4 ?

, Z' c6 D* c  ]7 [' H意思是 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二次开发专题模块培训报名开始啦

    我知道了