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

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

  [复制链接]

2013-11-14 17:46:31 51620 143

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
/ B; V' h$ r# b4 x4 A6 O; m2 `: ?
% i4 j, z% {) M' o
7 U5 C( _: K2 W. f

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
5 z: N0 v6 a- [6 O1 s' o6 V
( a# T7 U6 ]' m8 m1 M6 G

0 D7 P- I/ P: `5 `. d6 R6 I  _7 ^
4 F  R6 b. z1 N% k, k3 a
7 i( q* D) l7 c6 [2 A1 B
游客,如果您要查看本帖隐藏内容请回复

* N2 @7 x- o' ^) s源码分享:2 D) R0 r# o' q8 Z& v) m6 L
, c  M2 G9 j% X: ^1 |2 s
  1. /*****************************************************************************
    . u8 Z) J: G4 P# f
  2. **% |" ^3 J4 m+ L6 D
  3. ** ufuitest.cpp
    - M, ?$ s+ j4 P: \! f! s, G( O
  4. **6 X% e  `0 C/ J1 r' E6 h( q( v; G
  5. ** Description:0 |4 a' Q- \0 W* y- I
  6. **     Contains Unigraphics entry points for the application.
    % r! p6 F. S+ x7 [/ Y
  7. **4 Z* N7 q" \! r* k0 n
  8. *****************************************************************************/
    9 u+ K- _3 k# i$ K% l
  9.   a4 ^. ]1 \. ?
  10. /* Include files */
    , k$ K# U# q: T
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )5 W. u  B+ Q6 j! Z
  12. #   include <strstream>* p; g, N5 t8 h. L6 p$ `
  13. #   include <iostream>! C: [% k& q1 j
  14.     using std::ostrstream;
    + M5 v! n/ X( S3 V# F; R
  15.     using std::endl;   
    % P  Z3 r, e6 ?
  16.     using std::ends;. _) R7 e5 o' h1 p2 c
  17.     using std::cerr;: e4 F- t+ `7 j0 s# y
  18. #else
    4 |8 s; v, L7 W" {* |0 H% ?5 S
  19. #   include <strstream.h>
    & n7 R* }) B; s# w% `8 u5 L9 h
  20. #   include <iostream.h>+ v" z+ P  \5 n
  21. #endif
    " F* M9 y5 i5 w: @7 j
  22. #include <uf.h>
    & t9 i+ r. M( i& I7 p
  23. #include <uf_ui.h>7 c1 ]* {3 T8 q$ w
  24. #include <uf_exit.h># D0 L4 T' B# [$ G, A  O" v* `
  25. #include <sstream>
    8 Y) o% ]$ V; _; T4 M8 W4 f

  26. + B- x2 _0 V# n
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))5 Z6 x% V" @! S8 b

  28. 7 a# E6 ^+ R& \3 u5 D4 I
  29. static int report_error( char *file, int line, char *call, int irc): X) \4 M0 C4 N
  30. {
    1 ^3 n5 g+ W+ q
  31.     if (irc)
    ' h( N: F8 R: T2 P4 A3 M/ M9 s
  32.     {
    8 [' M' l4 Y$ I1 C- ?; C. O
  33.         char err[133],: M2 l( ~) i1 c& }& P
  34.              msg[133];3 l+ O2 I3 {5 \5 d- D) Y$ ?8 S! ?/ y6 G2 I

  35. / j  g5 l+ W$ s
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",# u' q, m7 q1 j, Y: q1 \3 h  i% w
  37.             irc, line, file);* E) u/ E) L8 N% r/ B+ c
  38.         UF_get_fail_message(irc, err);
    + R1 m  K' P" m, c
  39. ! E+ O* V+ g  w
  40.         UF_print_syslog(msg, FALSE);
    / m: c1 L0 F  D& L' p, M/ t- _$ I( L
  41.         UF_print_syslog(err, FALSE);
    % C( ]5 `# B: E# |
  42.         UF_print_syslog("\n", FALSE);
    ' Z# n/ k" ^: r8 ^$ |4 [
  43.         UF_print_syslog(call, FALSE);
    . C# v8 E" j8 i0 w
  44.         UF_print_syslog(";\n", FALSE);6 b/ o8 {& r1 `$ a
  45. " e4 U% g" R0 K2 f) x
  46.         if (!UF_UI_open_listing_window())
    & G6 s) p# M: U0 v. s
  47.         {
    # j, {; C" g, ]  T9 h
  48.             UF_UI_write_listing_window(msg);
    - r& `* b+ }; q, e4 T2 O  k& e
  49.             UF_UI_write_listing_window(err);
    . c+ m5 ]+ d  P. S6 j) d! l
  50.             UF_UI_write_listing_window("\n");4 ^1 M% `, |( P/ s0 B
  51.             UF_UI_write_listing_window(call);5 Q. P" G% u; z0 s7 J
  52.             UF_UI_write_listing_window(";\n");
    : p8 o. o4 v7 W" X8 R7 a
  53.         }
    ' K: V" h0 _- A( m: z* U& k
  54.     }+ T& e( j$ B  Q

  55. 3 ^1 e) K# e. N/ s+ n3 W
  56.     return(irc);# z  e- v% D1 w
  57. }
    . ^$ P. G1 R' O8 Q4 p# ]3 U+ y- J

  58. / n, w- Q0 T% ^0 q, I. Q6 Y

  59. " V3 U2 f# X! ?! w' e
  60. /*****************************************************************************
    ' q6 y  m' q0 E8 C* r
  61. **  Activation Methods5 S5 |/ w2 N9 n, z0 Y( O6 K; m
  62. *****************************************************************************/% `5 }0 @9 e! ~/ E0 l: J
  63. /*  Unigraphics Startup" ]$ D0 y' @" D3 q: j2 H: V' l0 \
  64. **      This entry point activates the application at Unigraphics startup */" U0 k2 L1 _$ S, X$ u
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )( E8 g5 \9 F1 t  W$ \4 C
  66. {, I! I$ j% @0 @5 j
  67.     /* Initialize the API environment */
    ; f  E5 \* D2 f' t5 V3 d
  68.     if( UF_CALL(UF_initialize()) ) * f9 R" |  d- P1 c. [+ s' f* S, r
  69.     {; k( [* m5 H' L; u6 l5 {$ T4 A) v
  70.         /* Failed to initialize */
    7 [: g7 |3 {3 L# \6 h
  71.         return;
    & i6 M( ^$ f8 [% G1 W/ j' g' m
  72.     }* `% O$ Q  O" x/ ?
  73.     - }0 y. `) {" q! j
  74.     /* TODO: Add your application code here */
    , J$ h( A. M; ]

  75. % @+ y! \# I4 r+ R. V3 [! w+ k
  76.         //测试 uc1600 和 uc1601. w2 B; t3 J) C; o
  77.         std::stringstream  ss;
    & n! g2 Q3 k4 W# h
  78.         char *cue = "PLM之家测试ufun常用的UI";
    * H9 J4 P. ~1 j
  79.         char str[133] = "输入字符串";
    ( u, Y* O6 D% {. @0 Y" U
  80.         char msg[133];& \3 C, I% w& P: r8 W
  81.         int length,result;
    * V! Z0 h! B, E" d& ?: Q. m  L4 j
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    ; f7 \2 E7 }8 M, E$ U
  83.         sprintf(msg,"%d",length);
    7 e# D3 u& {7 P) H: O
  84.         if(result == 3)
    + b' h/ e! g3 k$ N9 K0 `
  85.         {
    $ p/ C. @5 V7 @
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上/ f7 _! ]/ F: l, ~# ?
  87.         }
    " n- m: s3 w0 s/ _1 K

  88. . k2 H% N! Z( p# J9 r% h( K/ @7 y' L
  89.   //测试uc1603 --》用来创建带有button的系列按钮$ K1 v4 n0 O$ u. g: R& Y
  90.         char *title = "测试uc1603";
    / I5 ~* t6 p5 _# v
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};5 l* m$ k2 J/ O& x: w2 b
  92.         result = uc1603(title,1, items,4);
    % S+ r( e- q9 q- Q) ^8 u8 L9 m
  93.         if(result ==5): b3 y& c. s* x) @& c2 i
  94.         {, R+ H8 A5 X+ F& r
  95.                 uc1601("这个是对应的第一个选项,创建block",1);( g& H% I1 K$ J# W  u7 g$ S
  96.         }
    3 f6 T0 J6 S8 U9 j( i
  97.         if(result ==6)
      Y2 _) O  l  T8 ^6 {
  98.         {
    . U6 R$ I# @1 N& z% Z1 U6 J1 `( l
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);
    ( G' R. X: W( r! v) Z& y6 L+ p
  100.         }4 M/ h% t' g: ?$ U5 c3 `0 Y; m
  101.         if(result ==7)
    / L5 S; R7 w& D9 J; v0 q
  102.         {
    % q6 \* g1 X5 h9 d% |1 A) n8 l
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);6 m9 }) `# _) j/ v
  104.         }' I) u! W+ L: y8 `
  105.         if(result ==8)
    ; h3 F2 h- C3 D- q. i. s. h
  106.         {
    . x$ ]! i! `) f% r
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);
    5 k) t1 ]8 h2 m4 _
  108.         }
    / T7 m* F8 ?/ l" b) a
  109.   _; Q8 j) a" R$ U
  110.         //测试uc1605--》用来创建复选框( m! |: H5 ]; }9 R: d# H( i
  111.         int selected[14];" ^- N- e1 w7 \6 T6 J9 l6 F; y! r9 h* f
  112.         uc1605(cue,0,items,4,selected);" c! ~/ w/ @' K
  113. - k+ O3 h1 C) {( y, C+ F
  114.         //测试uc1607
    + U" \4 p! ^0 ]: Z0 t$ n
  115.         char *cp1="测试1607";
    5 n4 B1 s) u3 }& h; V  c% u
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};7 J- d& X2 Z$ G4 t! ]: p4 j
  117.         int  ia4[3]={100,200,300};3 f6 y! `2 n) G) C& ^/ y4 u( n
  118.         uc1607(cp1,cp2,3,ia4,0);
    7 k! V1 Z" Y% H- ]% K6 D) c
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框- o$ s% Y, y: I6 g, N
  120.         char *cp11="测试1608";
      |' V; Y# Q4 Q* V# ~! B; m  B0 e
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};) e: T! G/ H3 P3 B4 ?. M
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int
    ; Q1 F1 O3 |4 U) }" E) X
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double3 |4 D' J# N# B6 ^
  124.         int ip6[3]={0,1,0};  
    - d: T2 M7 t) m2 P; g
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);: y) |- d) u! ]- f/ z

  126. / z; ?9 H7 l1 P% V# R. C
  127.         //测试uc1609 -->用来获取real类型的输入框
    , l, O: L( b0 F0 t$ _
  128.         char *cp12="测试1609";/ _) R; {: ]- I; o+ d6 J
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    % q; e; F7 s+ r9 g
  130.         double ra42[3] = {30.5,50.8,100.3};
    & t. U- H1 k9 o! x$ y& A4 i
  131.         uc1609(cp12,cp22,3,ra42,NULL);
    4 z8 ~. e- Z' {2 M6 c. z6 }  l
  132.   B! I, h3 ?' q8 r
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框
    ! X  M6 Y; ?4 N) ]$ M
  134.         char *cp13="测试1613";+ i# U2 p0 M+ D% y& I- b: Y' e
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};
    - P( ~' C1 _9 l, {
  136.         int a3[3] ={10,20,30};- o/ _9 q$ x! r& Q( I5 |
  137.         double ra53[3]={11.23,12.45,12.67};$ \& y; X* J1 v5 D# Z
  138.         char ca63[][31] ={"string1","string2","string3"};! @) f3 ]" |  j' _' U* t( ~/ u# t
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围* ~" C7 y" J- h9 j5 E
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);
    + A4 x+ |& X+ z+ l

  141.   Z" U4 X7 `; p1 j7 {9 Z
  142. - d1 u+ E  v# x
  143.     /* Terminate the API environment */% O( I/ @7 O) W" F8 _  b1 ^1 R1 M; z
  144.     UF_CALL(UF_terminate());
    # Q. N5 Z: `$ G
  145. }
    . K' n0 v/ d/ }' Q
  146. . m5 g1 P; @. o2 A9 L0 i
  147. /*****************************************************************************
    & }8 o( L) i! y$ A- e* P
  148. **  Utilities
    3 ~: u$ ?( I  t* I- x
  149. *****************************************************************************/
    1 H5 m8 e! u7 n, Q5 r* n- e4 v
  150. 1 o0 k7 j  S% B, b3 v# N% _
  151. /* Unload Handler* q; r- S% C  Y/ S7 ?7 h
  152. **     This function specifies when to unload your application from Unigraphics.3 C2 }1 O# [- r# U! x: S
  153. **     If your application registers a callback (from a MenuScript item or a
    + k$ h$ z- `* g" C' p% f
  154. **     User Defined Object for example), this function MUST return
    6 \4 I) d0 L, s  z0 y  U* |
  155. **     "UF_UNLOAD_UG_TERMINATE". */
    4 O$ Y% H' X1 i% A" b: R8 ]
  156. extern int ufusr_ask_unload( void )7 U; E! [0 X: ^2 z/ |2 v1 c
  157. {7 {# P1 H5 K6 q0 y6 t6 E
  158.     return( UF_UNLOAD_IMMEDIATELY );3 [0 h$ E# b+ I1 B( T0 ?: t- T
  159. }
    % E7 \) X/ c: @9 v; o" _
复制代码
0 W3 L9 _8 M+ F: L7 i) F* P5 L

5 W" `& o0 o8 H& b1 r/ H, O
) e# I: p9 D9 q" F2 q: z
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了