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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x
$ t+ g, Z8 h/ [5 Y
NX二次开发源码分享】关闭NX后,做点儿事
4 D' w/ v1 A) z6 @/ K/ L2 x/ X0 D6 }+ _
[mw_shl_code=c,true]/** F7 t5 I* o' N1 j2 C, X3 O" [

% Z! @, |3 {- p/ L6 B    ufusr_ask_unload is invoked immediately following the completion of ufusr& Y; z6 k2 n' Y; D) m
    (or ufsta when the dll is run from a startup folder) to find out when you
! ?2 I& z% b4 r- }5 t    want the dll to be unloaded.  If ufusr_ask_unload returns* F' g& I  R! h+ m
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
8 d7 j6 V# ~9 ?0 }% N) [: ]    unload when NX is terminating.  To prove to yourself that this works, set3 p: C: f! n8 [& J* P
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not9 ]" U2 T8 E6 T
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
  N* d  [( L2 q0 j! j) ~    Log File and make a note of the full path to the syslog which will be shown
( n3 y1 y& k, c5 V# O    as its own first line.  Run the dll built from this code (nothing noticable9 a8 P9 T+ r* u' L/ g
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to0 l) b( B! a1 l1 v+ P3 C; k- p
    see this line near the bottom:7 G% d9 r3 H& w( \

* W6 t6 ?' T3 xNX is shutting down - running ufusr_cleanup
* m* W2 P; o$ O, U/ L- U
" C- ~0 X' p+ T9 i$ P5 ^* h8 {- y*/
% M* a. ~9 F! y1 u1 ~, o#include <stdio.h>
9 Q* I5 O! a8 s7 p' z8 B8 C- p#include <string.h>
7 T1 L; H! R% Y% u3 E; l#include <uf.h>
) ]' [2 H+ }8 g' q1 j& n8 w* b#include <uf_ui.h>. E0 i# E& x' u3 Z; J% D
#include <uf_exit.h>
1 m2 `% }$ r8 O! T8 l: m' g5 T9 ]5 ?6 y. ~! p8 T9 o7 P
#include <stdarg.h># ?. R/ r4 [6 ?

  `; q7 w1 W1 H5 hstatic void ECHO(char *format, ...)& D' y9 b# M* c/ B
{& H, u/ L8 q/ K: D
    char msg[UF_UI_MAX_STRING_LEN+1];
" I) \6 J7 i/ a' B: t1 S    va_list args;: Q' u6 t: l) W7 ]
    va_start(args, format);' z8 [7 d9 I0 D) j, w
    vsprintf(msg, format, args);' B/ I% e+ G1 D& R8 y
    va_end(args);
- H6 `2 \0 D: t    UF_UI_open_listing_window();
' W/ A4 m! F6 C8 @2 g    UF_UI_write_listing_window(msg);" ~: w2 u0 V& x! d% m+ I" t8 X% Y/ ~
    UF_print_syslog(msg, FALSE);, K; [2 _1 F/ L7 l3 G1 O
}
; y% [  S/ O- F$ a/ N, T0 w& X$ s; K- g$ E% Q
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
. B. l2 Y: W4 Y- x+ t
2 X- f$ F5 F" }3 gstatic int report_error( char *file, int line, char *call, int irc): l* c( l% s$ M
{
3 o- m5 }& ]' r# o; Q    if (irc)
8 C  u* H1 r# I7 I( L: p    {
; m) m1 L+ J* A: R  G0 E+ W        char err[133];( ?7 w& s3 ^( k; A& Y) d% d

9 x. u' l7 H/ q$ ~" ^2 q5 m        UF_get_fail_message(irc, err);& \! h4 \% S& m7 z1 x6 T' m6 H  e( u
        ECHO("*** ERROR code %d at line %d in %s:\n",
* G$ l' {; n1 ?* U  {4 A$ l, ?4 r            irc, line, file);
+ d4 ?* d: [6 q4 X        ECHO("+++ %s\n", err);
# c# C( m! s; P, s& z        ECHO("%s;\n", call);6 c1 y# m0 W7 `4 G% x1 a, {
    }
& G! ^( Q1 f" q; W% i
! n$ G. }3 `$ l( V    return(irc);) b( R# [( q  |6 ~
}4 r% S6 H  i2 G3 d" Q

: H0 n4 `/ D; A5 a# i# l/ K/*ARGSUSED*/$ `; o) w9 |3 F  w) q4 l
void ufusr(char *param, int *reTCode, int paramLen)
8 o' |! s+ u- j% r0 P{- n( f) g, E0 r0 W
}
4 K5 w# t" z3 H: X* s6 ]: c& _$ m; ^, ?  V
/*ARGSUSED*/
4 d; j* {2 v# dvoid ufsta(char *param, int *retcode, int paramLen)' }1 _5 c5 _3 A
{$ B( f0 Q3 G4 }1 P* [' c4 N
}& A3 U4 \* d! x- M  L* x5 H
/ Z% L1 g; z3 {0 V+ A9 E% U3 m
int ufusr_ask_unload(void)
1 ]: E2 H* J& ^' j1 F' w$ p4 t) f{
* u3 C: X9 i/ g- N    return (UF_UNLOAD_UG_TERMINATE);
% {+ O" d7 H. ~# p7 m}
1 H( s" q! z& P1 X! I9 o0 g- l! H3 i# ?, _' U
void ufusr_cleanup(void)9 @  \- _4 @& S1 Y# d3 F3 r# `6 E
{3 b0 \  t2 z7 a# J7 m! z% {7 U
    ECHO("NX is shutting down - running ufusr_cleanup\n");! ?" L( g/ I  z+ J1 C4 R
9 K% J: ]% P6 O
    /* put your code here */$ v8 {0 u4 N% ?$ P9 m' Z
}[/mw_shl_code]
! Q' u/ g% @7 {; A9 t1 N& ~2 o1 p
上海点团信息科技有限公司,承接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
2 U5 ?! X9 Z! g, f$ }* `请问这个函数是怎么用的?有什么用?

8 X$ P8 v$ F2 m! u0 n9 |% R入口函数 改成 ufusr_cleanup   G: h. |/ ~5 W* s  k! v

0 j9 v$ \& ^+ g9 y  P& X意思是 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二次开发专题模块培训报名开始啦

    我知道了