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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

0 f% ?: ?* ?8 X! {7 DNX二次开发源码分享】关闭NX后,做点儿事0 `3 n1 H& o! ^6 D9 ]

9 `3 Z, s' C* y+ C7 W( c0 ^" d[mw_shl_code=c,true]/*8 }  X) C1 X" k7 C" F* P: y1 i

! u' t" D2 f! w- w& [. Y5 m    ufusr_ask_unload is invoked immediately following the completion of ufusr; _: z( Q! g6 b7 N2 j2 k0 ?! {
    (or ufsta when the dll is run from a startup folder) to find out when you
0 _& B  S5 M8 @$ O, d  m    want the dll to be unloaded.  If ufusr_ask_unload returns% D5 N. k$ h' D3 k. T
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
& N2 H% {9 [3 d; R1 h3 R9 h    unload when NX is terminating.  To prove to yourself that this works, set& S8 C! q: s+ B- [2 Z) V; B
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not
) q. t5 G; k: H5 d) K+ j) T    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
4 R' h: T- M& V, P    Log File and make a note of the full path to the syslog which will be shown
5 ^0 s4 s0 S! U: C+ [    as its own first line.  Run the dll built from this code (nothing noticable
0 C( r, H& C! p    will happen.)  Exit NX.  Find the syslog and open it in any text editor to+ d+ s4 ^( }2 N+ L) b/ T% v5 m
    see this line near the bottom:* \6 G6 W( j2 j8 m! W/ j  j1 [
- Z4 B5 w* k  ?: T; {
NX is shutting down - running ufusr_cleanup2 k& C) d: r3 l7 m& M
& e  F# l, F! I" h& b
*/. R. x2 \0 U2 Q7 q& V+ }# q
#include <stdio.h>, U- ^& G# H$ O* W
#include <string.h>% ]) h5 Y4 s" ~- J& E
#include <uf.h>7 |6 \9 }. X) I( d
#include <uf_ui.h>2 g: y% [/ v! w8 c7 @8 z8 q9 X
#include <uf_exit.h>9 i: j& I% b# ~, Y6 {7 G- v
- h1 q; |& V1 W$ M
#include <stdarg.h>
/ z, x1 i8 ^, M1 T) Q5 B) E/ l
8 q( P" {! n1 ]& e3 O' Cstatic void ECHO(char *format, ...)  L" W" v6 W3 g4 Q- G. O
{
2 P6 G1 @2 m* }    char msg[UF_UI_MAX_STRING_LEN+1];
$ f3 n( @* _# j5 j) R. K    va_list args;) F& C! V$ k# I0 z( P
    va_start(args, format);9 U- `7 ]  P- `/ B9 J
    vsprintf(msg, format, args);7 t, a7 P- L5 [5 Y% m; x- F2 ~
    va_end(args);
& b1 w( C; ^5 {1 i3 S! P    UF_UI_open_listing_window();  }5 w# v7 e2 O" ~+ t5 h
    UF_UI_write_listing_window(msg);6 w: n# l  L5 r: c& `& F) V
    UF_print_syslog(msg, FALSE);4 |# m7 U+ l0 z$ I* v
}0 q7 T4 L% k% ?/ f
6 B. ^6 x) n& U% H
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))4 R* F5 x3 x) i# t& c& y! G
# I6 I% ~/ v3 _8 d% A* m% s
static int report_error( char *file, int line, char *call, int irc)
0 M8 o( O" Y1 |! m3 v% V{
+ s3 F: t* C5 Q0 p7 d    if (irc)
9 l4 p1 O, t" A* O) I1 l    {, F5 l6 q; ~% S% c/ _
        char err[133];
: W4 b" `' i/ |; J3 u
' h2 ~& L. I5 r        UF_get_fail_message(irc, err);
+ f9 [! b4 n( }6 f1 Y1 k. K! A  {% t        ECHO("*** ERROR code %d at line %d in %s:\n",/ t* m6 q5 `6 @  G6 m* Q4 @! i  v
            irc, line, file);" [3 Y/ o% @) p: c
        ECHO("+++ %s\n", err);
- w( F/ E* k2 U* ]2 o        ECHO("%s;\n", call);& ]  w; Y0 s; H3 |. F. J
    }
+ Z% k  o( Q7 d
" h+ u' D: ^3 C7 J5 N' V    return(irc);! {! N. ~$ k- j( g3 P6 d# y# c  Q
}
+ G" U! y6 r7 |# W7 O( \8 P* S; H3 H; m0 W, T# B5 l! H2 x  z
/*ARGSUSED*/0 l2 I& r4 l! C* A7 B3 H" I2 o: q
void ufusr(char *param, int *reTCode, int paramLen)
* P& x1 l) F  Y% H  }% F1 d: u{
$ b: j) A! n! f0 q* x6 g}3 Z9 }+ k1 T* k3 b9 R" @0 c
4 a- |; E, ~+ B3 J& Y
/*ARGSUSED*/# Q# |+ w2 C" J
void ufsta(char *param, int *retcode, int paramLen)
; C/ {! }* f! y{# r8 }* }2 G9 H5 L1 V- x, C0 U
}& D# y! e; H/ O6 _5 n3 z

: I. {% V: r# B7 d) S: Rint ufusr_ask_unload(void)
5 V' _. h3 A8 |/ J# Q3 b{" @4 b' D: S( @& m& C$ n
    return (UF_UNLOAD_UG_TERMINATE);
% i) s1 A/ D9 ]1 F9 q}  b6 V; P8 R2 w
7 A2 p& z& _9 D  z" R
void ufusr_cleanup(void)7 A9 y- F3 H1 g; r4 e
{
  O5 J% w8 c( }: h7 I1 N    ECHO("NX is shutting down - running ufusr_cleanup\n");9 D6 G% F, O6 M# ?0 j5 Z
9 N# U  h8 b1 S3 J- _5 z8 S
    /* put your code here */3 m8 p8 @4 O) v- E; ~. e
}[/mw_shl_code]
( n% J3 Q/ C! v% i
上海点团信息科技有限公司,承接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
6 t6 }+ P- Z/ q- y) _( `/ n% W请问这个函数是怎么用的?有什么用?
$ G) J$ W; M4 z5 F. u6 n5 v/ s
入口函数 改成 ufusr_cleanup
  ]5 {& q( {3 j
2 T$ u: f5 D' Q4 u1 X+ p' b意思是 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二次开发专题模块培训报名开始啦

    我知道了