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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x
" e5 s, r9 p; ?. g
NX二次开发源码分享】关闭NX后,做点儿事
/ E- J, B  K0 @, V0 _$ Z
) x) M7 c* n) r+ S[mw_shl_code=c,true]/*
2 a" }4 ]( b$ u6 O. ^$ d5 x$ }. j  {% q9 G" b
    ufusr_ask_unload is invoked immediately following the completion of ufusr
1 U7 f6 V/ J$ m; L8 h/ z    (or ufsta when the dll is run from a startup folder) to find out when you7 P! u$ L9 B9 i: q% [" r  K' m$ J
    want the dll to be unloaded.  If ufusr_ask_unload returns
* y$ Z4 v$ K, |! x+ d/ Z% y    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
. d/ j1 P9 T1 b6 A    unload when NX is terminating.  To prove to yourself that this works, set
% n; f# R. a) ?2 _) q    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not! t4 y' b) v7 U. w
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX/ B/ Q9 h3 v3 F- k; i
    Log File and make a note of the full path to the syslog which will be shown1 y" ]0 l8 w: p3 o  F! w
    as its own first line.  Run the dll built from this code (nothing noticable2 \2 Y" G6 k# V/ k" t
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to) b) E9 q5 p/ Z' f" E+ {
    see this line near the bottom:
. ~$ Q$ b/ K6 {  q* |* F; D
  ~. y, s; e* k6 t  SNX is shutting down - running ufusr_cleanup0 y+ S& l+ @6 N- i4 G2 z

5 b. y9 i8 _+ _+ l*/
0 r/ F9 `% M3 v#include <stdio.h>9 W( K- O, F9 `( @# @! i1 q' }
#include <string.h>' w% \6 w, x- b/ ]
#include <uf.h>
% G, c8 I% [2 w& s#include <uf_ui.h>
3 Y( A) {8 I: X: v$ O7 P$ |! c#include <uf_exit.h>: i: w0 {3 }4 v

. J6 g; l* \7 l; e5 _#include <stdarg.h>
$ Z" k! ]+ [9 ^( z
0 Y% {, s& Y$ Bstatic void ECHO(char *format, ...)
) i* H- ?  r4 U  |7 {{
8 I/ i; P, m! i" d. Z    char msg[UF_UI_MAX_STRING_LEN+1];
2 j( t" |. j* L7 N5 R; L( s( U' v! a    va_list args;
" H' ?$ _, E, d7 k, a3 }    va_start(args, format);. _9 _! v' F8 N2 y8 y7 |
    vsprintf(msg, format, args);
6 S3 A! X+ S8 t) \    va_end(args);2 J) U  ]1 f0 ?3 c6 L4 o
    UF_UI_open_listing_window();9 c2 t) \  X5 i# a
    UF_UI_write_listing_window(msg);% T$ ]6 Y1 n' g) d$ F) }- v" k5 |
    UF_print_syslog(msg, FALSE);5 E( O5 M5 r6 Q% H
}
2 n! O- Q: s7 q# Z- J. n
, ?" r" R/ ~: C- t7 j$ o$ j#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
% O( O4 h& R$ G+ d  ]7 \; ^
) T% N) z% b( cstatic int report_error( char *file, int line, char *call, int irc). o9 G4 L' S9 X- l8 v# T3 w
{
! q7 `5 [, _5 a+ E7 D* C    if (irc), ]( z3 Q& D% \% d
    {
! N: [$ c2 `2 T/ R1 e        char err[133];* I3 H: j6 B6 f2 h" y, q

4 o$ p! {# [- o) K; K) x, |        UF_get_fail_message(irc, err);
) R8 `7 M0 q. V; c7 ]        ECHO("*** ERROR code %d at line %d in %s:\n",
8 I; `' }" u$ }% G+ N            irc, line, file);
& ?* K' F, X3 w& R) F. h3 Q5 ?        ECHO("+++ %s\n", err);6 e  j2 P( z* X( N6 E4 x
        ECHO("%s;\n", call);0 q; ]2 l4 s. c) M
    }, D$ R  B' w3 O0 J

1 _4 m( n: S$ Z8 @    return(irc);
2 _: R3 K- S! M0 O}. p7 Y, x2 \, _9 Q% t9 {0 t+ I5 A
" |4 m  ~9 ^5 r( K9 m
/*ARGSUSED*/9 l, \# Q; R( r$ N' J& K
void ufusr(char *param, int *reTCode, int paramLen)  k/ A# Y1 x' S5 V6 v$ d$ h
{
+ K* R' O+ v+ z5 i6 g% W$ C}3 w$ P+ J% w, z
) M4 K. r7 T  O  |/ L* n+ q, i
/*ARGSUSED*/8 ~0 U+ T: M. K7 `; Z5 R: o8 W5 W
void ufsta(char *param, int *retcode, int paramLen)- n! f- G# ]9 n0 _
{. s& k9 }/ n' K
}
& `' ]9 ?8 w% m  F0 ~# _: b2 L$ V1 y9 q4 `
int ufusr_ask_unload(void)5 s$ L0 S+ Z" B& ~% ^8 P0 v
{) u" G; N" e4 W$ ?6 A& ^6 Y
    return (UF_UNLOAD_UG_TERMINATE);
2 ~* p+ j# s8 q0 K}+ }9 B9 ?! [) M2 |
" Y# ^# z5 _5 C$ ]
void ufusr_cleanup(void); F* ?) y6 |5 T! ~
{
& d& }6 f; n- u6 U0 B( P/ b    ECHO("NX is shutting down - running ufusr_cleanup\n");
. g: z) N1 \7 W
% B9 G# Z, |' t+ N    /* put your code here */
7 I# e% d6 P( m& g2 s5 T}[/mw_shl_code]
1 n, q# k6 f% v' m2 f
上海点团信息科技有限公司,承接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
( C% d$ P3 ^; R请问这个函数是怎么用的?有什么用?

% Q- k; |0 I' V( d入口函数 改成 ufusr_cleanup
2 I5 f0 X7 Y' Y$ D0 B$ G/ w% ?) l; F3 q/ u. t
意思是 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二次开发专题模块培训报名开始啦

    我知道了