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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x
6 N% ~  R5 ]2 \$ C
NX二次开发源码分享】关闭NX后,做点儿事
6 J# m' A4 W0 t( ^6 A3 N) D" J4 }& @" w' N
[mw_shl_code=c,true]/*
% Q' P3 j. R* y" L0 y  q$ L. F" m2 J) z
    ufusr_ask_unload is invoked immediately following the completion of ufusr) F% E1 X" @7 t5 c4 f
    (or ufsta when the dll is run from a startup folder) to find out when you
: r$ _' E- j' Q- f; m6 N    want the dll to be unloaded.  If ufusr_ask_unload returns, [. c& O5 U$ a( S
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
- M$ @" \* n; M# Y2 j+ m% e' w    unload when NX is terminating.  To prove to yourself that this works, set: S' `2 W6 A; ?/ A- j: c$ a1 N
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not6 Y- z: [. j4 b5 {
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
- ^3 s2 b7 P. J    Log File and make a note of the full path to the syslog which will be shown5 E% u0 U+ F2 H+ Y  Q
    as its own first line.  Run the dll built from this code (nothing noticable
9 i6 ]! L2 c. e4 [4 _4 |8 X* j0 [7 F    will happen.)  Exit NX.  Find the syslog and open it in any text editor to* x1 n: b$ G* m, V8 q2 @
    see this line near the bottom:
6 T0 z1 V- T5 y! z' `& U! X) ?1 D
) A/ c- _% S# T# f: Y! v9 SNX is shutting down - running ufusr_cleanup- @/ E  s; q4 V& _) ]7 o& @! n

+ I* {* a. w: U) G' l*/
/ U  E) z9 u3 _3 N$ ?! S& u- r- y. N#include <stdio.h>/ T$ y, q! b7 U- R+ M- G" ~
#include <string.h># J3 Z6 h# z% ~0 I
#include <uf.h>
: p6 P! d* k6 R; I; C. ?#include <uf_ui.h>
1 K3 U. K, V9 d$ ]#include <uf_exit.h>* o6 y8 _1 q- b1 ~) c

' X7 F- a$ g# Y2 U#include <stdarg.h>
4 Y! S- n& l! V" P" n
9 e% j) M2 o5 y- Istatic void ECHO(char *format, ...)7 \( U$ p/ ^2 _4 p
{. i- B+ d; c. Z. V- `
    char msg[UF_UI_MAX_STRING_LEN+1];6 I! e3 ^4 U8 n2 |2 n
    va_list args;
( Y/ i& {& Z, Z" _9 g    va_start(args, format);9 B& a! @" k" E0 `, ?$ v
    vsprintf(msg, format, args);9 X1 z2 {# s* G
    va_end(args);
7 o6 T  o) y' N9 R1 C    UF_UI_open_listing_window();
  m8 t; u( l/ M& e7 ]/ C    UF_UI_write_listing_window(msg);
1 H" o! h$ X8 X5 M5 h    UF_print_syslog(msg, FALSE);; V) I9 ^9 S+ G/ G
}2 l' G; X. _: W3 o$ q6 m
8 }5 g4 {  b6 T. e
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))6 u3 W" Y+ o. V: l3 P6 W9 l' O

) Y2 v6 E+ W# gstatic int report_error( char *file, int line, char *call, int irc)
8 c  _7 u7 k* K! `! P{" R, Z/ V# ]/ |: P" F: G/ O
    if (irc)
4 j' w) _% e/ U5 p" a    {$ h4 s  B3 D2 C3 l/ p
        char err[133];
; V: S; k  X0 H# c- v6 T0 O& n- l- M! L* {% I% m3 o) ?0 m- v
        UF_get_fail_message(irc, err);
- J: ^8 h8 b: O& r% Q        ECHO("*** ERROR code %d at line %d in %s:\n",; D8 m0 ^& C: k3 {$ b3 ]
            irc, line, file);
4 }+ W& R2 r9 x/ f        ECHO("+++ %s\n", err);# h4 L; d' G" y1 O5 @" T
        ECHO("%s;\n", call);" b7 q. f; P3 i" n* J
    }1 p; U# D9 Y; m1 y% X

3 l; N# Y% Z" G) A: G/ {4 Y    return(irc);* z4 S) \# A* n, M% a
}
0 b+ w2 I/ L7 }8 F$ `) e( e- x( [* I1 M' f9 P" D; D
/*ARGSUSED*/
$ ]6 T' X: E9 N  |9 [void ufusr(char *param, int *reTCode, int paramLen)" g& u$ g# n. W, I; P! L
{! e6 R) X' P# L# a* ^/ a
}
' S2 p/ R2 f; f) c. q! W" P8 [! z% v* K
/*ARGSUSED*/
7 O- J% Z+ m5 [& Tvoid ufsta(char *param, int *retcode, int paramLen)+ f) |0 H. b! C( A  N
{
+ `6 q# y- G5 ^4 k}( J' M, P+ V2 }& A9 N& B
) H: F% g: b0 K+ v' l" j
int ufusr_ask_unload(void)" X) V; A" L- K/ `
{
5 [/ u# h$ C  p    return (UF_UNLOAD_UG_TERMINATE);- D0 H; ~6 @5 h
}5 I# U3 w  N8 f: v8 X

3 d* v# s+ G8 X+ ?void ufusr_cleanup(void)$ w4 }: L/ U: B
{- ]+ b7 F0 l. r# g
    ECHO("NX is shutting down - running ufusr_cleanup\n");
6 k) `: |3 @# Y# Q8 _* ~
" F9 ]% ]6 [' F    /* put your code here */: f/ z% o' w6 P7 F8 L2 [
}[/mw_shl_code]
/ E' p( x: |( \9 g8 v* G
上海点团信息科技有限公司,承接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
$ H% w# T% W7 B& I$ R, l请问这个函数是怎么用的?有什么用?
  u( N! N' j( i' Y/ R% v5 r
入口函数 改成 ufusr_cleanup , ^# p: k; S/ v2 \. m7 n9 _* L! ]$ p

6 g2 i) z/ J: s  m1 ^" {6 x意思是 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二次开发专题模块培训报名开始啦

    我知道了