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

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

admin 楼主

2019-1-2 13:21:33

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

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

x

$ f3 V2 O1 A  d( G转载`!!!!& f( L: U. i! n
, p( O% f3 Q' X/ M* B
在uf_ui.h头文件下的UF_UI_create_usertool函数可以加载指定用户工具。当前未发现有哪一个API函数支持运行宏,但可以通过加载用户工具(.utd文件),再由用户工具面板点击执行对应的宏命令。% h) Y3 y% P2 A$ D& |

2 B+ t# e6 D8 \* w3 }% K7 u$ f例示代码如下:
- U! C+ I# q0 X: d
; G, S6 S( q  d1 k/ _2 T/*****************************************************************************
# B  s" G/ ]8 j0 fufd_ui_create_usertool.c
8 G" J$ U* Y, i0 }* w5 L  M6 ~" W1 ?# d; J- s. H: W
本文件将演示如何使用以下的 UG/Open API 函数(s):% x0 N+ p' ^! Y2 n
    UF_UI_create_usertool4 j1 w( h; Z: R2 d# y8 Z

: r9 X- y3 i: }% i( g0 e环境:7 E* e8 P' v" s% p1 w
    VS2008编译,在NX 4.0/NX 6.0上测试通过。
7 s  Z) O. m# \& L+ s; G( _( N
( V2 N/ Z2 y& ^5 M/ t历史:
3 V) c" ^3 k) [9 X' l8 d   日期              作者              备注% Q# N& i' o0 G* F
2010-11-02       zale_lzj           整理创建
& F; X6 H5 I: }* L% i*****************************************************************************/
0 E' O; T  Q! d& S
' B& [- U% B$ |2 I8 c0 K$ Z. V8 s/**
% ~. o% G5 c  Y+ x * \API UF_UI_create_usertool
( ^7 Z+ d) T5 U * 加载用户工具(.utd file),可以通过这种方式运行宏(.macro)。
. L; A' t1 r! j/ n */
: Y: V3 w6 D- z) w& J+ s8 o6 L7 f
, r) N  E2 u8 b/ m#include <stdio.h>
) |( F- b6 P1 `7 C- A+ u2 i  z
* ~2 u: J# T' q! o#include <uf.h>
# r4 a+ A$ C6 B& |( v#include <uf_defs.h>
( R; v2 _/ ]& a: C#include <uf_exit.h>5 W7 Z; n  l5 I4 d+ @% i7 O' [
#include <uf_part.h>
9 R8 s& Z* m1 U4 I#include <uf_ui.h>
9 Y/ B6 i7 a8 S- p: @8 z* d! e; D" j, }2 V2 ?' N
#pragma comment(lib, "libufun.lib")7 S% a  p( u' d5 U  ?* x: E% T
#pragma comment(lib, "libugopenint.lib")8 Z# D* O& g& R! \& V8 x
7 @5 g2 Y( b- C: Q
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
" c5 I9 Z- Y: P# P$ K1 x+ h' N' t+ U; s/ Y( A+ J) X
static int report_error( char *file, int line, char *call, int irc)
# Z8 D0 ^. y7 g; s, C0 {$ \! p$ T" ?{6 L! D: L, `: \7 t
    if (irc)) I$ Q3 M9 R" j$ q3 I' |( z
    {
, c. x# `, m8 Y% O, w6 u8 m        char err[133], messg[300];  G. D9 ^: Q& o, }) h2 u
        logical response;
7 g, H" ~# {' ]3 `
7 L- T# V" X3 w5 P# x+ ]! W# ?% u1 r                UF_UI_is_listing_window_open(&response);& G3 X! s1 u5 d+ X. A0 z0 ?# ^
                if (!response)* Y4 p$ q0 Y8 G
                        UF_UI_open_listing_window();
" J) i& h& T0 X2 W+ `5 a8 q0 `# ^- e$ z4 ]9 g6 d7 Y  _
        UF_get_fail_message(irc, err);; ^0 C7 s6 g0 \% l8 g" I
        sprintf_s(messg, 300, "\n%s\nerror %d at line %d in %s\n%s",0 R: [; t# v2 n
            err, irc, line, file, call);$ l9 X# m& U- p) w
        UF_UI_write_listing_window(messg);+ r) B6 U' G$ ^- Z0 @. M6 X
                UF_UI_write_listing_window("\n");6 m$ H; K( y% x" \0 Z
    }4 d" ~$ }5 x- E3 \9 G7 C! D
    return(irc);% G6 ?( N5 D7 G) E1 ^
}
6 b) N( A% ]6 U9 P! ?. o8 L6 V) q. z8 p& l- ]
static void do_it(void)
8 t; q  f  q  u: D{
" B1 k% M/ l* h2 X' I+ }! M. V$ o- w        char* filename = "C:\\Program Files\\UGS\\NX 4.0\\UGSAMPLES\\file_toolbar_nt.utd";; u7 O. E; _( g
        logical read_flag;2 Q% o" i) M/ A. ~& y' Q3 w; L6 X
6 r+ P, g2 t2 i) w. K+ X( k9 |! V/ Y
        UF_CALL(UF_UI_create_usertool(0, filename, UF_UI_SHOW, &read_flag));
0 _5 Y+ P) P: q7 b5 [        if (read_flag)
8 A' }! v$ T. s                uc1601("Syntax error!", 1);* y: s9 g; m# j
}1 r' ~& Z5 s( a
' y% E  Y( `& m  J# V  @
void ufusr(char *param, int *reTCode, int paramLen)
8 K5 \# Z* ?) w8 N1 D) l" R{4 F: G, w, v& h3 ~* M, j
    if (UF_CALL(UF_initialize())) return;$ p( n2 l0 k% t

- S4 j$ Q& B0 m7 V# z$ ^8 s        if (UF_PART_ask_display_part() != NULL_TAG)
$ x5 W  ^0 x# P# Y$ z/ x, Y                do_it();) E4 b5 i  J2 T+ R$ f. k5 B5 M7 s
        else$ ?+ H# E6 b3 n4 q6 Q2 E1 Y: ^2 g
                uc1601("No active part", 1);5 s; v* b) ^1 u

8 Q8 j* Z" D( i4 d* W6 B    UF_terminate();
* l! Z! t4 G) l( L( F}4 D! Y. ]$ D9 Z' j; t. V

% H4 B: s) F) T) B9 k+ nint ufusr_ask_unload(void)
" T+ @$ P! D( D+ @{
3 z9 J8 A' ^' E* o# v9 k    return (UF_UNLOAD_IMMEDIATELY);, ^3 d* S6 D$ u- J
}4 C1 z2 L. t( ?5 R
) N& M2 \* _1 T) y# t
void ufusr_cleanup (void)5 M2 S6 K% G! p$ [1 R# m
{# N; C' z! |! ^" S  H
    return;( j$ Y- q& ^% B/ ~
}; C3 G1 g: y8 ~$ t0 ]9 s) P. i6 F
; q) T" r# s( D7 D) J8 H- L. J: o
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了