PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

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

  [复制链接]

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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

9 b; l& }5 S" T% l+ ENX二次开发源码分享】关闭NX后,做点儿事
" Z9 w1 Y& G0 \7 L
1 t8 j6 |5 \) {9 F/ n[mw_shl_code=c,true]/*
! ]7 }% e2 ~1 [3 ]
$ q' f' Q( e4 a2 J/ [1 b2 U    ufusr_ask_unload is invoked immediately following the completion of ufusr  p% }' Y" q- ~$ q+ |
    (or ufsta when the dll is run from a startup folder) to find out when you
0 d1 [' Z8 {  {/ v" G    want the dll to be unloaded.  If ufusr_ask_unload returns" Q8 o" O" _- M9 y- Y) j
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
( `7 D$ v6 a9 l2 Q    unload when NX is terminating.  To prove to yourself that this works, set
0 v9 \2 t4 O1 n6 [7 v* a2 r    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not
- }/ J) Y4 X3 N: K/ b: t- ]    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX. _  [2 {3 ]- P: k% U* `
    Log File and make a note of the full path to the syslog which will be shown
' B. e+ |" v7 }3 `    as its own first line.  Run the dll built from this code (nothing noticable0 b3 v5 h1 E7 e& B
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
# U# q1 K! ?; r6 I1 u9 r    see this line near the bottom:- [) k& e1 _% P# {4 \# Y3 j

7 g- l4 M0 B8 B, G0 V0 c2 G8 sNX is shutting down - running ufusr_cleanup
- V3 P% m6 U. _* o  X- h
) R8 I" X& U- I$ a) V*/
& V0 a- }; Q( W# q6 z- {5 F. b#include <stdio.h>& S( L+ @5 K. k4 Z
#include <string.h>1 n$ U; [' q& p) _. p3 n/ k
#include <uf.h>4 y! I, z  O8 j7 i3 O/ S. S9 l
#include <uf_ui.h>
  }, H9 Z: ]/ P# A#include <uf_exit.h>, f6 }2 D- S) y! [! Z7 t
& {6 c  V3 o3 p0 d' q# f) N1 S# b6 {& T
#include <stdarg.h>
) W- S- @+ O, a1 T( Q. i  V0 T* b) P8 M, B2 ~* K# d$ z
static void ECHO(char *format, ...)5 O! X, a$ Y- x5 G
{
7 F/ \9 E: @1 x  R( d    char msg[UF_UI_MAX_STRING_LEN+1];/ j; |. I" @& ^; ?: [9 V
    va_list args;: C) ]2 @! q+ M. B/ P
    va_start(args, format);
9 N. P5 }9 s5 G' v    vsprintf(msg, format, args);+ b' Y9 i7 J0 ?9 v9 @
    va_end(args);2 A3 g! z# m, V4 j! f* v
    UF_UI_open_listing_window();! `- u6 o: t9 U+ g
    UF_UI_write_listing_window(msg);
  n7 u9 v, ], B% @6 O    UF_print_syslog(msg, FALSE);; z. O( O& J- y
}6 q' y7 D" e- n9 U8 l: ~% m
" k2 B! D" R& |' P; _8 ?# P4 K
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))# t+ }5 K: p( D0 {) E8 R  B& m

1 o9 d5 N8 D% t5 O. f( a1 B, H9 l8 Xstatic int report_error( char *file, int line, char *call, int irc)
1 a6 x' z; n) ~4 R5 ~8 ^7 o{
; b8 v" V& }% k6 i# _1 V    if (irc)
5 H9 Y* W6 Z# j1 U    {3 H3 v( s1 [$ S
        char err[133];
% O/ Z1 V" C+ \9 m$ {
, T8 Q; |( X2 p/ k5 T) I0 s        UF_get_fail_message(irc, err);
" p% q- g% D' ?; d3 p5 x        ECHO("*** ERROR code %d at line %d in %s:\n",
0 ?* @5 C  I' c& c2 @            irc, line, file);
* S: K" g  A3 Z" s1 m3 S        ECHO("+++ %s\n", err);
8 n+ Q9 \' r3 r" F& a! t        ECHO("%s;\n", call);
( _- I! B, r0 |* f    }
7 f  ?# S. b. Y( y$ c2 ?
  O- Y! Y+ m. H6 |2 X1 W    return(irc);/ X1 R+ m. c" ]+ U: C/ |$ \
}
% `$ e& k: `& }# f
, x; D) [9 [2 V/*ARGSUSED*/9 Q+ I( }3 t4 z6 m
void ufusr(char *param, int *reTCode, int paramLen)
% h6 p; I" c3 k{
# O) U! m4 |! M' P' z. v' V}, c3 W  ?) l. r- H3 v3 h6 z  |

  j" }# b6 N$ L" H* Y4 g3 v' P/*ARGSUSED*// T, X7 o) e6 f4 U0 r1 \
void ufsta(char *param, int *retcode, int paramLen)5 y9 Z* w+ w  z3 s+ D
{/ q% i# b* Q. j. h! P
}
: k' G0 p9 B: e( d4 f  V! V9 s& k. R! y0 K
int ufusr_ask_unload(void)$ K0 C* }/ w, d; g% [. |( ]
{
4 ~; O3 m; C$ C# |8 X  c- S& Z1 E    return (UF_UNLOAD_UG_TERMINATE);
3 I  k' b6 o' d- U& r; ~! K}
; ~; |6 L! `: r' i" e3 N% I+ A1 S. p0 _9 _. W
void ufusr_cleanup(void)  x$ F) Y' q" o  z& e9 m
{8 Y# M) o& ~# X: W8 d6 h0 P
    ECHO("NX is shutting down - running ufusr_cleanup\n");
8 [; o+ K: t5 Z' `) Y9 d9 z3 N
8 \/ X- `% T0 }1 y( X/ N" z' b1 ~    /* put your code here */
  W5 k! u$ f& e}[/mw_shl_code]
* f) e5 d) C# Q/ i0 b9 }
上海点团信息科技有限公司,承接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:498 u/ c3 G& ]4 C- T; Q- y
请问这个函数是怎么用的?有什么用?

6 B1 O" _: K1 T) _入口函数 改成 ufusr_cleanup
# _) ^3 `8 m( b* t4 m( F& v  |" ~$ B4 ?0 t0 Y
意思是 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二次开发专题模块培训报名开始啦

    我知道了