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 1774 0

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

admin 楼主

2019-1-2 13:21:33

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

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

x
- c% A( l' J5 f
转载`!!!!
' Y" K' }5 M3 P$ w" c' E4 Z. @( e
在uf_ui.h头文件下的UF_UI_create_usertool函数可以加载指定用户工具。当前未发现有哪一个API函数支持运行宏,但可以通过加载用户工具(.utd文件),再由用户工具面板点击执行对应的宏命令。7 v- h- K. J1 ~. H

- f! E% e% D. T例示代码如下:& N- ^7 s! W( x' J0 E

2 E/ h" I! X( }+ J7 f/*****************************************************************************
& ~$ w6 L% U) f' l1 X3 B( vufd_ui_create_usertool.c
8 [/ G2 G/ G8 f8 Z) h# f' A0 t) y4 G% [* ^9 I# q
本文件将演示如何使用以下的 UG/Open API 函数(s):. l# q5 e, U% o
    UF_UI_create_usertool
$ L! Q$ P$ h8 z! {5 e' m" |& Y+ I( F) w  ~6 L
环境:
- u6 c' ]& V$ d/ a1 v    VS2008编译,在NX 4.0/NX 6.0上测试通过。
" s" W0 G) ]0 A/ b) B1 n
4 e8 `4 u! G3 }( E+ k3 A. R历史:
$ |1 I7 l. ~' D9 {8 m   日期              作者              备注4 Y' j4 T/ H6 Y1 x: R" _
2010-11-02       zale_lzj           整理创建& O; b! Q; M/ O. G. h
*****************************************************************************/2 T4 C# a, S& Z# s' j+ K# h

0 Q0 @! I: m+ C' P$ Y" u" j/**8 H. V7 S3 ~* K# A/ m" a
* \API UF_UI_create_usertool# Z( K) Q! q8 y2 J
* 加载用户工具(.utd file),可以通过这种方式运行宏(.macro)。
7 d# v. ^5 Y9 ^1 K1 @1 _5 a* A */
& y% {) z- _( {6 z( H" Z( d) O* j' q2 N5 ~% J. J
#include <stdio.h>
" [: X- O4 {6 J1 O5 ]2 \: i+ I7 ~! W* n8 @4 t
#include <uf.h>7 H0 m6 B, @) v5 N1 u2 H9 p/ t
#include <uf_defs.h>- w( M7 b' b+ I5 z4 q
#include <uf_exit.h>
7 f) v. I0 F0 g1 e#include <uf_part.h>
( |& m& @; F% d) }' ~; m3 K#include <uf_ui.h>: F6 ?% W* c' f4 `
  c% y4 p1 M) |8 p7 p! {
#pragma comment(lib, "libufun.lib")
2 W$ O' C0 G/ ?' n/ p6 u& D#pragma comment(lib, "libugopenint.lib")# L- Z( {; H) {( v/ y. x
  z: k! w+ x" h7 j
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
. R7 R% F9 C' G; q) u+ m' x( v) n( H+ h+ Z) t. |
static int report_error( char *file, int line, char *call, int irc)
4 {0 ^/ z: y0 `+ N{) C- u' p# W; F
    if (irc)2 t( n; O# U/ @
    {
, a) a. i2 M7 G- d; [3 Z        char err[133], messg[300];- l! S- _- @& C7 W, W7 p* T  I
        logical response;
3 ^5 x# U! \1 k; ^: }6 M/ l, E: p- p# N- Z( ]
                UF_UI_is_listing_window_open(&response);: y  r* h2 f. [8 @
                if (!response)
( ^1 w" H  w) ]6 ~                        UF_UI_open_listing_window();# Z! X% A' Y1 k2 A

* N8 }4 z+ v' \' [- l9 W8 I. y        UF_get_fail_message(irc, err);2 Q2 h/ P% L( Q; o
        sprintf_s(messg, 300, "\n%s\nerror %d at line %d in %s\n%s",
! K& d  O3 s) F- C            err, irc, line, file, call);
: t  ?6 t4 X/ E( D2 V: p        UF_UI_write_listing_window(messg);0 {) f3 E( I1 {) g. M
                UF_UI_write_listing_window("\n");
$ _- C7 I7 h: V4 p2 \    }
* s5 z1 g6 t& s3 ^# Z3 \, Q7 k    return(irc);% E+ t" W6 t& ^& l7 t* M) i
}
3 f5 B8 {9 L, b1 f$ [: V
1 T1 |4 e8 F! T% {- pstatic void do_it(void)  M, T/ C! c2 }6 w/ b0 [4 a' T5 P
{
. ~2 T6 j* p% S        char* filename = "C:\\Program Files\\UGS\\NX 4.0\\UGSAMPLES\\file_toolbar_nt.utd";
' G( ^# D1 H0 a        logical read_flag;; c' [# X+ p1 Y+ J9 g

' W9 R3 k% _9 Q8 P  p1 O        UF_CALL(UF_UI_create_usertool(0, filename, UF_UI_SHOW, &read_flag));3 X0 T9 d  R! s5 N
        if (read_flag)
7 L; ?! c1 t2 X  M5 \9 m                uc1601("Syntax error!", 1);7 F7 Y5 l8 {" a$ `5 j( t
}% [' |& U/ [3 Z2 P# l% V

1 \9 y7 j$ {" E# Y# wvoid ufusr(char *param, int *reTCode, int paramLen)
9 X: X  x6 W" P: p1 U" {{& O. A) u/ v* Q: j4 h  f
    if (UF_CALL(UF_initialize())) return;. L# n& M1 A8 i9 ^
$ P  `* D% U  ^- r0 \0 o3 A- q
        if (UF_PART_ask_display_part() != NULL_TAG): L0 B" W( F! l" K* u; k! Q
                do_it();; D/ E2 d" Q6 d6 s$ H6 ]
        else
! ?' l: _# |9 E( I. v& ?1 J0 m                uc1601("No active part", 1);/ F( c# z& b4 q5 M  L1 I

! H& H5 g5 T3 J* A* U    UF_terminate();
! t( |2 g) x4 s% {& a* q" o- Z}6 z% X' a$ i6 j/ b: Q/ M3 m

# t3 |# _  k: [$ a& _5 Iint ufusr_ask_unload(void)
7 |* ~& j" W! l6 f{
  l; d2 G% W. a/ Z- x- h5 G' h    return (UF_UNLOAD_IMMEDIATELY);
2 `. l2 \% b6 ]6 v1 H}: F( M3 ?/ u5 @
4 \; R, X2 \8 ~6 o! }: _5 U
void ufusr_cleanup (void)2 `# H, X0 }% G2 c( }& ]- ^2 N
{- e# F+ s0 o  `* `) L
    return;4 G& C% `8 j4 V2 n
}
% c; y: y3 U& u  a4 U/ t" W* ?7 f' I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了