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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

2 q/ o1 G9 d* wNX二次开发源码分享】关闭NX后,做点儿事
! E( n; r) a0 c1 c5 S* z/ `2 h5 x, X6 \3 S, l
[mw_shl_code=c,true]/*
/ M1 A5 g) z$ a  ~  A9 t4 r, t% h: d& Y7 j
    ufusr_ask_unload is invoked immediately following the completion of ufusr) Y$ B- I+ J5 |  L' _
    (or ufsta when the dll is run from a startup folder) to find out when you- o# E2 q" x5 Z. F
    want the dll to be unloaded.  If ufusr_ask_unload returns9 g- ?: G! c; v. c6 c8 o* N
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
) f# y- K/ A4 {  `! y    unload when NX is terminating.  To prove to yourself that this works, set
( q. H4 c( O1 `    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not
) S# {4 i- x, ~: ~0 p    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX( Q* \: E0 r) C, J+ n4 g
    Log File and make a note of the full path to the syslog which will be shown
- `* t  r/ u" {$ I' g    as its own first line.  Run the dll built from this code (nothing noticable
9 A7 ~: U4 t+ o$ V    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
) ~( c$ [. N+ \7 N4 r8 I    see this line near the bottom:5 f& E/ D. R- _# Z4 I3 R& d
# X  u: B: g% q
NX is shutting down - running ufusr_cleanup
& X/ n" l. ~: `% Q9 C1 o+ Z9 ?& A, ^
*/
  R' M. ^- J) Q* M- P, n! E8 k#include <stdio.h>
( j+ ^  _6 f" J3 r#include <string.h>
) F1 L; j6 n) b3 ~' S+ l#include <uf.h>
* b: m- I5 m" B#include <uf_ui.h>
- j9 i6 F1 k8 l& h. U2 \) [6 I4 D# H#include <uf_exit.h>
- i) A* O2 o  e# _; z, _
8 {& G" u+ W- d#include <stdarg.h>, a* P  r7 g, O  [# Z* F8 \

8 ?% u6 D9 m" C+ l5 h! Q1 p. b& n; Xstatic void ECHO(char *format, ...). U1 H) J; _: L! \- a! L3 Q
{7 G  }6 I! O0 r5 `  {
    char msg[UF_UI_MAX_STRING_LEN+1];5 b( [: j; }0 V! q* @
    va_list args;
  O% r2 L8 }- K. a3 b4 K    va_start(args, format);0 p% g. \1 k3 A
    vsprintf(msg, format, args);, |5 m, i$ O6 q9 n
    va_end(args);
4 D7 z' E$ c  E/ N% r    UF_UI_open_listing_window();
0 y3 q9 J6 o9 g: t) `% A    UF_UI_write_listing_window(msg);
9 h% Z" c/ P3 w1 M! W9 i/ d1 h    UF_print_syslog(msg, FALSE);8 Y9 z$ @  c# m0 D- ^, H# c
}9 e1 Y% v$ R4 ~: ]

3 v+ E$ A# M% \2 Y  m) @" j#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
- D# q) ^4 N- M9 J/ s, t5 j- }0 s6 F7 z+ L# K* {$ v* s
static int report_error( char *file, int line, char *call, int irc)" F" _7 L. R+ A4 o( \  O3 [
{8 G/ C4 z. Q' V4 F% H# r
    if (irc)
# ~6 N$ W) U+ n" \9 k; h) ~    {% K/ q& u# W$ n" c; `( Y8 I
        char err[133];7 Y2 b% s/ c. _& x) K% h

; \% u. `& K4 G- l        UF_get_fail_message(irc, err);5 E0 U/ u- ^' `# P" _
        ECHO("*** ERROR code %d at line %d in %s:\n",
4 u; ]5 {5 F  P/ ]8 A4 f1 R            irc, line, file);
/ _: m6 c2 ^+ B) O: P5 X        ECHO("+++ %s\n", err);
3 m# O% @* D" T: B! H3 p) W        ECHO("%s;\n", call);
' o: L9 o$ K2 j/ P7 |  X( `    }' ^4 F, X) F" j: u" M0 Z9 Q

9 {7 Y7 d, _9 s    return(irc);
% g% @/ A/ q; X) @! I+ l* H}
) U+ ~2 {2 u1 _% t- r+ l/ H4 x4 x# W
/*ARGSUSED*/( ~  Y. ~3 e, L! D
void ufusr(char *param, int *reTCode, int paramLen)
9 G" J. E2 I: h6 b' b{
- W  _8 i7 z, z2 r  o}$ d* z' D" W- n/ {# k2 c

: Q$ J- P% n  \% C: u/*ARGSUSED*// _" A% F& w* I3 E) L) J. G
void ufsta(char *param, int *retcode, int paramLen)3 v3 N! m( i2 N
{. l  s7 N! t) |5 Y; p7 j
}
* @* T: t' U- l
: o2 d6 \( X) Mint ufusr_ask_unload(void)
8 q  h( z. q8 Q* C# z; Z& s{
% _7 \- y  ?9 |# R    return (UF_UNLOAD_UG_TERMINATE);
- h8 o& F: G9 p}6 ~5 R2 g8 R: k) f

5 b% `: e2 n; b) `6 U: c. kvoid ufusr_cleanup(void)
5 H; T( m. ]& v{! T4 e; y3 P9 T- L2 @4 \
    ECHO("NX is shutting down - running ufusr_cleanup\n");
5 z' O2 K4 |; v% ^  D2 A- D
) X1 n) X( J( K# k" G    /* put your code here */
5 {4 d$ F3 p$ q}[/mw_shl_code]2 ]$ s: b0 {7 |3 p' G& z5 u
上海点团信息科技有限公司,承接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
, {% ^# K$ }! \$ U请问这个函数是怎么用的?有什么用?

1 ~8 z9 E3 K7 s; {2 c/ I( c入口函数 改成 ufusr_cleanup ) t" C% z8 Y1 Z7 p8 Q* R, |; I

' D! k9 n" p9 C& v; G1 R. ?意思是 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二次开发专题模块培训报名开始啦

    我知道了