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

[原创] UG NX二次开发Ufun关于对话框UI的使用案例大全

  [复制链接]

2013-11-14 17:46:31 49334 141

mildcat 发表于 2013-11-8 21:29:41 |阅读模式

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
  ^: q( O) P+ P& U8 K* n( b) Y0 T . Y7 J* |- N; r
# `$ {9 M- c( D- V

UG NX二次开发Ufun关于对话框UI的使用案例大全

UG NX二次开发Ufun关于对话框UI的使用案例大全
% s: L. C: g6 g
( m9 u; a) M7 l, R2 q9 C2 `
! v- \5 q- K' I7 v6 w8 Z- I

8 X; s) v4 d& q2 `, q" c
  R: F! q) l, ]
游客,如果您要查看本帖隐藏内容请回复

$ P6 l, k; h8 ^, M4 o源码分享:% \- A# I, Z6 ^# O

8 l3 H: M% Y6 T: x
  1. /*****************************************************************************
    , L% Z+ @$ v/ K( w+ a% _9 ]: N
  2. **
    . F: @/ g$ K. x1 J! u" e
  3. ** ufuitest.cpp1 I0 Z1 A- w+ }" N! v* |9 \. G
  4. **
    4 c$ w$ L$ l! X
  5. ** Description:
    : E' m. l5 W: Z+ h
  6. **     Contains Unigraphics entry points for the application.
    8 C  y9 l8 r- a. Z4 D+ t7 Z- j
  7. **
    ' Z1 J. f; }# l, {' ~3 |3 I" r
  8. *****************************************************************************/
    + d# g2 m  a. O# G4 r

  9. 2 x) D) P8 L1 s. s6 _' v
  10. /* Include files */" a2 b6 D7 T% a9 F: t
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
    " M6 U6 q# q6 V; B/ x* k
  12. #   include <strstream>: [9 b- g+ G: F" v
  13. #   include <iostream>
    $ }# `7 p9 V5 ^6 @
  14.     using std::ostrstream;% a( u' Y0 Y; [* [1 @
  15.     using std::endl;   
    . w; \8 E7 H2 R, ^) j  D
  16.     using std::ends;
    3 j" E& ^: F! N' h
  17.     using std::cerr;" S5 Y' e" _6 o. j# `6 b3 {* w
  18. #else+ w3 M' @0 w8 ^% y1 p1 a, A, Q
  19. #   include <strstream.h>
    / B4 V" U' t( @) s
  20. #   include <iostream.h>
    1 Z; n" k) S/ A( z& ]- K+ y/ H
  21. #endif
    $ l& j: x5 r, s/ B% T2 `# b$ A
  22. #include <uf.h>& c* k( M0 b+ f3 S- L
  23. #include <uf_ui.h>/ u# @: Z' ^2 c0 c
  24. #include <uf_exit.h>! p8 O5 D1 r3 C1 C& K
  25. #include <sstream>
    % h6 Y+ W: S8 D. A

  26. - M0 g! V9 _9 c/ q
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ) H" R9 _) Z0 `0 ]) P2 Y5 E9 R- Z$ d
  28. & b6 x2 j" G( @% c: a6 _& Z
  29. static int report_error( char *file, int line, char *call, int irc)# r& A0 P) l8 b- I7 W
  30. {
    & Y( {3 B2 H+ Z
  31.     if (irc)9 R+ p+ u3 G- ?9 F2 n
  32.     {9 b( r* O2 }$ _1 I# p( G$ G+ a5 Z
  33.         char err[133],& L* c; ~+ r+ a0 X
  34.              msg[133];
    7 q# d7 B- D6 M5 V9 l. O% p, p+ a

  35. ; [0 K" h5 j& S! ~, X
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",8 n4 o4 S  @: b- Y9 R+ K
  37.             irc, line, file);
    1 F, Q3 k; a* t# B  n% q
  38.         UF_get_fail_message(irc, err);
    5 ]- G# p3 s$ ^9 f% X2 u9 N( ^( W
  39. * e3 j0 ]) D. Z& k% c7 A( ~
  40.         UF_print_syslog(msg, FALSE);
    2 L8 d5 O' e: o% K& z* @
  41.         UF_print_syslog(err, FALSE);
    1 [3 u9 s8 O  E0 c* @; q
  42.         UF_print_syslog("\n", FALSE);
    8 `" ?: e7 O1 }
  43.         UF_print_syslog(call, FALSE);  K# `0 }+ ^/ d( m' \1 e
  44.         UF_print_syslog(";\n", FALSE);( _4 G# k/ \& S7 ^/ l$ z

  45. 4 l/ V( G1 p/ F, S
  46.         if (!UF_UI_open_listing_window())! j7 u5 y) V6 Z" |  i' P
  47.         {  O4 V* U9 w1 _! {" l/ f
  48.             UF_UI_write_listing_window(msg);) x0 D7 N% T1 a7 e% V) Z8 A
  49.             UF_UI_write_listing_window(err);- ~( F! J5 w7 ~/ O( w1 l$ o" l
  50.             UF_UI_write_listing_window("\n");' z! f) K4 j% L. z3 }
  51.             UF_UI_write_listing_window(call);
    ; r8 l8 `* Q- d) D* z- ]0 |0 S
  52.             UF_UI_write_listing_window(";\n");0 v. \; |7 i! `
  53.         }
    ! v8 V1 T. W' ?$ ]
  54.     }8 ~# t. I1 F! [
  55. - @$ X* g3 H/ @* h( I
  56.     return(irc);# ]8 C+ K& G( b3 u
  57. }) o$ K. V6 P6 Q# A" r" K! a

  58. 4 j9 x: ~, t) {
  59. ' s9 ^3 u+ E: N
  60. /*****************************************************************************
    0 U2 y; ]- r; p, [7 P* K& W, N
  61. **  Activation Methods
    # e  Q4 J4 l+ Q+ W4 j
  62. *****************************************************************************/
    5 x- R7 p; T7 b# X( T
  63. /*  Unigraphics Startup
    4 Q/ W2 d2 W9 d
  64. **      This entry point activates the application at Unigraphics startup */. k* j1 {9 r0 U' m
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )
    2 t8 j; w8 C: S
  66. {$ ]# U* B/ B% h. ^' H7 J9 ~* j
  67.     /* Initialize the API environment */
    0 j# @  d; D+ H' w: {
  68.     if( UF_CALL(UF_initialize()) ) 9 L  N! |" ]& c2 l7 ]% d7 A4 f
  69.     {' O% G8 Y+ U9 U
  70.         /* Failed to initialize */
    ' M8 e6 \/ @* P- A0 a3 {* T9 l9 x& v
  71.         return;4 q# C- Q* h/ J* U  a
  72.     }
    2 |6 I% |: _8 U  V
  73.     . q) B8 M- |3 [* L
  74.     /* TODO: Add your application code here */
    1 ^0 V; {) O: v; O9 x( x) f5 K+ A

  75. $ e4 p! u# V' H0 d
  76.         //测试 uc1600 和 uc1601
    & r- S; e: n1 d* U9 v% m
  77.         std::stringstream  ss;
    4 m! N$ Z' ~0 L% @
  78.         char *cue = "PLM之家测试ufun常用的UI";1 F' j3 H' V  n, ]
  79.         char str[133] = "输入字符串";2 ~& {/ Z$ _1 [. ^  {! Y  M/ R
  80.         char msg[133];
    0 N! s+ q* n7 h% [6 G6 P2 u
  81.         int length,result;
    $ A3 x( e3 O  A3 d& o! A; Y
  82.         result = uc1600(cue,str,&length); //获取输入的字符串0 G: @0 U2 ]; l- y; F) ~) t
  83.         sprintf(msg,"%d",length);
    6 |7 X. U) |* l% J& }, f
  84.         if(result == 3)
    6 Z8 g" q: \8 E/ |  Y1 g% O
  85.         {
    ( d7 ~, F9 b# J& }& w, X( w  I
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上: n+ z" g0 V: H, m% {/ l" ?5 s. J$ D
  87.         }
    " W' v5 D1 `' H2 F; C* {2 T$ \5 N# l

  88. 6 Q3 @0 N4 `# ]9 X$ t
  89.   //测试uc1603 --》用来创建带有button的系列按钮
      _* f1 W' c# [6 O% m
  90.         char *title = "测试uc1603";
    0 H! |+ A5 ~3 k3 A( f0 W
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};
    ( F' o5 d4 _2 a  r" U
  92.         result = uc1603(title,1, items,4);, o# N( l% X0 }
  93.         if(result ==5)
    4 f5 S( ], K  M" f& K
  94.         {# R' a# ~0 L$ a, H: l9 r2 p
  95.                 uc1601("这个是对应的第一个选项,创建block",1);. l/ q1 S- J2 J1 {
  96.         }
    7 k% f. N; g0 J
  97.         if(result ==6)
    / U9 M2 |4 H; Q+ ^5 _' g) R$ q. w
  98.         {( [( D3 j, y! q" u: x2 n
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);
    $ Q% e" G" A( q+ S
  100.         }
    : F" J; X- T# J8 ~, S
  101.         if(result ==7)0 Q- f# f0 \& w# v+ |+ ^! p# D
  102.         {
    ' q3 _9 F) l; Q5 [) O3 Q
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);$ y/ F+ c% A) q0 ^
  104.         }
    ( p& \+ H  s2 C9 k9 z; A
  105.         if(result ==8)+ P, F/ R. Z5 u8 k
  106.         {
    7 l1 `  L: r/ H" h
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);6 h6 W" n! A: E. F  m$ E
  108.         }
    , q& u& _% b  C0 C
  109. , q9 Z* n& Y$ j0 l
  110.         //测试uc1605--》用来创建复选框
    5 j$ c7 I$ D9 L8 _) ?
  111.         int selected[14];% C# V& F2 m: r( Q+ g
  112.         uc1605(cue,0,items,4,selected);
    8 b+ W. |5 s, Y. C9 I7 j2 S

  113. 3 L( `/ L! o% @' y/ u# ?
  114.         //测试uc1607
    # e  Z0 A' P$ {4 m
  115.         char *cp1="测试1607";
    ' w* ]! b. i% h2 Q3 G! Y# B
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};8 w/ L. A2 s- b1 v; c1 r
  117.         int  ia4[3]={100,200,300};
    * w) p- s+ M* b$ E
  118.         uc1607(cp1,cp2,3,ia4,0);6 H' R8 e. l' k, P5 i6 F1 k. }
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框* b5 |0 P, h& d2 y* Z* a9 ~) {
  120.         char *cp11="测试1608";( E5 D4 Q+ f% ]( [! M0 f
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};- X5 B: w, X* R5 N
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int/ w! f$ @, z0 n* f
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double
    ( a- h' F: T  u* W( u& e
  124.         int ip6[3]={0,1,0};  $ H* \* |, f, X. ]# t7 H' {
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);3 [2 t5 P# \; X$ J; A. O/ a

  126. 6 B3 y9 I! |: {) l8 z
  127.         //测试uc1609 -->用来获取real类型的输入框
    - q, {/ p: _6 `5 Y& N
  128.         char *cp12="测试1609";" e+ K: Y9 R5 [0 L2 J7 w
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};4 E5 g7 [* ]& P* Q! ~* h
  130.         double ra42[3] = {30.5,50.8,100.3}; 1 F9 l9 x& n$ X' I' S! H( p3 Z5 A
  131.         uc1609(cp12,cp22,3,ra42,NULL);
    6 j9 z: y* s; e( g& ]

  132. # \( B" ^; E3 ^8 l0 P9 N( x3 l
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框
    9 b( `/ W" C# {" w$ U; L+ l
  134.         char *cp13="测试1613";
    5 k& V8 l- q, }% Z: k4 Y! j
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};/ M& n4 ~! z" S  w  V! x
  136.         int a3[3] ={10,20,30};5 _% ?% A- V. i/ L. X+ F. D- P1 q
  137.         double ra53[3]={11.23,12.45,12.67};  A- F8 a5 M* d! s
  138.         char ca63[][31] ={"string1","string2","string3"};# M  O; W9 H9 C6 B. S: @
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
    5 m; }1 ^+ n; g& h- x& F
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);1 ^6 R; \* L6 Z. d

  141. : j" |% T; |1 C* k1 T6 B

  142. ! w: M2 i2 e% |4 R: P0 M% A$ Y' F
  143.     /* Terminate the API environment */" Z9 Q! q/ K% [7 e
  144.     UF_CALL(UF_terminate());8 H/ X; V9 n4 E& H
  145. }1 k4 C. O* b, F0 H% K" L. H* T( \

  146. $ J6 D! S3 P. m: z$ ]: r$ ?
  147. /*****************************************************************************& _8 V& C; L  V' \
  148. **  Utilities$ u+ e5 S: X! B# Z
  149. *****************************************************************************/. t" z, {* Z7 Y8 r7 l1 ]" K+ z- H
  150. $ z  J$ y1 H% F! k- i1 U7 L
  151. /* Unload Handler( n5 I) G4 y, w/ C# H
  152. **     This function specifies when to unload your application from Unigraphics.' {7 \8 p! ^2 \5 t. D) j# L9 K: I7 ?
  153. **     If your application registers a callback (from a MenuScript item or a
    ) T. y$ [* Q/ t8 u, X
  154. **     User Defined Object for example), this function MUST return
    : ?1 G3 b5 M# O9 K4 K0 Z% ]
  155. **     "UF_UNLOAD_UG_TERMINATE". */0 j* c: g; K9 [5 n9 g3 j
  156. extern int ufusr_ask_unload( void )
    * [2 e6 t2 A( |  Z9 }& P, w- B, @  J5 M7 B2 b
  157. {3 X8 F" Q* N$ Y3 h% }
  158.     return( UF_UNLOAD_IMMEDIATELY );
    % x5 P6 `- L9 P6 Q
  159. }6 u9 c7 P, h( f; ]
复制代码
! d0 W: g' }- O/ i
6 X4 m  Q9 o: V5 R* M

. I; e, P. d2 i( A; v. e* S' d1 l
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复136

a0806 发表于 2013-11-9 23:14:30

a0806 板凳

2013-11-9 23:14:30

谢谢,这是好东西
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

东沟恋君 发表于 2013-11-10 22:52:12

东沟恋君 地板

2013-11-10 22:52:12

好资料,谢谢啦
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

UG♂-金华-航宇 发表于 2013-11-11 09:17:47

UG♂-金华-航宇 5#

2013-11-11 09:17:47

看看,学习了
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

飞扬 发表于 2013-11-12 19:57:42

飞扬 6#

2013-11-12 19:57:42

PLM之家PLM之家
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

smthan 发表于 2013-11-14 09:53:12

smthan 8#

2013-11-14 09:53:12

谢谢高手分享
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

拓展模具 发表于 2013-11-14 14:59:49

拓展模具 9#

2013-11-14 14:59:49

多谢分享,辛苦了
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

☠寶∞爺☠ 发表于 2013-11-14 17:46:31

☠寶∞爺☠ 10#

2013-11-14 17:46:31

我来看看了
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了