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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

# J) V: T4 w' O( gNX二次开发源码分享】关闭NX后,做点儿事
0 E: g" P' a* Y: m  k) p
( t: V6 Y* _: V0 |: D- ~3 s/ }& E[mw_shl_code=c,true]/*/ ]& e3 A( I; y# x0 f8 n1 L

; k. F$ b& _. ~" W/ z# c" R  K, u    ufusr_ask_unload is invoked immediately following the completion of ufusr' l) @- A5 b8 s
    (or ufsta when the dll is run from a startup folder) to find out when you0 H0 z0 q( x. M- o
    want the dll to be unloaded.  If ufusr_ask_unload returns: M; Z6 L3 g" x: F5 [! S  m! ~
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
/ ]; k, Y+ f. L& \( \8 @4 ]    unload when NX is terminating.  To prove to yourself that this works, set
3 b) \- `# g$ \( X  S    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not- k3 l" y8 C" C: y
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX% K) _% H' v! X
    Log File and make a note of the full path to the syslog which will be shown9 ]  T2 G1 D9 D- T0 ?
    as its own first line.  Run the dll built from this code (nothing noticable0 y' i! M& [! O2 M. w1 w
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to- R0 Y0 {" Z0 m( C8 \
    see this line near the bottom:! {2 }, l3 @: [# X, N8 F
: f" M0 F# N3 e) n8 e1 l
NX is shutting down - running ufusr_cleanup$ `7 o# ~0 p9 f: x: w8 Z
$ o- E+ `3 X2 G1 J- \. _6 I
*/
+ T( @7 q* k% B  o/ Z#include <stdio.h>
; q+ @. C- t1 y2 O2 x( V#include <string.h># `% R6 w( M2 w; J9 F
#include <uf.h>
7 O7 |8 }% x1 T) O#include <uf_ui.h>, i, F1 a. W* r2 g7 V* m
#include <uf_exit.h>
% M- K; z& r! B4 F5 B, T# p3 r% T2 @. G7 ^$ z; P! Y/ J, E
#include <stdarg.h>
. D7 x0 g9 Z5 n4 M' O) S3 \% |8 Y6 R
  P$ j! `8 T: J; W/ B" Ustatic void ECHO(char *format, ...)1 V9 x& {9 R8 v0 ?- C
{
) l8 c: {( m* ?& E  p% B7 J) K; `: A2 o    char msg[UF_UI_MAX_STRING_LEN+1];% `0 |* e9 d7 C
    va_list args;
& ~& N6 ^: y5 a. K, \    va_start(args, format);# s, ?* I4 z  O; z$ g' y/ e1 h
    vsprintf(msg, format, args);2 Z( _# V/ e) K
    va_end(args);" u8 o" H" R( A2 H
    UF_UI_open_listing_window();' ]  E3 f$ a+ i" B3 f
    UF_UI_write_listing_window(msg);
. E; I% u9 W2 {' ^% q( E8 f0 Q2 A    UF_print_syslog(msg, FALSE);% O! b4 D" D  t, H- }; z
}
, U7 p* S1 i' g5 C* b8 Y1 Z8 C
6 N' L( \8 h1 Y8 o#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
4 i! s* B6 E) N) Y$ v8 O  u" A) E8 m2 G0 D
static int report_error( char *file, int line, char *call, int irc)
; x: O% \) ^4 A) A{
4 |) {) ]* O3 g0 D    if (irc)" U5 j$ H$ @5 V+ Q) a4 Y  p
    {
" L& [( t2 ~% i; ]" Z1 e1 v        char err[133];
9 L& A( h3 K& H( I
$ o, q, `2 E) F. K8 O' R4 `        UF_get_fail_message(irc, err);
( x8 F8 u2 B1 v        ECHO("*** ERROR code %d at line %d in %s:\n"," a# C6 O7 Y0 [
            irc, line, file);5 B& M1 C( G; L$ @0 R, g+ y
        ECHO("+++ %s\n", err);7 }& n/ v  s' _/ W- }
        ECHO("%s;\n", call);
5 G+ L3 W* A  }9 a/ K( r- R8 D    }% ?2 r1 Y9 f8 O* j
3 E0 \+ _* H2 f' P- {3 Z( Y3 n
    return(irc);
! n8 @3 B$ `- p$ H! K}
7 [2 _% ~8 h: r5 f  z) [, K$ _- b9 U) c( \
/*ARGSUSED*/
) f6 s7 k6 Q3 |void ufusr(char *param, int *reTCode, int paramLen)
2 t9 A  F% H+ e' Q' Q{6 H1 B* \' J. F# _; m: q) O
}7 Y4 c( v5 r+ d

/ V7 }: C- m7 l5 l& n1 G, B/*ARGSUSED*/
/ w2 ^2 X+ H3 ^2 a4 U9 W9 V- Y% lvoid ufsta(char *param, int *retcode, int paramLen), {* A- z# F0 t7 m
{
) g( Q7 p! A1 D1 ~$ A/ N}
* S4 Y0 f" `7 N7 K5 G6 i. V6 y4 s0 |% E1 M
int ufusr_ask_unload(void)& d0 D7 t$ ~. N. E
{
) q8 v9 V( n( H2 {    return (UF_UNLOAD_UG_TERMINATE);
8 |( p  s% t' a4 L& y  A  D5 i}# Q. S+ ~0 C# {) f, ]- M+ v

4 g$ G$ F# u% |4 u* e* c$ Xvoid ufusr_cleanup(void)
: Z5 y9 i8 D1 `{2 I% x  j4 x+ u3 @3 I
    ECHO("NX is shutting down - running ufusr_cleanup\n");% C# o) K$ u& |- c
& r* q  O  @! M9 T% ?
    /* put your code here */* ?- p) V, y. G# T* m) C5 C! o8 l
}[/mw_shl_code]6 W& V/ V- \1 s+ z; j
上海点团信息科技有限公司,承接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& S! }# c8 j; U9 Q
请问这个函数是怎么用的?有什么用?

9 S' u& L: s# K% l; E入口函数 改成 ufusr_cleanup
5 W9 H+ S. q6 j1 ]0 K2 h
. `6 w0 d: ]% P9 Z6 g- o意思是 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二次开发专题模块培训报名开始啦

    我知道了