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

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

admin 楼主

2019-1-2 13:21:33

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

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

x

; L* I, l6 u" i; E4 p' c转载`!!!!4 T8 o! }" p4 R7 A  L2 X
: Q8 N; |$ B8 `) l3 b
在uf_ui.h头文件下的UF_UI_create_usertool函数可以加载指定用户工具。当前未发现有哪一个API函数支持运行宏,但可以通过加载用户工具(.utd文件),再由用户工具面板点击执行对应的宏命令。
7 l6 J1 Y7 S3 d2 j% _* G" c
  y. ~% N. m7 t3 z# |例示代码如下:" p. @+ d$ H* \& R+ O; F- ]" g
0 I/ @; ?7 b( n3 U1 q/ l' ]4 Z$ Z
/*****************************************************************************
6 [) |. m( i' F3 Eufd_ui_create_usertool.c
, c  T& t$ K7 m* k& {- P
- \* r$ C( ^; P# n本文件将演示如何使用以下的 UG/Open API 函数(s):! ]8 k) F$ e* I
    UF_UI_create_usertool  K# J( h3 {; ?9 c4 K& `" G& H

! i$ Y9 n4 t) t0 b* E% m3 i环境:
% L: R- S. f# c9 J    VS2008编译,在NX 4.0/NX 6.0上测试通过。# P1 U# h6 `/ Q/ W

, \. }3 U6 m4 ~历史:
' V; n! d" X" N* m   日期              作者              备注
( `8 T3 U( Y# W: M' v5 R2010-11-02       zale_lzj           整理创建
$ L* H& \" w! G- Y*****************************************************************************/! i0 f; _; ]4 D1 X% Z% ^- M

9 w0 s( k! E5 O2 a# u3 P0 |/**( w$ Y8 F. o+ U4 K+ ^5 `/ r
* \API UF_UI_create_usertool
- n' H! B; L1 z+ r * 加载用户工具(.utd file),可以通过这种方式运行宏(.macro)。9 V5 m3 e* j6 k& i( s
*/
( i5 x# {' C" L$ T& f  Q3 h0 ?: L6 a4 S
$ c& ~" [$ R: x#include <stdio.h>- {3 e& R2 |  _" p' N
4 Q  d, u  N0 J4 W
#include <uf.h>
, _) z  B3 |' I# ?+ A  V#include <uf_defs.h>
9 N. j9 M& Y% V( j( \* {: z2 Y#include <uf_exit.h>
, j/ w" e9 p; ?7 e#include <uf_part.h>
- T' @. d" S+ g5 J$ {" l' P: Z#include <uf_ui.h>4 y% @- V( C) a% c' E
5 j# D; @% t. ]* F" A5 u% t3 R1 p  |
#pragma comment(lib, "libufun.lib"). T5 S: v0 Q1 a7 K) \& N$ }" |8 p
#pragma comment(lib, "libugopenint.lib")3 Y& m4 n. b" x: R" i- H% B9 X

1 p. r, R+ L7 O; w3 V#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))3 Y: l# K, a, S1 Y0 g1 W' y/ ?
% j8 A' G2 o, w$ U, D1 A, Z
static int report_error( char *file, int line, char *call, int irc)
  l# H+ V3 \, ~+ s& q) @# B) u{
! q' o/ v8 a" Y) o3 f( c    if (irc)3 [3 M+ L! X- O
    {
0 Y) J- _2 F1 ^  r0 ?( D& o        char err[133], messg[300];
9 i8 N! _4 Q+ r; J- c. M        logical response;1 q) p' t2 P1 S" k! F
( y% d/ Y, c4 A. v/ F
                UF_UI_is_listing_window_open(&response);
  g; a. q" N5 O& h+ w                if (!response)$ D  ?7 D% s6 q1 h1 e
                        UF_UI_open_listing_window();+ Z6 F1 X- k% q: N; z6 m
4 _4 s7 I% y9 |1 V; I- D/ [$ @
        UF_get_fail_message(irc, err);
2 R7 n# F+ e! ^        sprintf_s(messg, 300, "\n%s\nerror %d at line %d in %s\n%s",
; m8 W$ t& F+ c. A            err, irc, line, file, call);
% v$ X/ x3 W+ D2 N6 X& V. x+ p4 h/ U        UF_UI_write_listing_window(messg);
& ?& z. |6 Q  M4 K, C. c. ^9 P                UF_UI_write_listing_window("\n");
+ J' @' e8 d$ _. z6 X+ x& r# k    }4 l1 r' s1 G) z4 L
    return(irc);7 Q) f7 p1 q- K/ x  K, f0 G9 I
}
3 d0 q3 I: l9 b8 D
4 H- J' Z) I0 s. D7 Z4 V! S% i  o5 Vstatic void do_it(void)
) z$ _1 K: d% K; P3 _! t{
6 O) V0 }2 ~0 e4 [: C8 S        char* filename = "C:\\Program Files\\UGS\\NX 4.0\\UGSAMPLES\\file_toolbar_nt.utd";
) R3 d4 N& E; X        logical read_flag;
2 Y2 F# D9 z! H% L- o+ q$ s# a( e( a  R
        UF_CALL(UF_UI_create_usertool(0, filename, UF_UI_SHOW, &read_flag));
6 y3 _9 q8 Z* X* g& z$ ?        if (read_flag)4 L: _0 `" m8 y2 B5 w1 y
                uc1601("Syntax error!", 1);3 ~) A8 U' W0 v1 x* N; f% K
}
: c/ _4 T$ @& k3 ]
5 N0 P* U% w: xvoid ufusr(char *param, int *reTCode, int paramLen)
& B& F. c  C/ ?1 Q9 X1 C+ A{
, \1 C% Q- J8 L5 C    if (UF_CALL(UF_initialize())) return;
& {( ~( Y5 c/ H7 K# M( A2 I9 ]" G
: ~+ U* l' x3 D' d  @9 w+ e0 s        if (UF_PART_ask_display_part() != NULL_TAG)
3 s: l' k% K, l! M* a" V                do_it();
7 K9 B$ Z2 `7 z7 E5 K/ R: Z        else
9 d8 Z" F! n5 e% W                uc1601("No active part", 1);
+ s" ]1 _2 d9 m1 R2 F# U4 B2 ], d2 A9 j3 o, {
    UF_terminate();
- b' d' q4 q" o- m  r2 P8 c" b$ B}& Z3 u: }2 n( V. V

7 J6 H9 `% u- }4 iint ufusr_ask_unload(void)
" `$ o* x5 l9 v; G& H' c' h{% A! D* f; M: y+ U
    return (UF_UNLOAD_IMMEDIATELY);# f5 ?3 ^0 j0 l3 w% `* J
}
. V' V5 E" V( R, g7 H
* y! v. e% S1 [6 }+ v# v' dvoid ufusr_cleanup (void). h1 i  o- i$ B
{! w. Q  S) N& M
    return;% s! ?$ I! `; M& c1 T1 Y3 N
}
4 i- D! l" Y7 n& a3 a! h; U$ E2 D1 c& ~3 z9 U% r$ P- E2 _: y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了