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

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

admin 楼主

2018-7-12 11:12:47

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

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

x
  M1 D% A0 {& `% r# |
NX二次开发源码分享】关闭NX后,做点儿事; `' s' r% U3 t9 `$ c

. J6 z, Q; k' j3 H. a- i[mw_shl_code=c,true]/*
0 N9 e4 s7 C5 u" x! Q* i( m- W$ i) o5 l- S) U2 z8 ^6 D: m9 D. M
    ufusr_ask_unload is invoked immediately following the completion of ufusr1 j# i+ [* M) H' D) \' R
    (or ufsta when the dll is run from a startup folder) to find out when you# b; ?+ M: p; u$ W: C2 F
    want the dll to be unloaded.  If ufusr_ask_unload returns, O9 t' v$ P) `& h; }2 q: R
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
% A: X: L0 [8 w* w/ m  ?# z    unload when NX is terminating.  To prove to yourself that this works, set+ D- M7 w, ~. I5 \( f2 u- [
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not
2 R* S* W) z6 B. U    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
: u. ]* j0 n2 R3 F    Log File and make a note of the full path to the syslog which will be shown# a0 B  }* T+ l6 ?
    as its own first line.  Run the dll built from this code (nothing noticable" @5 [" U7 ~, t
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to
8 f5 O  S. [# j# _1 `$ o    see this line near the bottom:
* E4 E3 }9 A6 h8 _- S# y& f& w- y( I. O
NX is shutting down - running ufusr_cleanup6 V3 K5 B& }$ g# Q. Z/ v7 _2 M0 n( n
! x8 H/ E8 J1 ~8 }. ~
*/- M  ~! ]" i  I) V3 Z
#include <stdio.h>: X9 @2 y' o6 m+ z3 o! w4 ~
#include <string.h>' N% S9 j, @1 ^* o/ H7 n/ f* K2 n# y
#include <uf.h>
7 y# \" ?' n$ S9 O#include <uf_ui.h>$ h- O# v# ?/ K0 L2 o" {
#include <uf_exit.h>! Y/ ^2 G1 z: }+ f
" P- N  M" i! p2 R& ]
#include <stdarg.h>
- Z& ?& y7 u0 i& x7 ^& |! w2 v! M* [/ U' P5 G  P3 u  D
static void ECHO(char *format, ...)3 S" h( g; E; g6 J$ K; j) H
{
0 ]4 `& ^5 R$ l- g/ |2 Y, v5 x8 G    char msg[UF_UI_MAX_STRING_LEN+1];
- v' {! @0 m# F# E+ p    va_list args;
4 M+ I% T# T" r    va_start(args, format);' f+ a/ |8 _2 l
    vsprintf(msg, format, args);& Q0 \, `. P1 l7 W# Y. A! I
    va_end(args);
( N* O6 |, r+ v# q$ `    UF_UI_open_listing_window();2 B, c, z0 h* L7 J3 @
    UF_UI_write_listing_window(msg);
5 j5 ~! a  H7 D/ c: z    UF_print_syslog(msg, FALSE);' F! O, m# S7 A/ E3 W1 j: y
}5 Q$ ^+ Y7 ?$ K( u) w1 H1 E1 }
% L0 h: {7 b) d. H% M2 m4 {7 V
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))7 l8 y0 g7 j6 E) {/ }# m  X6 T

+ g  L; V/ K# y9 ]# u* S( zstatic int report_error( char *file, int line, char *call, int irc)4 j9 [# K/ p" |3 _# y) N
{
( R- H( C; N. k9 ^% ~    if (irc)
9 r) j1 ?' r6 d; l    {) e( k! ?/ N2 x
        char err[133];
1 X2 Z% g- K9 ]! ~* e8 ?  K2 D  }/ o+ \. a5 ^0 a9 T( j, S
        UF_get_fail_message(irc, err);
/ h, u$ ~& T4 \- I/ @        ECHO("*** ERROR code %d at line %d in %s:\n",
: C: ~  d6 p% W1 c$ N2 x- k            irc, line, file);. l# b0 I& D9 v# k  V" s+ i2 V
        ECHO("+++ %s\n", err);
" R' O! k2 H1 J8 R5 U( U        ECHO("%s;\n", call);9 j4 x; X1 T' f* f3 r
    }
2 M; a+ Q$ c$ @' x* W
" d' ?! \% g6 Z) u9 Y# X7 G    return(irc);, Z/ h) c& N/ `$ [) L' c
}
( e. C( ^& u0 ?# V, B5 Z
& l: x4 a. K& f+ g6 v/*ARGSUSED*/
# V" Z2 ^" {3 T/ a& t; B2 Svoid ufusr(char *param, int *reTCode, int paramLen)8 l) J( ?1 H4 I- V* l$ k+ e6 R
{
3 Y" @1 m! x; z5 k}! e, ^3 I8 f0 _7 I+ I$ I
: E) m: u* P2 x" R
/*ARGSUSED*/
5 W& u; Y! V+ d; y/ b0 Lvoid ufsta(char *param, int *retcode, int paramLen)6 u0 p! f8 w6 I# u4 w
{
# P, [/ v4 D! L3 h" d}; U8 W4 ^0 [/ ?+ s7 ]8 ]* Q
; d8 H  F' a% I( {( W% C
int ufusr_ask_unload(void)' {8 e4 @& G: G  K
{; m4 _: i3 B0 M/ L) k0 Q
    return (UF_UNLOAD_UG_TERMINATE);: }; T4 c# U. z" X: p
}; Q$ \5 E% w! P, C
5 q/ [" x0 S, v8 z2 ^$ ?4 V
void ufusr_cleanup(void)
  H6 k7 R# {2 L: v9 u{
+ o; ]$ ]! N3 X( x2 @- g( p$ h* ?    ECHO("NX is shutting down - running ufusr_cleanup\n");' w; f9 }, X9 `$ z8 W" P

% x/ c2 [7 N; k  W- A    /* put your code here */
, n% h- k! v% u0 D! r9 @}[/mw_shl_code]/ H) N, w" C2 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:49# }% h" i* [3 o( \- z" j* R
请问这个函数是怎么用的?有什么用?

) m  h/ {+ P7 l& l6 `( o* L1 i入口函数 改成 ufusr_cleanup
4 u% j, \4 a7 ^# F. a8 |
: C6 d  g% m1 g7 T" h4 i意思是 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二次开发专题模块培训报名开始啦

    我知道了