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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

4 x, u: l7 Y  ~" H& \NX二次开发源码分享】关闭NX后,做点儿事
2 s* ?& P) Y5 J8 U+ P# a, p3 U
: ?' Z- b2 d$ ~8 T[mw_shl_code=c,true]/*
" h/ \: K% A6 N' b$ |, d' Z  i$ T7 m5 N! ^) R
    ufusr_ask_unload is invoked immediately following the completion of ufusr) L# r( e; C8 S# B6 U3 W, q
    (or ufsta when the dll is run from a startup folder) to find out when you8 \$ h* y* o9 x# T
    want the dll to be unloaded.  If ufusr_ask_unload returns9 T5 y( c/ g# s" [% z' W3 |
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is/ m! o4 v% _4 e, ^
    unload when NX is terminating.  To prove to yourself that this works, set
4 v/ T. ]- \; g6 }8 s# N) Q  Q    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not
! }/ g8 D9 Z3 J/ w    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
" L( [3 }; ?& _0 a    Log File and make a note of the full path to the syslog which will be shown; L* p; O, u3 s
    as its own first line.  Run the dll built from this code (nothing noticable
5 X1 g7 w, H" {: Y$ w    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
" `9 V4 d# `( V+ C% D3 A$ a4 \: }    see this line near the bottom:
% g+ {' I8 n0 P
1 T" g7 C* [& n  z$ ^. A0 f, NNX is shutting down - running ufusr_cleanup+ O# l5 d8 H% ]) I! T# k

, a, j! q1 F5 s1 \) C. [. D& A+ W' z*/
' {, G1 h+ q1 p, n" W2 D#include <stdio.h>
" j; m5 Y4 H0 _#include <string.h>
; @' ]6 v4 Z/ r7 B0 U#include <uf.h>; h6 i* C  i" X
#include <uf_ui.h>1 h: L6 X! Y3 X8 ~+ r! v
#include <uf_exit.h>
. B, A& H0 w+ ^  H: c" z6 o, j7 Y
) n% r4 }4 m+ A#include <stdarg.h>5 z: ^2 {0 E1 U; Z+ `8 S2 B: y- ~% O1 \8 x

4 H  N- L/ f" C' |  Astatic void ECHO(char *format, ...)
6 @- s0 p7 @  H7 W4 C{3 x+ g3 d; p2 d: w
    char msg[UF_UI_MAX_STRING_LEN+1];
3 S" m2 i- n" J4 }1 N( {, [    va_list args;- g" d( g6 Z% }; a6 N3 r
    va_start(args, format);. k% j/ K4 ~; k, `+ ~& c- H
    vsprintf(msg, format, args);
8 k0 d9 W, d+ y3 m% T5 o1 R- D8 ], n    va_end(args);$ w1 }# R( |0 Z+ J" I% C; J- q
    UF_UI_open_listing_window();& ?8 @- `! y- v/ I
    UF_UI_write_listing_window(msg);8 J% s1 Y& O$ p) ~- e# Z, o
    UF_print_syslog(msg, FALSE);
& D9 A, }4 t0 a! ~* K}; \+ A6 N% r) U# r3 x; ?

2 C7 [& c3 `8 P5 |! B#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))) h: ~  c4 m) N: j2 C" i' C

- F- I0 j" I. F- C0 lstatic int report_error( char *file, int line, char *call, int irc)
0 T5 W) X5 H5 W: T{
6 w% F& t! k1 @+ X3 S( ?  j    if (irc)
8 L# t. E/ G1 u3 L    {
% N# F0 p6 w4 |- `( V7 P# j        char err[133];
2 f. H- v. ]( z+ e' r7 [9 v* X8 }
! G5 o3 y5 Y8 S9 f& r% E" u        UF_get_fail_message(irc, err);8 w& S8 f/ a7 T& v
        ECHO("*** ERROR code %d at line %d in %s:\n",: g% ^; Q& u3 l# p) t% l; K
            irc, line, file);+ ^9 y3 O: Z/ X7 `" `
        ECHO("+++ %s\n", err);
( I7 E- _& Q" S/ m; y' l5 s        ECHO("%s;\n", call);& ~; g  l7 V) s6 R
    }$ q# X2 X' a9 x
2 \; I1 k: e( c: L6 _; I
    return(irc);5 I/ \4 h- ]+ @! e: J- p- ?+ h; B
}3 {; K1 A% o# v. R9 w. }
% i1 `. o# J: N2 F: r3 i4 q
/*ARGSUSED*/
- t$ y7 D9 I$ j; k8 U: |; e* f! J9 jvoid ufusr(char *param, int *reTCode, int paramLen)$ k- P2 I( ^) m+ j( r
{
4 c8 ~) V6 E- D}
2 Q' \! b) f( G4 B- U- T3 Q& e& e3 T
/*ARGSUSED*/) R. x  x! J6 z( H, K: P( R
void ufsta(char *param, int *retcode, int paramLen)1 D$ R4 J7 @9 R
{
& A" Q/ u' k3 e. p$ v5 {4 R}
: Z- u0 k% u( ]+ t0 Y7 F' ~2 I  S- W' e- ?1 |4 I5 F' {
int ufusr_ask_unload(void)- O! c4 D2 K5 p* T
{/ q, [( X; T, `, I  _0 |1 }
    return (UF_UNLOAD_UG_TERMINATE);) y: v. L/ g+ a$ E
}3 |' \: V% R+ d
0 \' ?) ]4 [' H0 P. U$ V
void ufusr_cleanup(void)
- M" _; _/ j: B3 k$ }2 k{
/ j9 E9 R; M: C2 `& J    ECHO("NX is shutting down - running ufusr_cleanup\n");  ]1 B( S( X4 q
; }2 G- X: w$ M# g' q6 m
    /* put your code here */
9 V0 s  O& m. H8 b1 o# Y0 Z/ B}[/mw_shl_code]+ K+ E+ t4 m* o5 ?
上海点团信息科技有限公司,承接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
3 n/ C+ e$ C8 x- w0 s请问这个函数是怎么用的?有什么用?

1 `) U% n* h  y; n7 n入口函数 改成 ufusr_cleanup
6 g% P6 k! {; W) R& G6 g- e, B' H# B6 Q+ H7 e
意思是 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二次开发专题模块培训报名开始啦

    我知道了