PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
, l0 f: S0 d6 k/ I5 I
( S' V' m7 Y) ~& \- _9 c5 G
7 g1 ?% T! k0 D

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
' G# [7 q7 h& I$ |

" p- M9 t% t" ?+ r% c
* j: |4 i) h2 F5 t; j& O
9 G: E" G& H: r& x
* o* I6 f* N, }/ E5 j0 O
游客,如果您要查看本帖隐藏内容请回复

) [7 w( T$ }3 X" {* s7 @9 K源码分享:0 i! E# e+ E' v  @  i% ^) g

! @0 @4 W. T' Z* D$ [+ |1 S8 k
  1. /*****************************************************************************7 S) q6 @- R  g' v
  2. **% ^& @% Q* w  D! f. u5 Z
  3. ** ufuitest.cpp+ E/ t* n) T& _* p% R
  4. **
      f4 y6 ]4 S4 k" h/ \/ h
  5. ** Description:! T. J' |/ U, [" c4 C9 a
  6. **     Contains Unigraphics entry points for the application.
    ( t* R) t8 s5 \% E% C' ]8 r
  7. **
    ; k; L' @+ ], Z4 z; H+ G/ [' {
  8. *****************************************************************************/
    7 @  t1 T) J, d2 R* w
  9. , W7 }" b- J* i" T8 n9 P
  10. /* Include files */
    : w3 `# _& F1 g8 w
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )0 ?: T0 H) R7 Z6 [1 b8 o, B
  12. #   include <strstream>
    1 c, A8 W. ~1 ?4 Q
  13. #   include <iostream>0 h/ X0 R) b) t% r1 l9 n
  14.     using std::ostrstream;! J; N: b' }% o# e. Y5 U
  15.     using std::endl;    9 n3 G9 f4 D% D( W  E7 q* U4 t
  16.     using std::ends;5 X" H  q' g5 a* w; U1 e; p; Z
  17.     using std::cerr;! x, ~8 Q8 Q) J! H3 G5 s
  18. #else
    1 D; S; S: V9 y: m% B& T1 R
  19. #   include <strstream.h>
    ) P8 d4 {- x9 \" ^1 f
  20. #   include <iostream.h>( V+ ]+ q0 u8 w3 a0 U! |- a
  21. #endif
    ! A1 P0 [2 h0 j/ r' s) [  t" A
  22. #include <uf.h>+ k; B# A& t; J. @7 R; I/ v
  23. #include <uf_ui.h>4 n% W8 |2 ]+ w' F/ k
  24. #include <uf_exit.h>" p" X5 B% N# M8 j
  25. #include <sstream>4 A/ C. r* h6 C2 j0 g8 [

  26. ( O! ?6 K0 M& U  t
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))* F; o3 h& o) n) K

  28. 8 H8 y& ]$ I; C! }/ k5 d. v) l  \
  29. static int report_error( char *file, int line, char *call, int irc)
    " m& P; i/ \; a" P* A+ J
  30. {
    % x+ t- V! B: h$ H
  31.     if (irc)7 J4 |* p* w% R' g3 a1 r1 a5 C1 x
  32.     {1 D, s. f) ?0 s: L
  33.         char err[133],4 _+ x1 Y  r& g% s' ]( |
  34.              msg[133];
    : A8 Q: @7 F" o5 y/ I) V

  35. 8 c" r% f) p" B# G( t3 C6 Y
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    2 W5 H9 r1 O% q# n% b* ~" p
  37.             irc, line, file);
    - B5 ?! n1 g. f  Y
  38.         UF_get_fail_message(irc, err);
    . N$ y7 `8 D! u- Q0 n$ R% R" m

  39. 9 J6 r' w0 W2 g( G5 ?/ N0 f' O! x
  40.         UF_print_syslog(msg, FALSE);* t( m/ ^; s* k8 W3 b; g5 d( t$ R
  41.         UF_print_syslog(err, FALSE);
    % y. J- U+ Q' Y7 D. c* v
  42.         UF_print_syslog("\n", FALSE);' E0 x, I$ R+ E) b; s- {2 d. x0 i5 \# q- ^
  43.         UF_print_syslog(call, FALSE);+ |6 d: C* }3 {/ s6 O+ d7 h
  44.         UF_print_syslog(";\n", FALSE);" `" R6 g9 ]+ J* h2 Z$ z+ v/ K
  45. 8 l. R6 n; W) t$ g3 e0 ~; M/ ^5 E
  46.         if (!UF_UI_open_listing_window())
    " }2 R, g& z( l/ C8 M6 {
  47.         {
    $ }/ E8 \$ R7 Y+ x
  48.             UF_UI_write_listing_window(msg);5 g5 O" Q  {( W) v1 i
  49.             UF_UI_write_listing_window(err);
    * ?' A- p9 l$ B
  50.             UF_UI_write_listing_window("\n");
    : V9 \3 t5 t! e5 s1 l0 @
  51.             UF_UI_write_listing_window(call);
    " W' A2 F% X4 |5 Y
  52.             UF_UI_write_listing_window(";\n");
    ! ~  e/ S: V5 Q0 [1 W
  53.         }: w, S% @$ }  o$ ~! x4 y
  54.     }9 S6 x# a9 |* i4 @" a& A

  55. , F/ u' z% L1 M; e% d
  56.     return(irc);
    8 o. Q4 G* Y" ^( g+ f6 N- a/ d
  57. }; y9 _- e8 e0 A8 ]% }7 T5 S

  58. 8 C0 F# \  h2 E# A) h$ e
  59. , p* @! ~) ]2 u9 F: y
  60. /*****************************************************************************4 e* Y: A  ~9 _
  61. **  Activation Methods
    * j7 R' c9 m2 |6 x9 i
  62. *****************************************************************************/5 \# o+ O/ h$ w1 I# Q% O$ ?; q# u# v
  63. /*  Unigraphics Startup
    5 G# z3 S7 `. R6 _8 ]( ^% D8 y% h% C
  64. **      This entry point activates the application at Unigraphics startup */+ t/ u) U1 S$ O$ |  e" l
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )1 W2 C9 v" _3 m( C4 @
  66. {
    % U4 |" S  i7 A
  67.     /* Initialize the API environment */
    ' E1 \7 g. `0 a& n: w6 \0 ]
  68.     if( UF_CALL(UF_initialize()) )
    4 g+ `" y4 |) Q3 i' X
  69.     {
    5 \1 L7 m  Y9 c  p- n" B3 U
  70.         /* Failed to initialize */* Y' Y+ E' {' E6 r4 [$ @- V
  71.         return;
    ; h- H+ Q* r# d3 g
  72.     }% R/ O% _4 K9 g
  73.     4 e/ V$ t' O; m# w2 H
  74.     /* TODO: Add your application code here */
    * [* [5 f3 k) D  {6 t" r; V# W

  75. : }) J- H: x/ d. ~1 u7 D" W0 [
  76.         //测试 uc1600 和 uc1601
    : i, L7 C( T) \3 _$ q
  77.         std::stringstream  ss;
    $ [3 t; g% h$ F8 V6 M* o6 `1 R
  78.         char *cue = "PLM之家测试ufun常用的UI";
    6 _) E* L. f/ f. o: I6 {
  79.         char str[133] = "输入字符串";7 n) ^. q* d: f4 I9 z: g5 n( ]
  80.         char msg[133];3 ]6 B2 o! _( S: `3 i$ b  }. q  n
  81.         int length,result;
    8 ~- Y& ^6 _; t
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    4 E% I% g3 _$ r
  83.         sprintf(msg,"%d",length);
    " h- w! Z+ ~0 \# Y
  84.         if(result == 3)
    & k, x, l7 O. \
  85.         {0 C- w2 ~4 n, [9 X9 ?& e
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上! T, V- K/ J+ K" o2 C7 v, X
  87.         }3 l- E/ J9 L, F" @: c

  88. 2 {0 `" n! B" K3 ?) P$ b& X
  89.   //测试uc1603 --》用来创建带有button的系列按钮( A  H, |  [( s
  90.         char *title = "测试uc1603";
    ! h- B" p8 d" j$ v' q1 X
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};
    : @8 d) V" s: g. c
  92.         result = uc1603(title,1, items,4);
    & m( F! t# K$ @+ v
  93.         if(result ==5)
    2 U# D  k% d* T9 ^' C3 ]8 m
  94.         {7 l8 j5 ~1 {4 M. g& P7 Z
  95.                 uc1601("这个是对应的第一个选项,创建block",1);
    ( s2 T6 Y5 J" H& c2 M5 B9 o' ^
  96.         }2 j- c. [# e6 M. |7 m4 u0 M! ?
  97.         if(result ==6)
    / _6 p, ^( i9 o6 P' P2 D, S
  98.         {) Y# G! D) g2 x0 ?( I
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);
    ( [1 Y0 l# k" t2 a5 l- X* F
  100.         }1 [: w0 ^, l: I* D
  101.         if(result ==7)
    0 m/ |! x2 b# ^& m
  102.         {
    $ @# A! q9 w$ \3 ]3 p) E6 b! Z. Z1 Z
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);9 ^$ z& \( t  Z) C( |
  104.         }
    - I* V& e! F  x* _2 m1 J  Z
  105.         if(result ==8)
    : l3 B( G+ k4 |) S, T% Z) D0 [3 A
  106.         {
    " F5 f# s5 j4 ^. J# c" ]' A3 M
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);5 Y4 O7 L) a+ C# I
  108.         }+ I" S; s0 j! z
  109. , h2 P5 I; y* R5 |4 L5 {
  110.         //测试uc1605--》用来创建复选框
    : r( ^# n- c+ B8 }. p3 |2 J' z. q" ?# F
  111.         int selected[14];3 v& Y) [" C8 N1 d, [$ e, Q3 j
  112.         uc1605(cue,0,items,4,selected);1 [* H- E7 Q  ~5 m% h9 S0 A+ [
  113. 1 n% H) {! u$ h+ P1 K7 u
  114.         //测试uc1607
    : A' P& `8 h% B  H6 l
  115.         char *cp1="测试1607";
    7 e' d$ u0 X5 H7 ]6 W9 v
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};
    2 Z7 w8 W, J$ }
  117.         int  ia4[3]={100,200,300};+ W6 N8 }0 h, Y( B( ~
  118.         uc1607(cp1,cp2,3,ia4,0);
      b8 j3 g' w/ ?9 O2 t
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框
    : |& o. O  _. }- N0 _; U
  120.         char *cp11="测试1608";
    ) `$ Y1 I; ?2 W( v$ H
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};
    & e& A1 x. ^1 [8 l
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int, M2 t" d5 D* q* U
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double
    8 t. f$ Y: q4 H) S
  124.         int ip6[3]={0,1,0};  
    ; R5 K" E3 \5 x" s
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
    4 @# d/ I5 |) U) G1 Z, @
  126. / F% z% ]& p/ u9 @3 L" x
  127.         //测试uc1609 -->用来获取real类型的输入框' E, ?: Y8 q1 W) ]
  128.         char *cp12="测试1609";+ m6 \* f  c  }- H3 q& v6 w
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};" [2 f0 S& s! E! U8 x
  130.         double ra42[3] = {30.5,50.8,100.3}; 2 R5 b  n: `; ?. i
  131.         uc1609(cp12,cp22,3,ra42,NULL);
    " O3 G, c1 r) n3 G/ }

  132. 2 }* D7 D2 L7 t2 e5 F/ A# L
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框$ ]& G. ?9 l5 G6 U" K: u. N1 V
  134.         char *cp13="测试1613";
    9 y% P$ i$ D$ s
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};7 s8 H6 w0 ]% v( t+ R
  136.         int a3[3] ={10,20,30};
    4 M% U9 H' D& S/ R
  137.         double ra53[3]={11.23,12.45,12.67};+ k8 V' \* ~% Z7 ~' D! [; w( @
  138.         char ca63[][31] ={"string1","string2","string3"};; ^& }4 X: p! D8 H2 {9 F% z
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围9 |0 L) E3 }( q2 P
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);+ ~4 R  `' S4 i

  141. # m+ Y4 U4 }# q3 k! z% c

  142. . Z1 r" h+ f) G8 t& h3 A
  143.     /* Terminate the API environment */
    ! a# h8 V) k3 D% Q( {
  144.     UF_CALL(UF_terminate());
    7 U: p# P5 f; s$ f# u
  145. }8 G2 G- ~( {& ?+ A2 E1 i* _: G
  146. & U8 S6 c0 O2 W' g& f8 `
  147. /*****************************************************************************
    " z# z! t! L6 k) u0 `; ?6 d9 J# W
  148. **  Utilities( h/ c# p' v8 `
  149. *****************************************************************************/3 Q" V2 n% Q+ k1 e( i

  150. 9 x# z$ l9 _5 ^. D9 e$ U  w
  151. /* Unload Handler
    8 D( D8 @  R* z  y2 v! S
  152. **     This function specifies when to unload your application from Unigraphics.& K! Y( q  @8 N9 A! d
  153. **     If your application registers a callback (from a MenuScript item or a
    ' w7 [' ?; }* m  e
  154. **     User Defined Object for example), this function MUST return  O" s; B" C0 }* x+ v
  155. **     "UF_UNLOAD_UG_TERMINATE". */: E  T; s/ e$ L2 {. _9 L( D
  156. extern int ufusr_ask_unload( void )
    . u. m, K: E4 F% l/ i6 U% F! y
  157. {
    ) S+ [/ O6 N# ?* O+ h. e7 l
  158.     return( UF_UNLOAD_IMMEDIATELY );2 b. H- S; g! G' I
  159. }
    : y+ o( M- ~( J1 K, g+ s* Y
复制代码
  t9 [+ C) v; A# p- R/ e
- t8 m/ j& j0 A+ p% w7 I* \

: f8 U+ a/ H0 i8 A0 P6 Q) v
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复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二次开发专题模块培训报名开始啦

    我知道了