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 3666 3

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

admin 楼主

2018-7-12 11:12:47

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

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

x

1 x( P" A0 J( W$ \! ]NX二次开发源码分享】关闭NX后,做点儿事6 V/ q/ Z$ U# Q# U/ ^; `2 {2 o

8 H/ b1 @% J! N, F. M( O- l[mw_shl_code=c,true]/*
* x0 N- Q4 x" |. K
8 j* w. `* D, {: e. r- B    ufusr_ask_unload is invoked immediately following the completion of ufusr
; Q" u- _2 n- \3 o    (or ufsta when the dll is run from a startup folder) to find out when you- \( S8 s, S7 b1 ?# j* T2 X
    want the dll to be unloaded.  If ufusr_ask_unload returns. X) r3 \: V. a+ ^7 O; a! C
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is- ?( w6 x  S5 m# ^- E
    unload when NX is terminating.  To prove to yourself that this works, set
2 ~' d+ _+ t1 J& L    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not
/ J# O& Y8 H- e) {    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX9 g& V+ x- q9 Y( {$ q6 w
    Log File and make a note of the full path to the syslog which will be shown9 v8 `& ]: Z# d0 W
    as its own first line.  Run the dll built from this code (nothing noticable
( ?( N% f3 v$ L3 j' ~2 s    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
( R$ N7 H0 M4 J- w    see this line near the bottom:8 h+ j5 d/ P; s0 f

3 [' A7 A' j1 [& ^NX is shutting down - running ufusr_cleanup8 t2 o- E$ r7 H$ i
/ F' |7 ]3 b6 h
*/
. ~* ^, T+ F4 Z, P, u  N. t#include <stdio.h>
2 Q. P8 P) [7 K3 c' [+ a#include <string.h>) H$ L0 |$ o# Z5 S) E( b7 @6 o  k) _
#include <uf.h>
- G' n! w9 f+ {/ u6 }) t  ?#include <uf_ui.h>0 R5 ~  Q! S* s% t+ ]' w  x
#include <uf_exit.h>3 o2 m4 p- N1 W0 ?

: e& ~1 q- X. F) ?' p4 y$ [#include <stdarg.h>
6 R, F7 X5 N' q- @' S0 i2 Q
" p: _- N* G) D9 K- j' J8 jstatic void ECHO(char *format, ...)( }% j1 s: O; E8 f+ K' u
{
7 z+ U& E2 Q9 {    char msg[UF_UI_MAX_STRING_LEN+1];
- i: E* T+ C% J; a8 _    va_list args;
7 j' o7 |8 X4 x5 C0 }6 d    va_start(args, format);
7 i, q% x) }, Y# F0 ]9 \    vsprintf(msg, format, args);* K: f( `6 B1 M8 V2 S$ k
    va_end(args);
. S* U" b- Z2 S; J. m7 c7 U    UF_UI_open_listing_window();7 Z! S4 b$ s. m/ S6 P! v- i
    UF_UI_write_listing_window(msg);' J1 Q4 s* [$ w3 e
    UF_print_syslog(msg, FALSE);
3 _! b! U" q2 v; Z5 B. W}- X  @3 y8 X! M/ o, q

- O& T5 x% k/ a" l- k2 s  J5 G! [$ x/ W#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
. r( S' q6 w4 I, a4 ]* u) r* _
/ |% `: e, _4 c' q& m' astatic int report_error( char *file, int line, char *call, int irc)
4 M  W2 J# U2 O; H& }{
" @, S/ N9 d: U7 x* F    if (irc)9 D2 \6 ^, Y; d' [  X8 W5 r
    {! T+ F4 l" _9 C4 M
        char err[133];0 K; o$ e, K* ]" A) b, u  Y
2 G( o  w: a8 N* u5 w
        UF_get_fail_message(irc, err);
8 s) K7 }2 V7 B1 E* d8 B        ECHO("*** ERROR code %d at line %d in %s:\n",6 _  }& g3 k; o6 f5 y5 \
            irc, line, file);/ w8 B" Z3 M# G  Z" a! `
        ECHO("+++ %s\n", err);
% B. \6 k- S+ M        ECHO("%s;\n", call);
" t" L2 M! v# L) w7 r3 T    }
) U+ w/ E- U8 ^
4 g+ V3 C% S, k, f    return(irc);1 n) j. T) L, e9 B' W5 x
}
* T6 {" d' z  h( a, \; H: U, c! x' L  k% ^
/*ARGSUSED*/* B2 @; y+ M: z+ c; j( `1 M+ }5 A
void ufusr(char *param, int *reTCode, int paramLen)8 U: K; Q8 Y5 _3 n
{2 w! G  E9 s" E* g. i
}
- [) X7 s  j. i3 p8 [* L% T2 D- k
# X3 n, D9 r& t- m1 E( X/ h/*ARGSUSED*/1 Y. a% O: M6 S! j' A/ T$ U) o# t
void ufsta(char *param, int *retcode, int paramLen)
7 E% a0 u) F# b$ B+ a{* Z6 D2 A) _- N" F9 ^' Q
}$ k! \7 C% b6 Z
  g  g: b" T& E; t
int ufusr_ask_unload(void)2 |1 I7 T9 V$ l1 A& H" z& h( y7 v# V
{
& u+ e# G( S9 ?& w. ^3 b$ d" n4 C    return (UF_UNLOAD_UG_TERMINATE);. [, ~  N- |0 ~. p: l+ F
}
8 f' @1 s# b; Y* O4 B9 ^
5 Q5 }) `- o* {# `% `void ufusr_cleanup(void)0 X: J1 L0 ^+ H/ @$ q
{; `' ]" [3 z- [3 t( P
    ECHO("NX is shutting down - running ufusr_cleanup\n");
5 S+ M0 [$ Y* y! ]& l4 G& w3 t; U( k; \7 B) d0 s. q
    /* put your code here */
3 k6 F( {7 s4 w  L1 @1 h& z9 T}[/mw_shl_code]
9 m$ W$ Y, X/ }6 ?* N! M$ D
上海点团信息科技有限公司,承接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:490 a: p+ x% ]  p. @& ~( C
请问这个函数是怎么用的?有什么用?

* ^1 B8 @2 Y: |  L( u入口函数 改成 ufusr_cleanup
; Y: a3 I: V( n* F3 U
8 }: b! s0 B8 A" I) P意思是 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二次开发专题模块培训报名开始啦

    我知道了