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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

$ M2 d! s# X3 u, P7 QNX二次开发源码分享】关闭NX后,做点儿事
& G$ q( d) F* \- }9 l+ u* ^
. C: }# m& l; x[mw_shl_code=c,true]/*. S& u1 G6 P3 i9 E
# I7 U  c! I8 z0 Z6 i) q
    ufusr_ask_unload is invoked immediately following the completion of ufusr* l) F3 S: j. A6 q0 Q9 q. c
    (or ufsta when the dll is run from a startup folder) to find out when you
6 z& B% p' Q% e! h1 C4 W$ e    want the dll to be unloaded.  If ufusr_ask_unload returns
) u# `. e0 y  ^2 ]( F& @' b    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
) u5 I  \8 V' ^    unload when NX is terminating.  To prove to yourself that this works, set( M  r. K& I4 X0 j
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not, l: Z" F5 {5 m, [
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX, g/ u( m6 s& k2 r- R( F
    Log File and make a note of the full path to the syslog which will be shown9 x$ T0 l6 J! Y, H4 u/ a# Y5 ^$ A; n, {
    as its own first line.  Run the dll built from this code (nothing noticable
6 s8 o7 E, C9 q; m% f5 P    will happen.)  Exit NX.  Find the syslog and open it in any text editor to1 [4 S2 b. o2 @9 w2 F4 T* s
    see this line near the bottom:
+ w6 C  F! G: [8 m5 h# H: e  g4 \2 I4 J% J8 U; a
NX is shutting down - running ufusr_cleanup
+ [( B7 [: V. i  J' `, g
7 P2 r9 ~4 d4 @( F*/$ H  p/ `5 G5 d- F4 Z
#include <stdio.h>5 \6 E+ Y' W7 l/ A, ]* @
#include <string.h>9 e/ [5 \8 e9 V4 r" B: \$ G7 ?( M
#include <uf.h>8 o0 u* f6 ^' @; b: k4 M1 \
#include <uf_ui.h>
3 U, b7 C5 |2 n- M) `7 e9 b+ l2 A' `#include <uf_exit.h>3 U. O6 \# Y4 W! g

: s1 X0 @; q: f( K" l- l2 T3 \#include <stdarg.h>
6 b4 S$ @% J  y1 ^( L, S
9 N  Y  s" |, v9 V, s0 `5 Cstatic void ECHO(char *format, ...)
; a4 c# O& i2 u5 O8 m{6 k- M. R' q( w0 g1 I2 o# v* I! U% m
    char msg[UF_UI_MAX_STRING_LEN+1];
  F( I" U, Z8 u    va_list args;! }. ^3 a* s) l& S1 Z( @
    va_start(args, format);
- U+ _4 ]- N7 G    vsprintf(msg, format, args);
6 W, g% n. i3 A    va_end(args);
( u, U: {5 x6 o& M* u7 @8 U    UF_UI_open_listing_window();
/ k- l+ }9 a! {  L7 Q/ \    UF_UI_write_listing_window(msg);
8 W/ _5 m9 {! X$ r& @/ M    UF_print_syslog(msg, FALSE);
% t# F3 w# N8 K- v* k5 r+ \}
5 {; r( U1 t; e% A+ w  @5 H" k! W9 s* U) U
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))1 t$ r8 t0 ?% ~" c! `) V
7 a: l( O  j: }! A
static int report_error( char *file, int line, char *call, int irc)
0 |* j, R$ [! d! d{
0 _( K& [) l! z% C/ L    if (irc)
7 _, g* z( M: f9 S* n    {8 t5 s5 G2 j& }: c" H
        char err[133];: o. Z% [! _, F5 K: [; h5 o4 H

8 J0 _# u  |5 r4 k" X0 q: `4 K        UF_get_fail_message(irc, err);" D% R6 v* D& m% ]
        ECHO("*** ERROR code %d at line %d in %s:\n",2 p6 Q* e4 _& e, h* {
            irc, line, file);1 \" f' e7 S2 K+ l2 @2 C
        ECHO("+++ %s\n", err);2 F' c% G1 N: T6 ^/ z+ M/ @
        ECHO("%s;\n", call);
6 f6 ^3 z! G2 U6 |" {3 y, q0 n. J    }% k" J( e3 ^+ D6 S' f  ^8 g9 Z

8 {3 f& s+ O2 `; J    return(irc);; z- \: d; l* l4 i4 X1 v+ B. C% Q) J
}( ~/ J6 T# y. _& I% ^( u! K6 M

2 b$ B$ t# d, E; d/*ARGSUSED*/
: \! d! Q2 b: S/ ^% Z) ^! c  a8 Avoid ufusr(char *param, int *reTCode, int paramLen)7 p+ o% R8 R4 g3 M9 }7 b! `6 R' F, L
{, J* B+ B# I5 N5 ^+ B! O
}* \7 W! b3 J5 Q. m' I5 e

  i2 \; b3 ]9 E8 x. `/*ARGSUSED*/7 J+ P$ h* C+ E$ D; W0 }
void ufsta(char *param, int *retcode, int paramLen)4 s/ a% I2 R6 W7 t, B! z7 x
{3 q& e3 @' A6 p, c# M! C# ~
}% _$ [& T9 x0 O7 h1 o1 ]1 C
3 u* T3 H8 h+ r* S, a
int ufusr_ask_unload(void); J6 o- V  O' {
{/ R7 D' \' l3 u, @
    return (UF_UNLOAD_UG_TERMINATE);
, c$ s; l( O5 M' I}
. C0 Z+ I" |4 E% F% p# t5 n" w8 m8 @9 A' Y( a- E8 g/ x1 E  }  i  x7 d
void ufusr_cleanup(void)# b! x  v4 j5 a  t1 P
{; A5 f, D# a5 z! T
    ECHO("NX is shutting down - running ufusr_cleanup\n");
* n) ?+ Q% P6 s. n3 @: c3 z1 C
8 f" Z8 n) @# y: G8 X    /* put your code here */
9 Q& I' Y  J- H% X1 j}[/mw_shl_code]
  h, B% c2 X& v
上海点团信息科技有限公司,承接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' ~* W8 a, P/ d" U# L1 k
请问这个函数是怎么用的?有什么用?

6 `* C' M7 J6 Q; a: ]& g) m入口函数 改成 ufusr_cleanup
* g2 L& V& p1 {: `. I/ r" g) M) l) l* ~6 |0 Z* e
意思是 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二次开发专题模块培训报名开始啦

    我知道了