PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

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

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

x
3 P- J5 `- X+ ?8 j1 P
NX二次开发源码分享】关闭NX后,做点儿事
5 ?) w( g/ ^0 l; @, ]3 ~% w3 f
. y& B  U4 ]  T$ }% e[mw_shl_code=c,true]/*' a% v7 B4 e8 A. X9 D4 l8 D1 }* B
' c9 t# C, S" W0 A/ Y% s
    ufusr_ask_unload is invoked immediately following the completion of ufusr4 B6 o: f5 M8 r
    (or ufsta when the dll is run from a startup folder) to find out when you% B1 D; y1 n5 z' E# b
    want the dll to be unloaded.  If ufusr_ask_unload returns  N% m7 f9 s2 O
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is- u4 I6 x7 _, \3 b
    unload when NX is terminating.  To prove to yourself that this works, set+ k1 B6 T; R- A0 j
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not! E, y4 H7 M- \- i) A. d
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
' n9 B) s: ]9 P6 w    Log File and make a note of the full path to the syslog which will be shown
* v* e* f7 A0 Y, a, N    as its own first line.  Run the dll built from this code (nothing noticable
2 q, {' R: c) k7 ?    will happen.)  Exit NX.  Find the syslog and open it in any text editor to2 i8 h0 f& X& \# I/ l
    see this line near the bottom:- c& c& t# \$ e* O

" f/ Y/ S6 a9 y1 I3 WNX is shutting down - running ufusr_cleanup0 _5 K2 ?0 n- n0 e
+ s4 m& A9 h+ j7 b* Z
*/
2 ?$ B. B. v0 |; Z' A- M#include <stdio.h>
6 q; {0 Q& I0 W8 V8 F8 Q#include <string.h>
1 D. Y- v$ {5 u7 Z#include <uf.h>" u6 m. X9 Y4 y( f3 k
#include <uf_ui.h>7 v" w. M1 [  z/ S
#include <uf_exit.h>3 j& `) @( u* p3 R. j0 Q% o1 R

% `6 y0 e/ e" \$ n* ^' w#include <stdarg.h># X  D8 l) n" P2 i& u1 _
9 }5 G: C) a0 e' ]
static void ECHO(char *format, ...), s8 {. ?" m0 }5 F! t
{
% [" L/ Q7 W3 U! O* s% A    char msg[UF_UI_MAX_STRING_LEN+1];2 M" Y  T; f" c
    va_list args;) P2 o1 j* y  v# s
    va_start(args, format);
7 G! O  X# J( J3 I: t    vsprintf(msg, format, args);1 D$ c( h0 o, s4 l; v8 m$ F0 ]
    va_end(args);
8 ]& b" G. @: D. `9 f. |* q    UF_UI_open_listing_window();+ m2 A( B1 P: p# |, O  x) o, \
    UF_UI_write_listing_window(msg);
  I+ h0 w. F, q" r8 j  Z7 g4 }    UF_print_syslog(msg, FALSE);7 O4 o5 f+ Q, d7 I
}
7 X3 _8 ]9 u& h, ^3 x: D- j8 z3 g/ P
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
1 e. H. i& F. ]2 v( e$ g% j
' s9 [' u: I6 Lstatic int report_error( char *file, int line, char *call, int irc)
; Q3 x  ~3 `" Q& Q7 N7 D{1 L. n! k! n% T& O& @
    if (irc)
8 Y8 b  y0 G* ?6 }    {7 R5 k- `& O: y( W0 \5 N3 L
        char err[133];9 M! V# b  s( G3 k' g& q

- K2 a$ r' U: A6 G8 P2 w        UF_get_fail_message(irc, err);4 v5 J* ]/ [5 G. u( @( y" f
        ECHO("*** ERROR code %d at line %d in %s:\n",
( p9 X5 a' P2 S2 t7 P7 p            irc, line, file);
) d4 F7 l* D* D$ D% B3 b        ECHO("+++ %s\n", err);  \/ G  V: M1 \1 `0 c
        ECHO("%s;\n", call);/ }; {0 R% T4 _- I) t0 p
    }1 |4 w6 k% o( B! i
1 s1 q; n. G& J2 \
    return(irc);
3 X7 P+ i- h6 Q5 Z8 a6 d}2 x2 ?7 |" t! w6 ]0 g

3 i$ m6 {" Z' E# g8 V/*ARGSUSED*/
/ H- p8 S" @8 B! i% bvoid ufusr(char *param, int *reTCode, int paramLen)
: v3 y) i' ^; O7 c{* b: x6 `7 o; b- F) ^; |: o, A
}' w3 y4 l2 F9 S) q

* W5 p: E) f$ {4 ]5 I+ n+ L+ A% S& {/*ARGSUSED*/
7 V; |. y# f8 k) [void ufsta(char *param, int *retcode, int paramLen)% O3 _6 b1 P2 W2 ]' w7 o4 F
{! d" m" \# r8 ~' K( \/ \
}
* k! o7 u- |" H  {3 \8 H7 p6 T& o- ?! P: B6 V) q# Y' S
int ufusr_ask_unload(void)
, n# e9 K; p9 r" J" P{5 j4 o2 m2 |0 D& P; z
    return (UF_UNLOAD_UG_TERMINATE);, d4 t: }! F4 c* C3 `
}
. k  _4 S9 ]7 A3 q0 u( a- _* d) `7 B' q- m: m
void ufusr_cleanup(void)
1 W2 d  [: L0 V3 d: H' `{
2 @+ X' a+ D; Z. l0 T1 Q    ECHO("NX is shutting down - running ufusr_cleanup\n");
  r$ }3 J; e, k! _" n+ F
8 n, w% q+ u8 i6 ~  C/ x1 d5 |9 n    /* put your code here */
6 c4 c2 a# G( @. z/ t# J}[/mw_shl_code]) Q! D- v1 S& F: Y: }6 u+ L
上海点团信息科技有限公司,承接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% l" M8 }/ A) [: w- ?' }! A/ [
请问这个函数是怎么用的?有什么用?
! b+ b: E3 {/ I9 H: k( l: g% U) e  v
入口函数 改成 ufusr_cleanup   x. |3 d0 u5 w) Q8 r. s$ _; q4 ~
6 }% x3 X3 p9 H/ 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二次开发专题模块培训报名开始啦

    我知道了