PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

! k2 x4 q2 |5 JNX二次开发源码分享】关闭NX后,做点儿事
: Z* x: X0 T: T- c1 Q3 Z  O: L* j8 V& l/ v3 N. \' U
[mw_shl_code=c,true]/*" ?% Y& @- k0 @! N" G  ?

  N- `) a" ~; Z) Z4 T% W    ufusr_ask_unload is invoked immediately following the completion of ufusr8 ]* K# q6 |0 D# ?8 Q7 L& Y
    (or ufsta when the dll is run from a startup folder) to find out when you
2 u8 @" g0 M) S; K* y# p8 S    want the dll to be unloaded.  If ufusr_ask_unload returns
2 a* m; u5 _: j# r# [7 p( v    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is1 d! i4 z1 T8 y. l
    unload when NX is terminating.  To prove to yourself that this works, set1 U) J4 z0 \" b/ N- r3 M
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not
' g7 a7 G. T0 O2 m; [# d+ @    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX8 N! r, r% @* R9 O8 y. p
    Log File and make a note of the full path to the syslog which will be shown
8 ^+ J" q2 \8 s: r    as its own first line.  Run the dll built from this code (nothing noticable
' K/ I: h' R! m4 O% q  W1 r1 g    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
( w: U" t" z7 ~2 Q+ K) x4 N    see this line near the bottom:
) [0 j% d2 I2 e9 Y9 N. m" v! r/ I! D) P4 d
NX is shutting down - running ufusr_cleanup0 r* ]5 _2 y8 i) j8 L1 |1 L

& f3 q* n& A4 I" J5 B% U*/
) Z7 {4 W1 G* {& n: o* h#include <stdio.h>
6 y4 ~2 A( Q( u0 ~#include <string.h>
2 h9 e: ^* u9 @/ r. t8 t#include <uf.h>- \6 E0 G9 V+ f; C
#include <uf_ui.h>% m3 |6 I$ {) U# @
#include <uf_exit.h>
; }. s5 Y9 k: R
$ \8 [4 p& o% J, K# c# L#include <stdarg.h>
4 S% @1 o' L8 R, h: J8 N
  V( j" F8 x" Y( Jstatic void ECHO(char *format, ...)
$ L% w4 P: k1 ]- e9 ~{6 }, `0 j3 a3 Q. \% T
    char msg[UF_UI_MAX_STRING_LEN+1];
! E6 {% R1 w1 A    va_list args;
1 x1 \/ ~9 |) V0 Q5 [! k( ?    va_start(args, format);
7 ?7 _& u! Q1 h; h    vsprintf(msg, format, args);0 }3 ?1 i- m- q" R9 y
    va_end(args);
3 O$ {; Y6 A0 n& D9 C( S3 s    UF_UI_open_listing_window();* T: h  d/ u4 s1 h
    UF_UI_write_listing_window(msg);" V+ R& m, O/ J8 u
    UF_print_syslog(msg, FALSE);
8 g; A) L# s+ L9 u; [}
, G( \2 ^5 R$ U) G; r2 v1 H2 j2 N0 t- Z6 B3 n9 j) G$ M
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))& w4 v- S$ e% ~$ [1 u

* t: ?, s. |5 h! xstatic int report_error( char *file, int line, char *call, int irc)8 H, z. K1 v$ y, X
{
$ b6 W$ m. a3 y& C' a' p, t    if (irc)
, B# W1 _! {# [. T4 L! _8 D* u& i    {7 {8 p: U0 D" b4 Q
        char err[133];
7 ]4 }  j/ x9 p5 l1 z
. P+ `4 I2 Y0 Y! l! D        UF_get_fail_message(irc, err);
' N% f' m  \! p5 G/ j        ECHO("*** ERROR code %d at line %d in %s:\n",- Z3 `8 G/ y, d3 A* v  j- n
            irc, line, file);" j6 a8 L9 h# j8 W8 @
        ECHO("+++ %s\n", err);! y+ W2 Q4 x6 B1 o5 u) a
        ECHO("%s;\n", call);
0 w3 X. f# J! K0 Q8 P4 a3 Z( G0 Z    }$ v$ W# t2 [& [  l) l5 j

/ ~( M/ \: K6 T* k    return(irc);
7 g) @) Z! ?, I9 p& h}
/ s7 D$ }! c0 V! j% u2 d" F" L" P8 K
/*ARGSUSED*/# {& h- |5 I3 ^8 W
void ufusr(char *param, int *reTCode, int paramLen)
+ p9 J! e7 h. p- n0 [/ Q+ o$ K{
. [  r, V4 n% n3 y' A' J2 F}
3 y4 A+ @& s7 `+ @5 i$ E, L/ r  S6 B( V* L' O' c! w
/*ARGSUSED*/
+ h+ W' R+ _3 U8 ?* u2 v5 svoid ufsta(char *param, int *retcode, int paramLen)4 F( I  z: f. k9 ?
{2 L6 i. v, o6 z$ I6 y% Z
}9 g7 E; ^6 N, r2 o2 Y

8 s+ x& o# U4 Y& }5 T& mint ufusr_ask_unload(void)( u/ V+ |& H& x6 x
{
4 Q8 `, K3 `/ p# |2 ~- a' K    return (UF_UNLOAD_UG_TERMINATE);
4 H+ K; R( ~( X}
* @9 e: f, S! a( I9 Q# p$ ^+ R6 T! D
void ufusr_cleanup(void)3 _* t) H) i0 v" @% _
{
5 [8 Q& i% H1 ^' |$ C" h' L    ECHO("NX is shutting down - running ufusr_cleanup\n");( ~( n, L6 {* A3 O/ X

" @" w, Z. Y( U# O+ W# g    /* put your code here */& C" Z6 I8 G1 X" W0 t: A, |. j0 R
}[/mw_shl_code]3 r" q+ }! k2 \) @- g  @2 \
上海点团信息科技有限公司,承接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
% n& a$ X) ~8 r请问这个函数是怎么用的?有什么用?
  o! }; h. O- I, c5 r
入口函数 改成 ufusr_cleanup . s4 [$ V2 |) ?1 r* ?4 O; B
* r. d3 b& r! G% }3 Z5 @# C7 l
意思是 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二次开发专题模块培训报名开始啦

    我知道了