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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x
% G$ ^0 _5 v. d/ j1 c# a/ ~1 z
NX二次开发源码分享】关闭NX后,做点儿事5 T- a. W& Z2 ~+ Y( y2 u9 H
0 M* S" `) {7 P1 P9 ~: e
[mw_shl_code=c,true]/*
) e2 M6 m- s' Q( k; q' s2 L9 C) [- J4 E
    ufusr_ask_unload is invoked immediately following the completion of ufusr
+ U0 e% G& d3 w% Z    (or ufsta when the dll is run from a startup folder) to find out when you
- O, j. b; m4 b3 x    want the dll to be unloaded.  If ufusr_ask_unload returns- Q7 p  p% U5 m( I& S2 c
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is( J' [( M+ N# X" u8 ~# H4 L$ h
    unload when NX is terminating.  To prove to yourself that this works, set) I, q8 A0 D: j1 I3 X
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not3 `) K( L0 e% ~. x
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
5 V1 h, w7 M+ u5 _# z2 f5 o. D+ j    Log File and make a note of the full path to the syslog which will be shown4 d9 l; S* k+ c
    as its own first line.  Run the dll built from this code (nothing noticable& i2 P, U5 Q2 b  R8 T3 f
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
. y; ?+ Y$ F+ |+ ~5 L, Y    see this line near the bottom:7 }, P+ k/ Q+ H+ U- C1 Q  [
+ T& ~  i9 b, F/ V! [
NX is shutting down - running ufusr_cleanup, V' ~" W# g# r% F

) ]* j3 j/ ?: w! \; N*/( o& {/ ?4 g) F2 m/ ?# J0 J
#include <stdio.h>/ h7 s% n% F; R5 g. ^+ z
#include <string.h>3 C% V' F5 q2 k  m; y- D. v
#include <uf.h>4 }6 |$ }& T( N7 @4 T
#include <uf_ui.h>
2 ~1 J7 u# A% h) ?6 l- J* P#include <uf_exit.h>
* }9 r- |/ \0 E( r2 f1 M
1 V% F) a8 I" [1 s+ o# g#include <stdarg.h>
- {, i% F9 I# @4 c$ A8 @9 T/ Q+ r
' P& b& I8 u" @# D3 b5 y5 p0 T2 |static void ECHO(char *format, ...)2 A5 }2 E. J  O
{! i4 M! [, \5 d/ ~6 m
    char msg[UF_UI_MAX_STRING_LEN+1];6 A8 {4 K, j/ w% b
    va_list args;
3 _8 O6 A  g) @! a    va_start(args, format);
, K+ m6 c# C: k5 u. W    vsprintf(msg, format, args);6 T, u" x" C! O) r' q6 v9 D
    va_end(args);7 i) Z0 \: o' P: n+ x, A
    UF_UI_open_listing_window();
0 f: C0 r6 W! h6 g    UF_UI_write_listing_window(msg);
( W/ D) b' E# y* F& {    UF_print_syslog(msg, FALSE);
7 q* m  d- B7 X+ P* k7 _, F}
* t6 }) ^2 ]$ y: D* ^4 j" k9 z2 c7 R1 y: `0 [, v3 n, p* X
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
/ `$ R7 P2 T" |: L
, Q7 O2 m! u1 R. `+ ^static int report_error( char *file, int line, char *call, int irc)2 f- b. Q  C% x+ n/ N& h! o0 W2 E
{
1 N1 o" x, ^# s( `; M$ }9 ~7 d7 a    if (irc)1 i5 t" ^+ K9 c. {( h
    {
3 ^  g, U  k- s/ }        char err[133];
  ^! e0 G3 m  @& o- `
- ~( Q# e$ H6 e6 x$ n/ `- g        UF_get_fail_message(irc, err);
7 }% H. M% D7 ^        ECHO("*** ERROR code %d at line %d in %s:\n",$ @; y3 R* B! H" o  J9 ^+ C- m
            irc, line, file);
* l9 b/ `' f% z- q        ECHO("+++ %s\n", err);" l. l3 y9 l8 |8 {2 V
        ECHO("%s;\n", call);- i9 v$ i" A, Q4 \
    }: V1 a0 A7 a3 l" ?2 l  ~! [7 D* {

5 }; H/ T. `: q9 }    return(irc);
* y  E: u' j7 R}# I8 f  T2 F, c  x' ~: c/ a
$ u& h( j# b- r# U$ P  R* C- m
/*ARGSUSED*/
  u2 I4 E- }$ P5 {1 lvoid ufusr(char *param, int *reTCode, int paramLen)- v. D% P( O. P! W8 W5 ]
{; x  M' n, D+ g0 s# o3 G- U$ I
}
1 b6 q# h0 u8 O: j/ m9 I
# |& l- t+ V, f$ `/*ARGSUSED*/
7 z, m: `5 ], Q* {, _* svoid ufsta(char *param, int *retcode, int paramLen)" N$ u5 W$ r: z. E! N
{
4 j2 L( Y: V! a! F" Y2 m}
# w# x4 v( y6 ]) D- k. z- y
( C% M$ H) v+ {- q( @int ufusr_ask_unload(void)2 s( ~# u* r2 O. q8 m) |- K' K
{$ Q5 ^6 o" Z5 V8 X* @/ V) Z/ j
    return (UF_UNLOAD_UG_TERMINATE);
. L4 P. l5 I/ O( m}
# c" }7 l5 k  c# O/ |
- V- M6 k( f3 rvoid ufusr_cleanup(void)
& P6 [. h0 `8 ?4 Q" \{
3 V7 D+ Z- C7 E* }    ECHO("NX is shutting down - running ufusr_cleanup\n");
0 E4 j$ w  l! G; g3 r" s3 b# l1 d7 M$ k0 E# x* {* Y* e
    /* put your code here */
7 {3 \) L7 [7 t- U3 I9 c' l}[/mw_shl_code]
& \% F5 t0 s0 Q8 N' ^4 S& I* V
上海点团信息科技有限公司,承接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
, M( H$ j# u% A请问这个函数是怎么用的?有什么用?
. a- v6 ~% {  X$ S9 q$ n8 V* `+ Q
入口函数 改成 ufusr_cleanup
9 \( i7 ^8 L5 i" Z% {  l5 h" U9 v7 D
意思是 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二次开发专题模块培训报名开始啦

    我知道了