PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
! f2 S+ w1 H1 O " S1 P, }  o6 L+ @0 Y

+ Y5 [7 y" `2 o, D

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

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

% X6 |8 F+ j* t, s2 W& `. C

; b9 U  ~' D6 U! e3 v- B
5 V. l+ b+ W7 P  d
6 P3 _- o: S! @: \
/ O. [( y$ ?( Z0 ?* a/ C
游客,如果您要查看本帖隐藏内容请回复

% C4 ~' T/ F- Q/ P源码分享:
- q& y9 Q* L% X0 N( T0 B8 F8 J  I/ ]3 N
  1. /*****************************************************************************
    " w9 I9 T0 \+ @9 J4 a
  2. **
      g8 ]) E4 h) j- {1 Y1 C
  3. ** ufuitest.cpp9 d' z; z3 ~9 S. y* _0 R
  4. **( I6 J7 N4 k  s& V% _
  5. ** Description:3 b) I) U; X6 ?5 W. `0 P. O
  6. **     Contains Unigraphics entry points for the application.+ [& R: F( v. p1 ?, d( n
  7. **
    & y2 K1 k- J! Q3 {# ]" J
  8. *****************************************************************************/
      T! w, [$ D: K, ]
  9. 8 b0 \& R6 ~$ z4 F
  10. /* Include files */
    # A: P' }( K) }/ r1 {" Y
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )5 r& l. ?6 U/ y! m) E. Q. r7 o
  12. #   include <strstream>
    8 D0 v$ o  g/ G' A5 M
  13. #   include <iostream>
    8 g1 {" P, c* O  W9 @- x# @7 [, M
  14.     using std::ostrstream;6 n8 a3 o$ F6 ]5 X% E' O$ ^3 c
  15.     using std::endl;    7 y5 f7 ]; O2 m+ P4 V5 _$ I
  16.     using std::ends;% b1 V. |& |! Y, B, T4 i5 D
  17.     using std::cerr;
    5 ]; l# V; D, E+ p/ j
  18. #else
    , x+ x6 f. F  Z5 L9 J; i' z
  19. #   include <strstream.h>" L9 P! d7 V7 u6 K4 J
  20. #   include <iostream.h>4 }0 t7 P9 P& ^/ F6 S. V4 U( {
  21. #endif$ T( j3 V5 W% C4 |. D% V2 c
  22. #include <uf.h>6 r9 u& x4 J/ I
  23. #include <uf_ui.h>0 L: }+ ~6 n' y, }5 e( j$ b6 R
  24. #include <uf_exit.h>4 B! A( q% j& E0 a
  25. #include <sstream>
    % j8 Y" [, p4 K3 p5 l

  26. $ O6 s/ c* _0 Y
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    / W3 A' K1 `: n
  28. % B6 c/ Q6 [" G/ T1 A& S' ]1 w& I
  29. static int report_error( char *file, int line, char *call, int irc)
    $ N& j7 {# R6 K
  30. {
    $ H2 o5 Y' Q, @2 r
  31.     if (irc)
    ' J( W" M9 e# \6 G- S+ t
  32.     {
    * ?" j$ o6 H3 ^' @
  33.         char err[133],9 k; z* |: ?) O4 E
  34.              msg[133];- d; E1 {# `0 p, Q- M) C
  35. : o8 V4 u) ~) w; c! e9 ^5 V
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    7 I' S$ o7 d% w
  37.             irc, line, file);
    0 i3 u. B, f0 v4 e5 u" m2 D
  38.         UF_get_fail_message(irc, err);' \; ^9 V  X8 Z' t

  39. , R- \: |4 F- P, l/ i, q
  40.         UF_print_syslog(msg, FALSE);
    , h" S+ H$ [5 H: m" {& T
  41.         UF_print_syslog(err, FALSE);
    2 m" D) V9 r5 B5 u. E8 Z% y
  42.         UF_print_syslog("\n", FALSE);! s9 F  V- y) c6 b. a6 x
  43.         UF_print_syslog(call, FALSE);  G5 F7 C# E9 |1 a3 v+ X. }
  44.         UF_print_syslog(";\n", FALSE);
      h7 E! _5 c: k5 z
  45. 8 W( d9 T; {8 O* D2 y. ]9 m) N7 L
  46.         if (!UF_UI_open_listing_window())4 E7 K9 T! v& r  |
  47.         {
    - i% d  L- s$ ~! Y4 u
  48.             UF_UI_write_listing_window(msg);
    4 s5 `1 |* C6 m# H- n* c# z; s- O
  49.             UF_UI_write_listing_window(err);" @0 p( Q) H: Q) k3 i  |; t
  50.             UF_UI_write_listing_window("\n");, C: F6 t* q0 d9 X1 P
  51.             UF_UI_write_listing_window(call);
    3 r# M6 B9 n! p0 r" _9 W9 X
  52.             UF_UI_write_listing_window(";\n");( q' Q2 L+ H. i# N5 Y
  53.         }
    5 n3 |& _/ c' w% d" h- c3 {
  54.     }, }2 H" O& D& c+ |% s

  55. , q$ d8 i5 [/ T$ Z  S
  56.     return(irc);: u& A4 Z; ^+ t# g4 n- a
  57. }
    / C$ q+ [' S& `, h% ^
  58. 6 B( K1 D' `1 B+ u1 T7 X3 _
  59. 6 }: D. f1 N5 w/ y; R
  60. /*****************************************************************************$ A" a/ N9 \4 R+ D
  61. **  Activation Methods
    ( E9 t1 @* M! g+ p  e5 P
  62. *****************************************************************************/' J$ n9 d0 X" ]( A* s
  63. /*  Unigraphics Startup
    $ H$ R  S1 N  m8 u" @1 _6 u9 h
  64. **      This entry point activates the application at Unigraphics startup */, Q  i/ k6 S7 V3 m
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen ). |; k1 S( Z/ \0 E+ `; h0 }9 X
  66. {/ |0 O* F1 C9 y! n3 H4 Z
  67.     /* Initialize the API environment */
    # j* w9 P7 k* g% K$ ~0 W' T7 P- e
  68.     if( UF_CALL(UF_initialize()) )
    $ [7 i' r/ s9 P% K4 t- `
  69.     {( P$ {5 N& G1 C: _3 o4 ], \
  70.         /* Failed to initialize */
    6 K# U5 G% q9 u, t7 Z
  71.         return;
    - z+ u* F# K( ]) H, U8 D' o( O2 R0 s
  72.     }
    8 }* ^+ g! v* x# f! O0 R1 Q, q3 t
  73.     " z: Y. e! M3 @
  74.     /* TODO: Add your application code here */* ]8 e! Q. k0 S, R6 n% w
  75. % j! Y" n! ^& T% Z! b) i% q
  76.         //测试 uc1600 和 uc1601& J( R( P* D) w. A$ o( u+ o" h4 e) o
  77.         std::stringstream  ss;
    & O; {$ J8 @2 J
  78.         char *cue = "PLM之家测试ufun常用的UI";
    1 K3 I! y) n6 m* B' }: s' s
  79.         char str[133] = "输入字符串";
    $ U9 U; |7 `4 M/ q% m" y1 P9 e9 y
  80.         char msg[133];
    . s4 j% j( S3 f) ]
  81.         int length,result;
    3 t& p3 v' F- B0 i7 A" `
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    - `5 c7 v. m/ H8 T
  83.         sprintf(msg,"%d",length);
    ) u; @- Y: A  G; H  N1 {; G
  84.         if(result == 3)* I4 a: s) r: @: w0 J
  85.         {
    ! \( t: V& h# f  I  T! b
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上
    ) r4 G7 p; l4 x. [6 S' ~
  87.         }
    - l# v* _# W$ U  }+ ]7 d3 N8 P
  88. ( |4 J6 ^6 p8 K/ j% I+ s+ Y+ C$ P' Y8 O
  89.   //测试uc1603 --》用来创建带有button的系列按钮1 |7 M, b- P, q
  90.         char *title = "测试uc1603";
    / j5 G5 V) _5 c* Q2 G4 C
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};. }( h3 r$ V+ q* Y# g" q  e
  92.         result = uc1603(title,1, items,4);
    1 V- f" O' h& W: m0 f
  93.         if(result ==5); s( f2 `7 u. T8 Z& Q9 U
  94.         {
    3 r) ]$ \% x/ @5 ]7 d9 [+ f
  95.                 uc1601("这个是对应的第一个选项,创建block",1);  e. J& ?4 K1 K/ Z, U2 b
  96.         }
    ! f  s: U# J4 G2 n( N. A
  97.         if(result ==6)0 Q8 L4 H8 X. i" _7 W
  98.         {+ p3 Q5 r+ ~9 M! `6 g
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);! x9 f6 E( L8 R) g
  100.         }
    1 \( f0 ]; N' e- O; V
  101.         if(result ==7)
    # Y8 S, J% \: w; O9 U
  102.         {: R9 I/ {' K& V: s2 _* V/ k
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);
    ' s* e' y9 ?! e* O/ G6 E) U
  104.         }: d. I6 ~& S4 C4 a7 x: g, F8 P
  105.         if(result ==8)/ c) ~8 ]7 n6 S, d) V# p" K
  106.         {* s2 N# U0 Z1 \! `. u' T
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);: m  `* \5 x8 @
  108.         }! k/ J& z0 ?, j) V' j  e

  109. , j2 W4 Q! u' P! F$ ?8 Y. r
  110.         //测试uc1605--》用来创建复选框: {/ E  ~, N4 z: c+ @6 A
  111.         int selected[14];% E8 r2 V# b) X9 |% @  O1 }
  112.         uc1605(cue,0,items,4,selected);4 S8 ~* e3 J& H% ~) T# N; o1 G$ R

  113. + s3 M& x! M- l; U
  114.         //测试uc16071 P- J9 A$ X3 H; K
  115.         char *cp1="测试1607";
    0 R% O* X; [! `
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};5 p. {( y* L1 Q7 p' m
  117.         int  ia4[3]={100,200,300};4 f- ~& E9 D3 D# B8 Y% [2 @
  118.         uc1607(cp1,cp2,3,ia4,0);0 Z5 L1 g) a7 C# V9 l
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框
    3 L& E3 ?' O! S8 y
  120.         char *cp11="测试1608";  V( U  f2 t/ ]& V8 B9 ~
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};( W1 k9 S8 \3 @, d6 n/ w9 @
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int2 U  @+ F) G' {2 ^  \& `
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double4 n* P6 G7 D; s( T2 I. B6 b+ O) s
  124.         int ip6[3]={0,1,0};  . F: k" ]" h0 I5 b4 B: n& ~1 ?
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);" k2 |; U( s1 k; [2 F  @6 L6 T

  126. ; G+ Y0 O; @; l, |  u
  127.         //测试uc1609 -->用来获取real类型的输入框+ T3 G% `% G) _  t$ Z9 `0 j. F7 a
  128.         char *cp12="测试1609";6 ?# w- K& n5 k+ K( l/ s
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    ' R' d0 E  }( _4 F
  130.         double ra42[3] = {30.5,50.8,100.3}; 2 {+ r- L/ _; \. J
  131.         uc1609(cp12,cp22,3,ra42,NULL);
    & t1 r% q8 y# W' V" l; G
  132. ' H8 o( S/ b, _0 I! M: h# h( y5 d
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框. I1 I5 G$ W: U; f9 `9 Y% W6 ?
  134.         char *cp13="测试1613";" S6 B3 b0 {  x& B+ W
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};5 G# b7 o. [! m# |0 q6 x! w! O
  136.         int a3[3] ={10,20,30};
    % ~1 [1 r. u6 ]- ^
  137.         double ra53[3]={11.23,12.45,12.67};! y( z, K3 }3 g9 S" V1 ?/ t
  138.         char ca63[][31] ={"string1","string2","string3"};& f# H: X5 A9 x! c
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围$ E% y, h" L# L4 p+ N
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);
    + L9 E% y8 e# o. N, }

  141. 9 |: m; R6 q5 P& I% B

  142. , u  b9 }) f+ c1 M6 A
  143.     /* Terminate the API environment */0 J" W9 _0 c. H9 k
  144.     UF_CALL(UF_terminate());5 x! g9 D4 h8 _# Z( k$ }  {
  145. }
    # O, j3 |) r( A  t5 N" [

  146. & n# y# W  Q  _+ t8 z9 b+ T5 Z
  147. /*****************************************************************************9 O1 \, F  M) A5 E9 w7 k/ {
  148. **  Utilities
    0 ?; S% `, I& h( L: _. h/ R+ ]' p
  149. *****************************************************************************/
    % Z/ v8 {: X. A" x; D. j, y$ w

  150. 0 [" X+ ~! f. ]9 w
  151. /* Unload Handler
    " p' P- T( w+ ~0 ?
  152. **     This function specifies when to unload your application from Unigraphics.
    : F  _& j9 C0 z1 G
  153. **     If your application registers a callback (from a MenuScript item or a/ M* h& ~0 Z: P$ c! l
  154. **     User Defined Object for example), this function MUST return* L/ T4 @# U5 d$ @3 Z5 |
  155. **     "UF_UNLOAD_UG_TERMINATE". */
    0 M3 `" `+ @1 v) ^. j; @
  156. extern int ufusr_ask_unload( void ). m$ T5 `9 n0 M0 B, g$ K5 Q5 M
  157. {
    % U  T6 I0 b/ C; |4 U/ v
  158.     return( UF_UNLOAD_IMMEDIATELY );  O7 [5 B4 I* T% h
  159. }, f' q7 x  u% B# s4 q5 r
复制代码

9 S- U" x. w8 H# Z8 H7 ?- a8 a5 p
/ J# [7 p: M: H. O3 ?* h! X* j$ S8 P8 `
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了