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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

! O0 J' D6 f1 m9 K+ x; zNX二次开发源码分享】关闭NX后,做点儿事! J, b6 ~" ]: Y# _7 ~( c. D
7 P2 r6 l) C% g, b) A  z
[mw_shl_code=c,true]/*4 G: O$ ^4 t* L+ F/ z

3 F7 d$ T& b- m5 ^& _    ufusr_ask_unload is invoked immediately following the completion of ufusr
0 O5 p+ V( I7 ^2 q/ D" P8 C    (or ufsta when the dll is run from a startup folder) to find out when you
9 T$ y1 W2 V; W. _    want the dll to be unloaded.  If ufusr_ask_unload returns
1 J, j. G. _( i' d# `9 B    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
5 V* @9 e. b& [    unload when NX is terminating.  To prove to yourself that this works, set6 M7 p3 F4 f1 b8 k! _8 L; B
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not! n9 H" T3 Q# s7 h
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX; S. |  v% R: Z# h7 s3 k* w
    Log File and make a note of the full path to the syslog which will be shown: I6 S) W: T- P: S
    as its own first line.  Run the dll built from this code (nothing noticable
2 X" G7 W7 h6 V  D% ]4 [" W4 {* g7 Q    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
$ y5 Z% R7 @4 R; T    see this line near the bottom:/ U6 q" Z- V9 g! a  J! q

& |0 d+ Z( p0 S$ g9 ?- O) _5 ?* c' GNX is shutting down - running ufusr_cleanup
: q: ~( S  G! y1 K7 Z* d" M# c7 Z7 E: R4 Y  _
*/8 W2 D3 v* W- Z6 z+ v1 g
#include <stdio.h>
1 L! i+ k* v$ }8 y4 p#include <string.h>, ]9 q" i/ ]8 p! M& A! j8 j
#include <uf.h>
1 z* g* A6 e5 U' m6 e#include <uf_ui.h>
6 u. P' _' g4 k  |7 J#include <uf_exit.h>
0 k% D9 z+ y7 n8 ?
1 g) U7 k% t" Y6 f- \/ T7 w& x#include <stdarg.h>1 Q8 U+ |0 t0 ^# P6 Z& B& O
, i+ P3 U9 N1 @& Q
static void ECHO(char *format, ...)
' ]3 k0 W* K' ^8 }2 T9 E# _5 c- h( M{
: ^7 E/ B2 z1 Y    char msg[UF_UI_MAX_STRING_LEN+1];
4 |- D/ _( J$ O" T, E) c    va_list args;% u! W1 m3 j' b: @+ ?9 L+ r
    va_start(args, format);
1 }8 W# d/ |9 F+ ]    vsprintf(msg, format, args);9 d+ g+ f. C- ?  J6 g
    va_end(args);
- p( A& M/ l' R! M) K    UF_UI_open_listing_window();% t5 C" A1 ^2 ?2 K: L8 n+ Z% K
    UF_UI_write_listing_window(msg);
( z7 _6 ^, }. k+ l( K& E    UF_print_syslog(msg, FALSE);
& x$ b% @0 h5 K6 X( j& |' [/ t9 d  s}
; }0 u3 ^* f  p% m
$ w# H2 w! O. Z#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
8 Y9 S% N3 t/ Z9 F* y3 K" ]0 H
% [% N- n" }! R: G3 N; v+ [static int report_error( char *file, int line, char *call, int irc). T7 ?! ^7 s9 b
{
7 x! t, R- Q/ w5 O. m$ T7 |    if (irc)
  J/ b& k( E4 h1 B    {
- P5 o! H* ~4 U        char err[133];6 O7 C; j% ]6 \( D+ M

; e' m$ M# R/ X6 }- c        UF_get_fail_message(irc, err);
2 O& J; w' o5 X; s        ECHO("*** ERROR code %d at line %d in %s:\n",
/ X8 J0 k' i( D" d+ g+ I            irc, line, file);
. Q5 ^/ d( @( B5 r( ^        ECHO("+++ %s\n", err);" j0 [* g: I: e
        ECHO("%s;\n", call);
; r7 ~+ X+ q- x    }
  E( t$ m( Q) m8 [
: ]1 d* O% |) D( h/ d# e, L  ?    return(irc);
6 J" P( u7 ]( r( E- Z9 x}) j0 S- A8 N$ i
0 [4 o6 T, _! }* t: \$ t
/*ARGSUSED*/: a! ?) ?1 V# H8 `  S& F7 w
void ufusr(char *param, int *reTCode, int paramLen)9 U/ e7 w9 I. P# u) z9 d8 t. K
{
3 r) P/ @- q3 j; K- p}
* N3 `* x' C7 I7 x% M# R8 I
4 W2 y6 B0 H; O" x) M9 D4 R/*ARGSUSED*/% h/ ]+ l. U3 I0 t
void ufsta(char *param, int *retcode, int paramLen)
8 ?; B& z2 d, N: P$ o, \{
( w1 t) G: t5 _, G1 ]) c}
- E! b5 g0 b& W+ }! |' T$ t! [. _1 Z! r5 K9 [+ v  ~
int ufusr_ask_unload(void)
; A9 ]4 j- \, h4 W% u) r8 j$ b{
  M8 |/ |# C& q1 F* _    return (UF_UNLOAD_UG_TERMINATE);
- i7 M: y/ M* H- I" `}
( \& J7 I4 l1 H, X, w* k1 D5 `+ P, M2 R! g( O7 U
void ufusr_cleanup(void)
' Q$ Q0 _6 v+ p! n{
4 d; Q) {0 t" O4 B: t    ECHO("NX is shutting down - running ufusr_cleanup\n");
0 y! F: J& {9 l5 g# ~( q9 f8 N$ P, k& b8 R9 ^2 z, e1 i5 Q* t- Q! K
    /* put your code here */
5 ~6 w7 u0 I4 z5 m}[/mw_shl_code]
6 v1 M9 Z3 h$ o) P9 I+ h% O
上海点团信息科技有限公司,承接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:49' A. t& c, ]1 l# T" {
请问这个函数是怎么用的?有什么用?

4 \6 u  I4 j1 v4 h1 ^" U6 o& ^入口函数 改成 ufusr_cleanup 5 H/ }6 |3 M% J) g
/ f# F3 a$ d  g# P' }9 ~$ Z9 g
意思是 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二次开发专题模块培训报名开始啦

    我知道了