PLM之家PLMHome-工业软件践行者

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

  [复制链接]

2013-11-14 17:46:31 51459 138

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全4 d# X1 z' Y( _3 D5 V5 J* S/ q/ T

# D+ J$ A; }# q0 N: z
+ c$ R( n! }& E  D7 e

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

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

7 D) |' b& l+ _) J
) C% m0 a& f- B" u5 K7 S
4 O* O# E0 X9 E) |
" @3 c2 P+ k. y1 w' M8 B& X; I7 S7 ?7 v  e
2 ^: |7 x: _# J; B
游客,如果您要查看本帖隐藏内容请回复
# m" g% a: _; D& @
源码分享:( @* w6 [1 @0 V# T: {- t# [4 T

, ^4 B$ n( c' M3 J. L
  1. /*****************************************************************************
    # O% _4 w. u5 A- y
  2. **
      G5 v. C, y2 R% h1 Z8 I
  3. ** ufuitest.cpp1 w1 t  z' o7 ?; ^: p) r
  4. **
    & c* {1 c9 ]' G8 M, \7 L: `
  5. ** Description:1 B0 {# D8 i% G
  6. **     Contains Unigraphics entry points for the application.
    1 E( k0 i3 i6 L6 i, ~8 A6 F
  7. **
    2 l5 u3 c4 C  [* ?' b1 K. o1 P, V
  8. *****************************************************************************/' J: j+ x" Z+ K
  9. ; \0 Z: t0 u& }- j
  10. /* Include files */
    # T7 {' A7 I, Z: y/ y& @' e) h5 F4 T
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )) T$ F  }& s- c- I
  12. #   include <strstream>( _: y& V  x. E% x
  13. #   include <iostream>, M# t: z$ i& G" V1 m& X
  14.     using std::ostrstream;
    3 K- |" S/ C9 t+ I( W
  15.     using std::endl;    ! r  X8 d& V( C& l8 Q9 M
  16.     using std::ends;' h! Y4 @7 L* r) Y/ t. y* G7 |
  17.     using std::cerr;8 A* l( A3 w$ r" ]
  18. #else
    ( o6 R! r  N" B7 Y0 @9 ^7 O/ v
  19. #   include <strstream.h>
    , A/ t8 W% w( K9 A# F2 i- A8 i- L
  20. #   include <iostream.h>
    9 o& u# l! G0 t; ~
  21. #endif! F7 i# H" H; J  _' [9 }  P
  22. #include <uf.h>3 Z% q8 k: [- Z: X/ a
  23. #include <uf_ui.h>$ Z3 J" j4 F* C: x+ T
  24. #include <uf_exit.h>
    9 i& j9 g8 |, i, L( G$ S
  25. #include <sstream>, {' H: |9 k* j( g, ~& m$ ~
  26. - W1 Q" t1 L2 I& U2 k5 f+ V. i+ H# S, f
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    5 p) _$ y" C. S. w9 f( a

  28. - f; I" x5 c- P9 `
  29. static int report_error( char *file, int line, char *call, int irc); ^: y6 S5 _. R& L! s( {0 ?
  30. {
    + X$ z, O* b. U! T
  31.     if (irc)3 z, o" K0 ^! v7 x$ i; v
  32.     {
    6 X  x8 G- ~+ B7 o( n
  33.         char err[133],
    6 X( _9 s  |; K: s
  34.              msg[133];, f/ l( ]0 T7 c* T' b7 Y5 v

  35. 8 d  D) S$ e1 S: j+ X, N
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
      U1 [5 v$ |% G/ e3 B, i; r& |
  37.             irc, line, file);
    8 }$ Q) L$ p! u1 ~: P6 x0 S, X
  38.         UF_get_fail_message(irc, err);
    ) S) r2 h. S' ?% f

  39. 8 K. p0 ?5 a' j  H5 T
  40.         UF_print_syslog(msg, FALSE);8 ^" s+ g/ q5 m: k6 [! x# C
  41.         UF_print_syslog(err, FALSE);! u* w* `  s8 O( N5 b
  42.         UF_print_syslog("\n", FALSE);
    , w1 N9 e7 k+ ]  K
  43.         UF_print_syslog(call, FALSE);5 C' D. z& c* W2 ^" ]3 R9 a6 W
  44.         UF_print_syslog(";\n", FALSE);
    . S+ a9 @* l7 U4 f, f% ?7 U

  45. ' D+ R! M2 l+ |$ c# s" Y/ [
  46.         if (!UF_UI_open_listing_window())
    3 J7 ]& X" `$ x/ ]8 v9 v
  47.         {
    7 b6 P1 o) q6 V5 G
  48.             UF_UI_write_listing_window(msg);" M6 |9 J  c& t6 E
  49.             UF_UI_write_listing_window(err);5 p! G/ X7 x" h" ^6 L6 m
  50.             UF_UI_write_listing_window("\n");
    ' Q' a( W: w, m# A6 d/ ?
  51.             UF_UI_write_listing_window(call);
    $ g  H7 w6 @: D2 y- R3 J
  52.             UF_UI_write_listing_window(";\n");9 F8 e: c2 b& N( t& Y% ]2 I
  53.         }) m" }; X/ T2 A$ P4 C
  54.     }7 {% B4 z' X% j

  55. 3 Y2 A: n( k  R! f$ P; h* a0 {4 M& N
  56.     return(irc);- @' L: X$ x  L- C: s
  57. }
    ! Y. d: A" I" |, k" n

  58. * o" d1 S, M6 I# E+ P- j. l' ~

  59. 7 @5 ~0 L- N" u  O" i/ r$ ?
  60. /*****************************************************************************
    4 g9 g; m) `; T5 P
  61. **  Activation Methods
    ) q' J  D. r# b8 I0 q
  62. *****************************************************************************/+ b  E0 a8 `& M& m( w- T- i
  63. /*  Unigraphics Startup
    " c2 Y3 G& F/ N5 g( s2 p
  64. **      This entry point activates the application at Unigraphics startup */8 B# H+ r* U6 P, s0 T. B/ b  h
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )
    % Z8 _2 Y' ~- W2 y
  66. {' Y6 m6 y% y9 g
  67.     /* Initialize the API environment */
    4 r$ z) d5 D9 |9 D3 Q+ k6 l( L
  68.     if( UF_CALL(UF_initialize()) ) ! F' H6 t7 B& t8 T6 q6 i) ^
  69.     {! ~2 A: m# x9 m" j$ [$ ^8 ?
  70.         /* Failed to initialize */
    . [* S& q" C5 S/ C9 S( [) b
  71.         return;
    4 I; x9 X/ U$ D9 s# O
  72.     }
    , {# v/ z. m# z4 Y
  73.     : {# j- z& M9 j. O4 T4 _0 l/ F
  74.     /* TODO: Add your application code here */
    2 H0 ?8 U9 N( f# \* h: t; N# N
  75. . I* C% b: @0 L! a* D+ ?9 R. U( I! P
  76.         //测试 uc1600 和 uc1601
    ' V5 q7 A/ m9 W. ~. {8 M  d
  77.         std::stringstream  ss;
    * j9 r$ o/ B6 a* x( X5 G
  78.         char *cue = "PLM之家测试ufun常用的UI";
    " O! F  v2 B! G5 b( U- a
  79.         char str[133] = "输入字符串";5 b( J0 f1 k- T& r$ O! q* B
  80.         char msg[133];) ?5 b9 R1 s. J; ]( S+ g8 s! T2 E/ Q
  81.         int length,result;% r5 |( P5 `" e1 N+ W" T
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    & s# Z" }, C& Y% G* W) E0 d
  83.         sprintf(msg,"%d",length);
    / \; a( G# O4 N  H( Q5 h
  84.         if(result == 3)7 F+ \# s9 T; b( y# q2 h" ]  L
  85.         {
    & K4 D( j0 J# Q: @  |7 m5 H
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上. E) F2 v3 O2 D0 U6 S; x
  87.         }
    $ d0 d* ?9 f# X2 ?+ p* O1 s

  88. 5 \3 X. k7 G' x7 K6 z
  89.   //测试uc1603 --》用来创建带有button的系列按钮  E& v' ]/ x$ N. U# X
  90.         char *title = "测试uc1603";
    & z' T2 Z6 O  k6 Q
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};
    4 A9 V* Y; @/ h. u& M0 Y# {& K
  92.         result = uc1603(title,1, items,4);2 ?% s8 Y2 [4 @* q" R
  93.         if(result ==5)) R7 T" O- ~9 d" ]" C6 f
  94.         {
    . v' m& b3 a* ]) L3 m' {, x
  95.                 uc1601("这个是对应的第一个选项,创建block",1);
    * t7 U  D; w# O) K4 d4 f0 l* n# L
  96.         }
    9 K, g0 @. r0 M2 U/ N: @: w( h
  97.         if(result ==6)
    0 d% E3 Z& Y8 v) u- a
  98.         {
    : q9 y, A+ }  t+ M: w2 C7 ]: S- \
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);
    7 Z$ D0 E8 V1 D/ q0 L
  100.         }
    5 ?( b; \2 X6 {  l& U# Z' J
  101.         if(result ==7)
    & s. V- R$ l0 N' F- u
  102.         {8 V& S4 N" h7 p2 a: [0 E
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);0 G, v8 W6 v: O/ l: w$ J
  104.         }
    ' T/ O7 D  j4 r, V: A* n
  105.         if(result ==8)  a+ m9 f: f: c
  106.         {$ j! ]* S. h' Z# U' P0 z- f$ J
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);4 h# Q& Y  s) X: Y+ C" }
  108.         }9 `5 v; [* e- t. U3 v3 U

  109. 9 H& \! f1 z( I$ u
  110.         //测试uc1605--》用来创建复选框0 x7 s" h1 t1 c% U
  111.         int selected[14];
    2 K" u5 K4 @  b, r
  112.         uc1605(cue,0,items,4,selected);
    * r/ y: V4 G: z$ M& P/ o; j
  113.   }0 y6 I+ o2 `
  114.         //测试uc1607
    6 o2 O: |% t+ f9 v, j* C2 Q$ i# |1 H' T
  115.         char *cp1="测试1607";
    , M" k! ]/ N5 Z3 Q3 Z
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};- @4 _+ ?0 ]" k( \- @* X- I
  117.         int  ia4[3]={100,200,300};# T% z; Q1 a( [1 h  s4 H* V
  118.         uc1607(cp1,cp2,3,ia4,0);
      z# ^  d! F+ E8 n, R. [6 r8 w: y1 s: d
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框
    8 e7 B9 d# K6 A1 {% y& y
  120.         char *cp11="测试1608";
    * c8 t" o& Q2 o, F: \* Z4 F4 w! n4 P
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};# C- M* Y; I( z& }% {' H
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int/ r' _  v* K5 o& [' v3 i
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double
    % K3 l6 B2 w- k& ~" B+ J
  124.         int ip6[3]={0,1,0};  1 e1 v. J* V0 m7 z* w9 M
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
    / O$ {: I4 X  Z) y

  126. # _* Y' U4 D3 k- ^5 V! J
  127.         //测试uc1609 -->用来获取real类型的输入框# \: X& [/ O* X$ A
  128.         char *cp12="测试1609";
    . R% Q/ E3 i0 I; r1 Z# m) v
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};& a- F: O9 v: [% l! `) n& u; ?2 J
  130.         double ra42[3] = {30.5,50.8,100.3}; * e) @$ F" N( k9 V. ~
  131.         uc1609(cp12,cp22,3,ra42,NULL);; N( `% ?1 H8 h$ ?# b

  132. ' s; k( m5 a6 p
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框* I/ d' j5 G1 k' N; P0 j$ L5 ^* ]
  134.         char *cp13="测试1613";
    ) \7 `; k$ R. i: f  Z+ c! ], n
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};
      |- h! X" Q, V) f  {
  136.         int a3[3] ={10,20,30};$ u. v: k; I0 f5 p
  137.         double ra53[3]={11.23,12.45,12.67};
    + `# h! F. n) v! |: ^: k* O8 b
  138.         char ca63[][31] ={"string1","string2","string3"};; v7 z3 j# F4 s
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围* Y2 B$ [! a) T3 w& R( Z; K  x( I
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);3 J, ?! N! V0 X5 u

  141. - {' Q0 {; m3 C" n8 X- f

  142. 4 B2 D& d3 Q+ n% J4 R/ C" \
  143.     /* Terminate the API environment */
    0 V) ^) F1 [/ R6 B: `  @9 C7 z
  144.     UF_CALL(UF_terminate());+ `$ R5 w; r% ~% o4 S
  145. }
    : K8 n  q% N( d* R4 n
  146. 6 U2 V- Z! t) r/ j  L3 d
  147. /*****************************************************************************2 `$ g; i- h+ H$ s# V
  148. **  Utilities) c6 c% p- c2 f
  149. *****************************************************************************/. Y# E% {7 P, r1 W# M: K3 \

  150. 3 v  O% H6 M/ @/ D5 o
  151. /* Unload Handler8 F0 X* Y& o% U- i" O  L. R" h8 k
  152. **     This function specifies when to unload your application from Unigraphics.7 s- _* h* V" S
  153. **     If your application registers a callback (from a MenuScript item or a
    ! U, u) Y; R: \% E9 d0 ]
  154. **     User Defined Object for example), this function MUST return
    2 i$ s; u# ^* p& D# b
  155. **     "UF_UNLOAD_UG_TERMINATE". */$ R1 t5 K3 p. U* Y
  156. extern int ufusr_ask_unload( void )  w, C; |, o3 L6 d2 |' k7 Z6 S
  157. {
    9 E7 ?" t+ `4 ~9 k; v: f  ?) D
  158.     return( UF_UNLOAD_IMMEDIATELY );' p+ O! J2 L1 g% ~
  159. }1 s/ y- r6 s/ v" ?
复制代码
4 v6 p% @0 [. M6 {6 z4 G, a4 ]

4 M5 R2 g# m) p( U/ ]9 w8 \& P. m7 ~
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复138

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

    我知道了