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-国产软件践行者

[二次开发源码] UF_UI_create_usertool函数可以加载指定用户工具

[复制链接]

2019-1-2 13:21:33 1805 0

admin 发表于 2019-1-2 13:21:33 |阅读模式

admin 楼主

2019-1-2 13:21:33

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

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

x

! j; x( a9 g( C& a转载`!!!!$ C5 e- z  h6 j1 U4 V  g1 o9 S3 J
; @! t0 B! v: w9 {$ j; X7 W4 n
在uf_ui.h头文件下的UF_UI_create_usertool函数可以加载指定用户工具。当前未发现有哪一个API函数支持运行宏,但可以通过加载用户工具(.utd文件),再由用户工具面板点击执行对应的宏命令。
1 w% J; s. F+ ]! ~
4 N- j  F' M. [1 f  v% A$ B; e  F例示代码如下:, ]& u  a2 C6 ~

% p' t  H* t' U( ]2 f/*****************************************************************************3 Y  N, G# q  D, h6 i; e# Z' x% }; S
ufd_ui_create_usertool.c9 @0 i1 `8 f' i- w

$ X% k5 v* C* T+ F# [; l本文件将演示如何使用以下的 UG/Open API 函数(s):. Z% k1 G  u+ y. O. c, y
    UF_UI_create_usertool5 }+ G  Q/ ]& Y1 d  K/ S

, D+ u) \2 H: Z+ m5 A; n' n' B- q8 c环境:  r, g) G+ h* n( j( `
    VS2008编译,在NX 4.0/NX 6.0上测试通过。
5 i. g* |# q% |* t$ \+ g  b
; n2 T4 y9 N9 L历史:* Q% c4 T$ ]; K8 [8 B
   日期              作者              备注* J+ ~# Z9 L7 W4 ]; \
2010-11-02       zale_lzj           整理创建. v: Z  S# g1 I4 [
*****************************************************************************/
, B* G) J9 h- A$ C3 S* Z* ~! T& F5 I; t) o
/**2 w; W, F8 n% X* _: F- ?' J
* \API UF_UI_create_usertool+ W. x9 Z7 w1 B1 W6 J7 _( E
* 加载用户工具(.utd file),可以通过这种方式运行宏(.macro)。2 B4 M! O, u5 L% b; I* Q. f
*/2 n9 ~+ t( X1 F( F) i% H2 u$ M* @
) ?% D2 @2 a" V7 f
#include <stdio.h>
9 ^  \! k3 q. l# D: }
, F% S' p  A9 ^/ \# t# |% W#include <uf.h>$ G5 m  H' ?- f8 v: G
#include <uf_defs.h>
7 n1 U: W+ F- C#include <uf_exit.h>
; ]7 I9 Z/ ^* ^/ M; W7 y6 `, _#include <uf_part.h>: y; n: w7 t  H/ z4 u
#include <uf_ui.h>
6 G/ k( ^7 E7 M0 q. Q: I& r
) ]  f$ J& d- ~  T& e- y8 x; _#pragma comment(lib, "libufun.lib")2 D7 x! s+ k9 }
#pragma comment(lib, "libugopenint.lib")' f0 D( P) ?' r  ~) @
9 z3 p( V: b% {; r; p' d6 d$ S
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))  w& r$ m7 w7 t  ~* O
  t% V$ ?: l  p- h
static int report_error( char *file, int line, char *call, int irc)) _( u- v( x- H
{5 U/ v: e* I+ t' z4 G
    if (irc)
8 n$ g* Y8 [9 K    {
% Y9 x8 I! q1 b; E5 B! ^        char err[133], messg[300];: \" g9 L% z% j) R$ @( d
        logical response;
6 \$ K) v2 h0 z" r0 z+ m! \, b+ ~/ i' N" V0 ^' n: Z; B8 `
                UF_UI_is_listing_window_open(&response);0 Z1 u+ K) m, M
                if (!response)
, `7 s5 ~4 W& [8 l* V% {3 M2 J                        UF_UI_open_listing_window();
' [6 H, M2 Q) d6 i, s% x4 [, A  i- g3 I* L0 H  ?. X+ X
        UF_get_fail_message(irc, err);
. t: z, J  P& R( H' [8 R+ l        sprintf_s(messg, 300, "\n%s\nerror %d at line %d in %s\n%s",$ e8 d0 W/ D0 g6 d, S2 q
            err, irc, line, file, call);
  q1 ~& p9 r6 y& B; n7 ]- ^        UF_UI_write_listing_window(messg);4 @( x' H1 }7 n0 G) X7 V- [
                UF_UI_write_listing_window("\n");
0 p* N5 ]& x9 o    }; N0 _% X) z" [9 }8 P0 e
    return(irc);2 @& t1 l! k+ w# `+ p3 @' a( G
}' Q$ I" s8 c. L" _2 Z, f* B9 l3 F/ i) V

8 ^2 W8 c7 d% t% z- D6 @" mstatic void do_it(void)
+ _, F% g5 A6 Y3 x1 W8 C5 N, w{1 @% e6 \& ?1 h' Q/ f& b
        char* filename = "C:\\Program Files\\UGS\\NX 4.0\\UGSAMPLES\\file_toolbar_nt.utd";* ^1 {& j, Y- p, P8 {5 m3 i% o
        logical read_flag;
. o2 J* ]+ j3 f, i- B2 V( ^% {) r! z) t! M, y: G. N
        UF_CALL(UF_UI_create_usertool(0, filename, UF_UI_SHOW, &read_flag));2 s1 D& p$ F- j3 L% P6 G; K9 B
        if (read_flag)) S: F: x1 ^* o  Z4 l; D5 J' v
                uc1601("Syntax error!", 1);
6 n$ R9 ~* `  N2 {& X. i( v}- J! ~7 _9 m$ o" r; a7 k
4 m1 U9 h1 I  {0 A# n+ C
void ufusr(char *param, int *reTCode, int paramLen)) k7 S7 `. y6 P) M! t
{
# c5 c+ A5 t' r$ U6 M0 L/ u% y1 Z    if (UF_CALL(UF_initialize())) return;* ?+ a5 k: V8 i/ D
. i5 x1 z! b$ ?+ M. F; P& g
        if (UF_PART_ask_display_part() != NULL_TAG)
7 s  C/ ^& g3 Z# z; A                do_it();3 X  Z& \- h/ k& R/ {" f
        else
; n: S8 l+ [0 A  {                uc1601("No active part", 1);6 k; s; o/ \* ?. M4 N! O* \- j. e. G

; t/ a) x$ Z) O  F+ E    UF_terminate();
4 _4 n6 |2 O4 @}
* x9 _' D) T& f6 g) _( y# T% w3 Y; X& }5 r
int ufusr_ask_unload(void)  d5 z+ \3 M  I1 l1 }9 q. w
{
/ |9 C! o6 c, R6 k$ ^( q    return (UF_UNLOAD_IMMEDIATELY);
) t5 T& a, |0 X( [}& c% W; L/ P. T" ]& J# y1 ~
* j, r; \; Z5 o" P; Z
void ufusr_cleanup (void)
9 J8 _1 u3 E: Z+ y2 m/ o7 v{/ H1 i2 @" B) F, L8 J. g
    return;
- v9 [( h: W' ]2 ^}' w0 T7 Z' H4 i" l+ A9 Q( _
0 g1 J4 o" X& F& m3 v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了