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

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

admin 楼主

2018-7-12 11:12:47

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

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

x
9 B' `9 B6 _9 n4 |9 w
NX二次开发源码分享】关闭NX后,做点儿事
6 a8 g8 T/ P7 |9 Y  e
/ H  t. c' Y( J3 [) K[mw_shl_code=c,true]/*5 G2 D- B2 f/ t% E) E6 U$ C

. }1 b5 I' e% J. v2 |' g: P- n    ufusr_ask_unload is invoked immediately following the completion of ufusr
7 T# y6 W2 ?% c. ^' i: m* p    (or ufsta when the dll is run from a startup folder) to find out when you
' @! Y, E2 s. z, {    want the dll to be unloaded.  If ufusr_ask_unload returns6 \. l0 U+ u: c6 b' q7 d: a
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
5 H" q0 R3 L; e' o    unload when NX is terminating.  To prove to yourself that this works, set
" {( i  y1 c4 q# j    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not- E6 F# n  Q5 U8 e% w
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
  Z) W4 }" u1 R( X    Log File and make a note of the full path to the syslog which will be shown8 [- e: K! V# `  C
    as its own first line.  Run the dll built from this code (nothing noticable2 F( h' b  Z, C" \4 e# W
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to( p* J, z; a8 i* y% N" g# i
    see this line near the bottom:/ R  r6 h4 x3 l# o2 a' ]

3 L( r( w7 n8 u' I5 A9 ENX is shutting down - running ufusr_cleanup
0 n! J( p% W( y5 h" D0 W3 }8 l% K7 W4 p% @
*/+ D+ M: u, |9 f3 Y' e5 F, X0 h
#include <stdio.h># ~8 ^3 Z8 {) D% Q
#include <string.h>
3 B5 X$ L: Y' _$ P2 L& p! k6 c#include <uf.h>: R' X) h3 a5 H* o& J  ~. Y
#include <uf_ui.h>
1 Y4 o! K2 k0 R" h2 Y; V5 k#include <uf_exit.h>
; ^7 g+ D$ W  q9 {( y+ U2 ^
% U( W8 E# n& O  m3 `#include <stdarg.h>: [4 }2 L: @# k/ m' N" Y: {

7 e; e4 x0 \5 cstatic void ECHO(char *format, ...)
7 W! k" m& }! J0 h- q* x" T- n{4 \* C+ `8 M) t( A) Z* r' T1 o
    char msg[UF_UI_MAX_STRING_LEN+1];
8 u9 _) Q3 K1 t# A    va_list args;' I5 _9 h/ L4 B' s. ]3 v% v3 ^. t
    va_start(args, format);
) O1 _7 K. S. T# k  a    vsprintf(msg, format, args);
+ V5 X9 G9 J; |) M) r& w# V! @    va_end(args);
* l- F" J! g0 H  C    UF_UI_open_listing_window();: S& _; n5 B) I# R2 \
    UF_UI_write_listing_window(msg);
) a9 F* d9 H7 x, H    UF_print_syslog(msg, FALSE);
. s% `$ O+ W) E: Z; y}
* A& _+ p: u' \& K8 @. H3 }0 m2 u  P( Q& d
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))$ ?/ I# H5 V; E9 [" w

9 z% h: @& W3 G' e1 N5 ^  Rstatic int report_error( char *file, int line, char *call, int irc)7 v5 I; t, x. x
{7 V! o5 ]7 p" V: R$ R4 i, S
    if (irc)
! g) _9 O( ~0 |5 P    {/ _) \0 [. c: n+ r& i
        char err[133];
0 j; j8 z+ E$ J; m' h/ i* D. s/ d" x- O3 a/ Q/ k- B& u. W+ G
        UF_get_fail_message(irc, err);! b5 ]# \6 M; w# Z
        ECHO("*** ERROR code %d at line %d in %s:\n",4 m8 b9 B4 j- Z0 Q
            irc, line, file);
4 I5 X" U/ `; F# z" L        ECHO("+++ %s\n", err);
! I# P# ^0 t: H# A1 c        ECHO("%s;\n", call);/ u2 z9 U1 }' V0 |. f5 h
    }
2 t) F1 I+ y+ u+ f8 T- h' F
; T& P" M5 n0 N; V0 f/ C' d    return(irc);$ a% d0 e/ p% x8 z3 l! O/ t
}* l! z  w2 j, {4 p, O  W9 d/ r& a- ?

: H! r- @" D3 v. z7 H, y/*ARGSUSED*/
% [: @8 l# O9 Yvoid ufusr(char *param, int *reTCode, int paramLen)
* i/ z3 ?8 v2 E{, z# K5 [- z3 k, `
}
- I0 @6 F+ d& l4 j" v7 Q
( _( t3 [, k9 v( Q/*ARGSUSED*/3 C, t% V8 L9 E4 Y
void ufsta(char *param, int *retcode, int paramLen)
. a: u$ P  c# I9 F0 Q- C8 K* x{
9 e$ ?& y- e/ O, K}
/ c4 h# T, D, q/ @+ R
4 q. c' L# Y1 {) c0 W7 {0 [# \int ufusr_ask_unload(void)0 M0 W+ L* L, n" k7 Z: f
{
. |" y- e, G* G/ M( M0 M+ E2 u    return (UF_UNLOAD_UG_TERMINATE);
! X  _0 o7 n! j( M' d5 R0 k}( O/ l. x: h1 z+ F+ P3 |  k
( |$ @/ B8 d2 H+ S
void ufusr_cleanup(void)9 Y0 C% i1 @: o1 _/ P
{7 }2 T" U/ q% m- i2 Y
    ECHO("NX is shutting down - running ufusr_cleanup\n");  b) P- B4 e; H/ v" R
& t$ O5 d% a. A3 v  B
    /* put your code here */
7 G1 h  C2 O9 Y$ a8 f) m( ?}[/mw_shl_code]4 F7 n1 x% G; j1 Q
上海点团信息科技有限公司,承接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
; v# O& e0 r5 X1 s. H- N+ @( M请问这个函数是怎么用的?有什么用?

0 o( C. x3 l8 [4 D入口函数 改成 ufusr_cleanup
/ f. n, l$ O# [' \- P2 [7 D; T* i% u# k9 ]7 t
意思是 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二次开发专题模块培训报名开始啦

    我知道了