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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x
# X- P3 a+ ^& U& R! Y5 {
NX二次开发源码分享】关闭NX后,做点儿事
/ ]# }; ?4 z; n" s9 ~* Y6 V+ ]4 w& s
[mw_shl_code=c,true]/*; u: e% ^# a+ f7 l
1 s3 m- B  R6 g. g& V. x
    ufusr_ask_unload is invoked immediately following the completion of ufusr: ~- U" f& e6 v8 b- C1 F  R
    (or ufsta when the dll is run from a startup folder) to find out when you
' b# `* c0 X+ w  o$ S5 t  J1 \* ^    want the dll to be unloaded.  If ufusr_ask_unload returns- b" B2 F$ n4 A! l
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
4 L! ]3 w7 `; Z    unload when NX is terminating.  To prove to yourself that this works, set* S( m. b, x; r" `& F" P# L
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not
; U# W5 o& m8 i" N    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX$ F. }7 K' Z" \$ ]4 Y7 t$ b1 o
    Log File and make a note of the full path to the syslog which will be shown' E! w5 B" ]2 @. M
    as its own first line.  Run the dll built from this code (nothing noticable
, ], |& N* _% \( q    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
" \+ \9 l1 C& o* a# e5 N& G    see this line near the bottom:) S. X( X* g/ Y
+ H# ]) \7 ]: i: W% h) T
NX is shutting down - running ufusr_cleanup) \6 @) u) {" k7 s& b* I- R' v
- o7 L9 _; g+ p, K) |4 K
*/
- ?, J* \5 F3 x2 q  @& u0 m3 V#include <stdio.h>& l3 \3 m1 V0 M1 h3 |
#include <string.h>
: D& [/ A) X4 k- S#include <uf.h>
* f; q2 j4 T* _% u  H- K0 U#include <uf_ui.h>
% s& b' L. t5 P1 r2 _0 J) p#include <uf_exit.h>: ^- ^+ T5 E/ @0 u6 q

: Z. P, e9 Y, M6 F+ `#include <stdarg.h>
6 }$ h# H7 |  T3 B5 _3 A  W$ k$ F
0 U8 ?  F4 ^0 U1 Bstatic void ECHO(char *format, ...)
" H) X) ~( [3 D' V0 Y{
. X9 R# X5 H! V( ]  g: I    char msg[UF_UI_MAX_STRING_LEN+1];* V2 l5 s6 m: M, Y2 V6 J! d
    va_list args;
: s/ I. k5 g+ c1 J3 t3 Z    va_start(args, format);
8 T7 v; x; @8 z! P" [7 h; h8 m) G    vsprintf(msg, format, args);
* ~+ D: E' ?: [" n- I- z    va_end(args);9 M- `1 R2 X, y1 R6 G
    UF_UI_open_listing_window();
# r& f/ ]4 I/ X) J2 {7 w    UF_UI_write_listing_window(msg);
0 K; z, N9 J! A7 b    UF_print_syslog(msg, FALSE);
, O- N) w& P, m9 E( }) G2 |. Q}
- c3 f/ V( v1 ~) M6 N3 O. ^. k2 F; Q0 n+ l. d
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
/ l8 T) q2 @! c$ w
1 V8 w8 [% e! E- D( @static int report_error( char *file, int line, char *call, int irc)
6 B! S! C2 w  o% n3 ?9 T, O{
" Q* V6 ^  [0 ^! d    if (irc)) k* j, \8 a* f3 [4 P; L+ O
    {
1 ^  z! T8 Y* m0 f: C7 W! j        char err[133];* C$ @& Z9 j+ \$ C7 Q

; ]2 c$ @' e% j% f        UF_get_fail_message(irc, err);; S  J: e: p+ q9 _
        ECHO("*** ERROR code %d at line %d in %s:\n",- m6 W# P" f1 ?4 U7 w3 T6 n' x
            irc, line, file);: u) d6 \8 d+ L3 X* O+ v+ j
        ECHO("+++ %s\n", err);
+ {* ]" f2 i; L/ W% l        ECHO("%s;\n", call);
+ x6 m/ {* t* G0 }: G    }
% l9 u' j9 i; G1 z; b& V
! b! b( V1 I8 X4 t    return(irc);7 }* e4 ?- Z& G3 Z8 K
}2 q4 q+ D  s, l# l) ?7 c" w) w

9 n1 ~" S( j9 H/*ARGSUSED*/2 N$ G7 e  |( _' j( Y
void ufusr(char *param, int *reTCode, int paramLen)
& ]6 [- i0 g6 L/ W/ o{& I& v' u/ V' O3 x
}% ^( z  {' W# d2 _+ u

, J, J" R6 ], U+ [- e4 w! q/*ARGSUSED*/
) j, M  c% f; b' @; Uvoid ufsta(char *param, int *retcode, int paramLen)" {1 ]3 B& R. e6 U
{
. C4 N; X" A8 z( ]& u}0 o* h" v5 P1 W/ ?5 M

0 E  K9 G. o4 G; mint ufusr_ask_unload(void)
! U  k: O9 |' ^7 Q{
' K3 R5 P0 y% M  W0 V    return (UF_UNLOAD_UG_TERMINATE);( L3 p9 x" a6 P8 M
}4 |: O# x/ E" U# d1 ?# i; S1 r5 o3 E* f
- l- i  G$ a/ i6 o' p. f, I; w' D4 O
void ufusr_cleanup(void)# ^. r1 @/ N% k* B
{3 q% c/ g" V, O  d0 P4 W2 K2 n, h* k
    ECHO("NX is shutting down - running ufusr_cleanup\n");. B# h: F; ?. B" N5 z: N

& E* M2 R/ g2 @3 r/ T    /* put your code here *// v# _& p; P( Z% P8 r8 ~$ M( X
}[/mw_shl_code]& h! F2 M7 E) u! h& [- n9 G" n
上海点团信息科技有限公司,承接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, }+ d2 d! M+ `" Q
请问这个函数是怎么用的?有什么用?

# P- a& r; V" x8 i% U入口函数 改成 ufusr_cleanup
& Z5 u0 p3 i: k7 W: k
3 _1 e2 }+ e6 [. ^9 _意思是 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二次开发专题模块培训报名开始啦

    我知道了