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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

; e( X/ n$ g8 K2 G1 oNX二次开发源码分享】关闭NX后,做点儿事
- {3 L- X5 b* i/ O  A1 t6 G
4 c. @/ l! p$ L! _[mw_shl_code=c,true]/*
0 u$ \- f1 @' b5 M' K* C9 M  r( ]' B& I; k: o
    ufusr_ask_unload is invoked immediately following the completion of ufusr
* y& p7 x( a9 s& D; `0 C1 e; l' q    (or ufsta when the dll is run from a startup folder) to find out when you$ c4 ]% Y4 z, I2 `% D
    want the dll to be unloaded.  If ufusr_ask_unload returns
3 K! u  X; R! B' z    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is3 y8 h8 Q2 S  _5 [, I1 i) @
    unload when NX is terminating.  To prove to yourself that this works, set. U4 ^/ v% k* G, N2 o" x
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not! u  @; F* L8 }3 i2 Z( d
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
3 y$ i! Z9 v! A    Log File and make a note of the full path to the syslog which will be shown
' b6 _! j# l& s    as its own first line.  Run the dll built from this code (nothing noticable- H/ W2 g, s4 X6 e! s% o
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to+ \7 B/ C( _5 I7 y
    see this line near the bottom:7 X. P2 g8 ]3 C/ A

5 A. N4 o! r1 ?9 GNX is shutting down - running ufusr_cleanup0 \- g) f; d1 H5 G
( y  X' B0 N( E- D& n
*/6 Q8 L- o* v0 R8 P" F- p. j. u2 t
#include <stdio.h>' z' i% F6 S$ P4 M
#include <string.h>
# Q) ]: R- g& y; X. e5 Y#include <uf.h>6 f- A$ G* O0 e) E, h, r) z
#include <uf_ui.h>
$ a# |/ k& ]  q#include <uf_exit.h>
9 j; Z2 S, {" C# k( [3 ]+ s6 p' l( U" B& m* P& _
#include <stdarg.h>' T' V3 D3 }2 f7 F0 x9 v1 a
1 h+ d0 D+ _5 U
static void ECHO(char *format, ...)2 f- Q0 y' G7 r) x, `0 }2 j* d$ {
{
% f7 T# `; Q, Q( o    char msg[UF_UI_MAX_STRING_LEN+1];9 E5 X2 L; ]; g  p2 L9 r: q1 P
    va_list args;
7 Y3 ^' f/ w' J. M0 l# ?! D; S    va_start(args, format);. s% C* ]9 p. Y/ q% y% |  _
    vsprintf(msg, format, args);0 M% A6 a  P- [% N0 y2 M( Q
    va_end(args);4 \1 l7 [* n1 n' q9 z' n, j
    UF_UI_open_listing_window();
5 @: e9 |" Q' Y/ M6 N( s& U    UF_UI_write_listing_window(msg);4 g2 b( E* U( R! G( p7 }
    UF_print_syslog(msg, FALSE);2 |: @2 D5 b& h0 @) Z: }% w
}
# s& O8 `3 s7 U8 R: E( |* J
7 J4 h+ ~7 I, Q#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))- c! k, A# ^" v+ j

; p! D: ]' O2 }- Z/ Lstatic int report_error( char *file, int line, char *call, int irc)
& M3 n7 G  X9 C3 l{
/ l) }4 v# X; A* b    if (irc)0 W3 L4 v* o2 K# N0 z* N( l  G
    {
0 I" b& A/ q) A: D, |        char err[133];) Z+ K+ x+ `6 S8 c0 m0 f8 I
( R: T1 M4 b$ F0 w" ?% v% s
        UF_get_fail_message(irc, err);. `, [; f# t, H5 U- J2 T: u+ t8 O4 }
        ECHO("*** ERROR code %d at line %d in %s:\n",
( p. s& I: T! O5 W. c5 |& P            irc, line, file);
) N' N2 O  o* i        ECHO("+++ %s\n", err);, A  a; ?+ O2 `' i6 Y
        ECHO("%s;\n", call);
; Z. Z' l. R% Q3 l3 U3 }    }5 K; V% X6 [' l

4 p! i# I0 H1 d# o  _    return(irc);
! F# k. B( Z6 ^- U' i- `}' ?- M( ^: l% @

' `# d; y* j) j6 l* D! u6 ?/*ARGSUSED*/
3 q% ]* n+ V, q2 q+ tvoid ufusr(char *param, int *reTCode, int paramLen)! G* O* [: ~( b6 d% H0 s
{
) P' L8 \1 @, k& Y% p; ]4 Q}; b" A$ {. i8 u+ w0 \

% C% u$ ]9 s* E3 g8 n+ L/*ARGSUSED*/$ D7 n) E: F8 Q9 W" |1 V3 U0 W
void ufsta(char *param, int *retcode, int paramLen)- Q8 V$ H3 [0 u
{
0 Q; s# o, r4 I8 s}- W! H2 M! n/ X) M: k
# l: V8 F* i9 N+ c
int ufusr_ask_unload(void)
9 D$ g" O) J% V. w{
9 U; ^7 i# U  j    return (UF_UNLOAD_UG_TERMINATE);
( b  |) X. _1 R  R4 w, _  ]% p  G# R}3 L! W6 x. X9 y/ [0 o! X; f# m
/ E; n5 ~- l5 u9 Q
void ufusr_cleanup(void)+ l5 e3 N' Q: _2 K+ U& A
{8 ~; ^6 z0 O5 S/ @
    ECHO("NX is shutting down - running ufusr_cleanup\n");+ V) d% |% B1 _8 _
7 D  P4 t$ X0 @4 ]2 |5 L
    /* put your code here */% G4 T% x" x/ @  X& g
}[/mw_shl_code]
" u( j9 B# i3 N% E$ \+ ?
上海点团信息科技有限公司,承接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 R. A6 E- K6 r, O- W1 y! B
请问这个函数是怎么用的?有什么用?
6 K, r, L: S! X, M/ }  j4 D+ ^  w
入口函数 改成 ufusr_cleanup $ ?& I5 E5 i3 _' \% |

1 u% ]1 Z+ F6 F+ Q$ }' l- s1 Z意思是 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二次开发专题模块培训报名开始啦

    我知道了