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

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

admin 楼主

2018-7-12 11:12:47

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

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

x

( d0 b& \3 t; T- f' cNX二次开发源码分享】关闭NX后,做点儿事
/ u  V- V- C$ u# N* e7 d& ~
: c4 ?/ f& v& p$ k* P[mw_shl_code=c,true]/*
2 {5 b6 u3 l8 r/ s
! i/ U* D% {- R) c" Z% n    ufusr_ask_unload is invoked immediately following the completion of ufusr' |9 R% r  G3 i! n, {5 n: Q
    (or ufsta when the dll is run from a startup folder) to find out when you6 L% P; a4 W0 [* W) [, v
    want the dll to be unloaded.  If ufusr_ask_unload returns! u0 O& T- f: I; |' b3 c" f
    UF_UNLOAD_UG_TERMINATE, the ufusr_cleanup is called right before the dll is
5 P  v+ h/ \4 d; Y    unload when NX is terminating.  To prove to yourself that this works, set( Y% v5 }( E% t+ U+ d, G
    the environment variable UGII_KEEP_SYSTEM_LOG=1 so that the syslog will not. ^! @+ V) N6 J4 p% `) @
    automatically be cleaned up when NX terminates.  Start NX.  Use Help-> NX
* w2 J8 T; [  _    Log File and make a note of the full path to the syslog which will be shown
8 s8 y# `+ `  ?. p; V# J- b" c    as its own first line.  Run the dll built from this code (nothing noticable5 f$ r% I; ^2 p% S) J
    will happen.)  Exit NX.  Find the syslog and open it in any text editor to# c2 F& q& r' k, L, \
    see this line near the bottom:
* R& J  s$ s9 |. o/ g  y# h2 g1 b& s7 ]( ^) D
NX is shutting down - running ufusr_cleanup
4 g, t, M8 a7 ]9 G& M+ d8 r$ v
7 ^$ L7 N+ F, b*/
$ y: g' M! l# X2 W  b3 Z4 V#include <stdio.h>
* ]* D* \& |1 l* j# [2 ^  o#include <string.h>6 X; n" Y, i& O/ k! `4 _& e6 K
#include <uf.h>- F2 Y* L' v. b6 v; {
#include <uf_ui.h>
; ]3 {4 o: T  [+ r* }; {5 w#include <uf_exit.h>
( k' A( l) ~2 _! D# `$ }
% v+ K/ Y9 @. P- U2 D+ T#include <stdarg.h>4 U; g1 b" z" |
3 `: U4 h) B2 A( G, t
static void ECHO(char *format, ...)
! A+ T5 h" O0 R& q$ f{9 @* s+ T: b) o3 R% y' n" |, k
    char msg[UF_UI_MAX_STRING_LEN+1];* e% C. d2 A0 R0 E
    va_list args;6 j) O/ W/ y1 L
    va_start(args, format);
. j4 t% }. z- {/ ~    vsprintf(msg, format, args);4 V$ \- g4 c: O4 z& Q1 Q/ [
    va_end(args);
1 ^: X0 Z5 x0 L3 g$ M: Q    UF_UI_open_listing_window();8 ~# d  S! r6 ~# a* |8 Y0 u
    UF_UI_write_listing_window(msg);
; Y. P# _# `3 b& K3 ]3 y* c    UF_print_syslog(msg, FALSE);
" Q; G$ m# K# @4 _) F/ \}/ N" G3 X* d7 _1 _9 E

6 I2 A* z- Y+ p: y" u#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X))): a1 C% I$ S# d! V
+ a$ u( R- W- b, r. ?& J0 {
static int report_error( char *file, int line, char *call, int irc)
# J+ p  [" j7 Y3 N& |$ }{
: ^2 [, c; r" }% @7 e! W! t& d0 ]2 [    if (irc)
6 k. s, L7 V: w9 q% [    {. b5 w  T& j  n
        char err[133];# W7 ]( d- E9 M5 v

( n7 J. N  c; i4 j7 _: U; C2 V        UF_get_fail_message(irc, err);
# Z' ^; b5 _! P8 V, N$ W        ECHO("*** ERROR code %d at line %d in %s:\n",
0 [: R7 l8 ~4 |4 C& \            irc, line, file);
: K1 P) l0 q2 O: i3 a/ S* i        ECHO("+++ %s\n", err);) u$ o$ Z8 b& }. ?2 y
        ECHO("%s;\n", call);: ~7 y5 Q' ?1 H3 f
    }
0 p! S0 [# N4 R( X: X' H8 Z$ C
! q9 v: d4 r; Z  o0 a  K' x9 Q) F    return(irc);
; p" h' X; O7 Y. T8 V5 y( Q}1 h5 s9 \1 R- Y6 x5 b

) X0 F# m: @& A/*ARGSUSED*/$ w  t4 x" J! t5 V* [  W7 K+ h
void ufusr(char *param, int *reTCode, int paramLen)
, ~; H  _) Z- y5 s1 b{
! ^  b" N( N# B6 l8 a8 }. r}
8 i% s% Z. `8 {
# b; @8 W0 a; _8 G* H& m& w8 P/*ARGSUSED*/; ]4 S9 t) R4 N4 ?
void ufsta(char *param, int *retcode, int paramLen): y6 z( A5 k0 z2 W' [
{# i. C, s  v3 V# h% D
}
- N$ i6 N4 A4 X
. V0 a1 a# C. l5 W( dint ufusr_ask_unload(void)2 H* p! B* R3 Q" j. X! ~' W
{. x/ Q6 m5 Z# j2 {* S
    return (UF_UNLOAD_UG_TERMINATE);
4 \% E/ ?# T* U7 U. I3 o7 H}
  s+ w  d8 \& M! w5 T7 v* ~8 D/ y: [1 a: A+ T9 y2 {  I; n
void ufusr_cleanup(void)
* \$ [1 b* q, f4 a{
3 S+ U+ }- I4 ^' v6 a( j    ECHO("NX is shutting down - running ufusr_cleanup\n");6 s2 K& m8 |* M; S

7 r* Q* ]2 D: S7 M0 [4 r    /* put your code here */* C* U3 M3 ]& Z8 N7 L5 k! B0 @
}[/mw_shl_code]
) [& e) x9 @+ N5 p7 L) F8 F
上海点团信息科技有限公司,承接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
+ c4 H: e1 U0 \5 ]- L2 `4 H( x请问这个函数是怎么用的?有什么用?
0 Z/ y7 O) o$ F( A
入口函数 改成 ufusr_cleanup ( D) B! v) g" q6 C. o% J
0 z0 V6 @2 V( a2 c* o. Q
意思是 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二次开发专题模块培训报名开始啦

    我知道了