PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

# D# z" s0 p3 C+ q2 j# M0 XNX二次开发源码分享】关闭NX后,做点儿事
  Z' U' m2 m& i" u' k/ @: l# c) z% i- I4 a$ _, E
[mw_shl_code=c,true]/*! l$ |: k7 i, D* Z6 Z$ ]8 O
+ S/ F# ^7 H' w2 p( z4 G. O
    ufusr_ask_unload is invoked immediately following the completion of ufusr3 @2 d9 b# ~+ j' K, f4 f: i! L
    (or ufsta when the dll is run from a startup folder) to find out when you8 [1 r0 [/ b; h6 I
    want the dll to be unloaded.  If ufusr_ask_unload returns
; ]8 H  G3 ]& U$ c    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is: W% m1 D% \0 R. U
    unload when NX is terminating.  To prove to yourself that this works, set
4 |5 U8 j/ ?8 \6 i! K& y( v' ]    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not
+ v6 H+ N" n& G. {6 ?: P, x% `    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
  ^4 N) `  K# l% y0 r: A$ @    Log File and make a note of the full path to the syslog which will be shown
: b; u, o( h2 e4 ?* f    as its own first line.  Run the dll built from this code (nothing noticable
/ r2 N  [( o! x    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
9 v  o$ q2 A( y  x. e: Y$ V4 X4 Y    see this line near the bottom:" z4 f9 L/ R# F' Q; p

' h8 Y, d$ e3 i# _+ {NX is shutting down - running ufusr_cleanup
0 B+ r6 q4 |" ?0 N1 @5 I1 R
) ^( g) z$ H! h: P! O# z*/
5 `' v% K& S6 z6 v! z% j' y, h#include <stdio.h>8 o' t: u7 m( k8 Y7 o
#include <string.h>3 g. R5 }, @0 p; h5 d- M
#include <uf.h>
/ K- {, |5 c: [* Q8 X1 R#include <uf_ui.h>
$ E- B# f' D1 Q$ y/ z) b4 q+ h" [#include <uf_exit.h>
8 Y* y+ i" O: F2 {: E  a' ~( O$ Y( j6 ~" e6 i
#include <stdarg.h>
) S9 V. H; |4 v4 ~; _/ E1 y
3 A+ s  D7 _5 {' D# X1 ^% Nstatic void ECHO(char *format, ...), J* s! K0 h2 |) V) _- f9 D# [
{* B- s% O; |) E) L) K$ H
    char msg[UF_UI_MAX_STRING_LEN+1];
( r" O0 d1 }. Y    va_list args;
  b0 }8 F; V( C4 x+ K- @' i    va_start(args, format);+ d" [0 s5 W7 {
    vsprintf(msg, format, args);
" F6 ^5 `4 A1 i1 z4 p/ t' h+ U    va_end(args);1 N2 u2 F9 K& M$ T1 ?/ i
    UF_UI_open_listing_window();+ {/ S8 B0 x/ ~+ b5 E
    UF_UI_write_listing_window(msg);
; \2 y+ A* |1 D0 t' N. |- m    UF_print_syslog(msg, FALSE);1 g$ z( C: ?4 M7 e" `
}! b% T9 x: i1 h$ @
8 L0 D+ Y: f9 y
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))+ [/ ^  T: J% e7 B) c9 Y

9 N' l6 A  l4 kstatic int report_error( char *file, int line, char *call, int irc)
* `; W# A0 A/ ?) q4 O8 i{
0 X; X; G( m- \    if (irc)( {% d7 r- l. \$ \: L: W0 u
    {
. P- a  @; y! L: @2 t        char err[133];
$ k4 ?; v! Q, U& D
! G% q7 ]3 K' y2 b! \8 V        UF_get_fail_message(irc, err);
7 ~3 U6 P$ u( Q; u        ECHO("*** ERROR code %d at line %d in %s:\n",
4 Q& J* ^( h9 r. J7 v& T% A/ R$ x            irc, line, file);
9 B2 N2 i- v& D# u+ _        ECHO("+++ %s\n", err);, i8 o- h5 v' }
        ECHO("%s;\n", call);
9 Z% Y$ E" d$ U. w. W  s9 g    }
+ y4 y% Y& Z" k
, I+ A( q- q6 y6 z, J% K/ p; R    return(irc);
. V6 s/ K* p( ^4 ]! U5 P. L9 j}
5 u( p' N3 v' ?3 a! f! a. y+ S" B! ]" r  E
/*ARGSUSED*/% V& [3 m; Y7 K& \" e9 ?9 {( X
void ufusr(char *param, int *reTCode, int paramLen)- p( c6 A( p  ]+ R  r- s0 T! [
{3 i; _" \* h. e4 i
}3 K. o( M7 q  v# b$ B6 Y! o2 U

* {$ w' ]3 \! `( P/ U5 X/*ARGSUSED*/
+ Y9 N1 e, Z. b# F' q4 |void ufsta(char *param, int *retcode, int paramLen)! Y% m9 b- Z# x0 A
{
3 ^- q7 R- U5 x9 K8 N}
. P. v* U# D/ r* b
; n7 r7 t& r' Y; aint ufusr_ask_unload(void)- u% d1 O0 k6 Z
{
9 u& o" A( i1 s1 l5 b# H    return (UF_UNLOAD_UG_TERMINATE);, X3 {9 Y5 E% G' k
}9 g. K9 L9 u6 @1 L! B
. l. }* }. \' E, l
void ufusr_cleanup(void)+ K& v( Q$ p, K$ z- D8 {3 Q
{0 F3 q( K# W3 n# K3 M1 z
    ECHO("NX is shutting down - running ufusr_cleanup\n");
, c0 V& u( n7 V" g1 k; R) }2 u% ~$ ^6 R
    /* put your code here */$ U1 G# E* s) D: l5 g8 `9 _
}[/mw_shl_code]# \& `) D8 k  z; C/ a
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ 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:494 W5 h/ q' C/ p& i( C: P
请问这个函数是怎么用的?有什么用?
: @" Z% M, w! w9 X4 V
入口函数 改成 ufusr_cleanup % U8 n5 f0 y9 ?# C# N0 Q  v. d

1 w$ ]' o# H* K- H意思是 NX 程序退出后,你可以做些事情 ,具体做啥可以自己写,就是个入口
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ 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二次开发专题模块培训报名开始啦

    我知道了