PLM之家 UG NX11.0二次开发(ufun和NXOpen C++)网络培训火热报名

PLM之家-上海点团信息科技有限公司工业4.0数字化软件官方知识管理平台

查看: 20070|回复: 125

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

  [复制链接]
  • TA的每日心情

    2018-1-29 21:07
  • 签到天数: 14 天

    连续签到: 3 天

    [LV.3]偶尔看看II

    297

    主题

    526

    帖子

    7195

    积分

    管理员

    PLM之家NX|TC专家

    Rank: 9Rank: 9Rank: 9

    积分
    7195
    发表于 2013-11-8 21:29:41 | 显示全部楼层 |阅读模式

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

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

    x
    UG NX二次开发Ufun关于对话框UI的使用案例大全$ e4 y9 I1 |3 _/ w
    . s5 `$ m. l" ]4 r! |
    ! w: f1 K7 H3 D7 ^) X& o3 i, Q

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

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

    9 _+ t: a  o: q

    5 b' o; h3 F3 \- X, W- y9 b" d6 o7 D* f9 Y# {/ U. A
    9 i/ _1 G) U7 [" ~; b: H
    ! ^$ o4 H: W& G! n) o& c9 `3 N8 J
    游客,如果您要查看本帖隐藏内容请回复
    7 z- c. z& _/ X4 d, R! Y. ]  i
    源码分享:: A' H' h- v! w  f
    , E7 u' X& B& ^. ]7 g& b) w
    1. /*****************************************************************************$ _" |5 f; n, E. V$ y
    2. **. `" H2 n( ?8 L" ^& P
    3. ** ufuitest.cpp$ b! }) ?# M, n9 G& s4 C
    4. **
        m8 ^3 V" n2 W+ v  S; a) E
    5. ** Description:( [! n- C5 L' k/ i
    6. **     Contains Unigraphics entry points for the application.! x2 B  m- `) {+ @' i/ F
    7. **
      4 N$ }. V# L. m& v' R+ O6 e: W2 M
    8. *****************************************************************************/: u% h, u+ L" ^$ t: N2 U7 Y
    9. - g& @; [6 f) E$ ^9 i0 n
    10. /* Include files */
      9 E* o+ E" k9 d5 d
    11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
      4 j8 p+ K1 h$ M+ g
    12. #   include <strstream>' s+ x' w1 g# {+ k) c
    13. #   include <iostream>
      . }0 |. O  y, g% y1 w8 O) G
    14.     using std::ostrstream;  e" a% W& J* Q  _
    15.     using std::endl;    & t% h& `# L( V
    16.     using std::ends;
      ) T9 ~1 n! }2 Z: G7 y6 M) w7 ~
    17.     using std::cerr;
      - w0 n. f+ R4 \3 W/ [9 f* W
    18. #else
      8 g8 U6 ~/ s) I
    19. #   include <strstream.h>
      - P- g9 a; x6 i+ [. z4 S+ D
    20. #   include <iostream.h>, `4 Z' F6 ]' Q! \
    21. #endif) d0 I; g: W2 L
    22. #include <uf.h>0 U" B2 m1 Y: {# F" y
    23. #include <uf_ui.h>
      ; Z. p3 h6 m6 d
    24. #include <uf_exit.h>
      8 G. x) o3 h  v+ j, Q
    25. #include <sstream>
      4 L5 c5 Q, H( p7 z6 ^3 P# w2 O" |

    26. 3 e3 G* L6 m4 ~
    27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))5 g3 g6 Y3 h& w9 j, T4 [! T
    28. " |5 S' x1 D7 h; A, m
    29. static int report_error( char *file, int line, char *call, int irc)" I6 }) h( f/ u# X+ e6 b2 d
    30. {
      + }, G' R$ g. n6 Z
    31.     if (irc)/ R  H, ~* P: q0 O7 i0 j0 t8 e+ ~5 v7 A; v5 {
    32.     {
      $ x0 ^& |5 X! \4 ^2 [
    33.         char err[133],
      * H: K1 @6 D, _9 w+ \  f
    34.              msg[133];9 @" |: Q# }! U" {
    35. $ ~, j2 A' r: }# i1 b
    36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
      , x1 F+ @7 S% @3 e3 u
    37.             irc, line, file);% ~9 T1 b4 G0 F' Z! g8 M
    38.         UF_get_fail_message(irc, err);* W0 k3 u" `! A6 o" I9 B+ E8 ^

    39. $ T* w* g/ m0 G3 @1 I
    40.         UF_print_syslog(msg, FALSE);- n1 V# N- v1 U7 z$ H" Q/ j
    41.         UF_print_syslog(err, FALSE);
      ! d9 q2 w7 U& z. V4 N% ]
    42.         UF_print_syslog("\n", FALSE);3 j# G! q- e! }3 j7 t0 D9 p7 G
    43.         UF_print_syslog(call, FALSE);
        J) d  X# X# w1 ]9 o6 z7 u
    44.         UF_print_syslog(";\n", FALSE);
      5 t( _3 _2 u/ t, R+ T2 }

    45. # e' a  h: I) I4 n5 f3 R
    46.         if (!UF_UI_open_listing_window()), n' s: K9 ]- O* S+ t' X9 j
    47.         {
      3 i' ]) x( m' c( p8 a" @) c" N
    48.             UF_UI_write_listing_window(msg);1 d+ f$ I4 @+ O' I
    49.             UF_UI_write_listing_window(err);
      4 ~! Q8 j- ^+ S6 c) d
    50.             UF_UI_write_listing_window("\n");
      8 D; ?# R9 d- _' V; d
    51.             UF_UI_write_listing_window(call);: s) U* M; L6 Z$ s8 x
    52.             UF_UI_write_listing_window(";\n");/ g  H3 S$ _, P. _/ g
    53.         }( ~) x  R' ?3 k% G3 w% P) @! V
    54.     }
      8 ^4 p5 s& O2 H& |( G8 L6 M9 p  M

    55.   z) ~6 h. e% m8 _% P8 m
    56.     return(irc);. V9 c1 S: x+ [! N5 Z- }
    57. }
      $ g  M" R; r5 R6 w& `4 u
    58. 2 O" B5 ~+ M5 L& g0 w
    59. . ^* J; @0 {$ s2 s* {  t9 c8 L
    60. /*****************************************************************************
      6 M& Y7 E/ s# a2 m+ I( Q
    61. **  Activation Methods
      ( Q' i; P# v6 E
    62. *****************************************************************************/
      & E, y3 B* q6 k
    63. /*  Unigraphics Startup' L6 a( ]; t4 G- F9 T
    64. **      This entry point activates the application at Unigraphics startup */; b& t, I3 Z9 X) t8 s  T# g
    65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )" x, j$ k) K/ {4 r1 Q) `/ ~
    66. {) @) E5 ?) X& l* }3 p5 ^& v
    67.     /* Initialize the API environment */
      ! a7 F$ J+ U. S' Q
    68.     if( UF_CALL(UF_initialize()) )
      4 Q! @% r+ K  _6 s' E
    69.     {7 \' k9 f) s% K$ J) |+ c  P
    70.         /* Failed to initialize */
      $ Z! \$ r. ^9 F% m
    71.         return;# N4 x2 O3 {& V: }& o
    72.     }5 k: ?5 s+ n  D; S. |' {
    73.     + X% ]9 I) w2 t: K
    74.     /* TODO: Add your application code here */) r/ ]- @& ~! p) D$ m" Y* ]

    75. * i+ u# s% T& i$ S% R
    76.         //测试 uc1600 和 uc1601& W5 S# Y2 E+ {8 Q  a1 W1 ?8 K
    77.         std::stringstream  ss;- }8 |6 T& c' e  r( Z+ _
    78.         char *cue = "PLM之家测试ufun常用的UI";" ~% T: z( J# \$ U- |
    79.         char str[133] = "输入字符串";
      ) C; q9 p. E& L1 y6 P/ L
    80.         char msg[133];
      ' p. x2 _, k% V: `
    81.         int length,result;# D% z* [7 j( M+ F5 v
    82.         result = uc1600(cue,str,&length); //获取输入的字符串7 d* c& B* F6 k2 Z3 i
    83.         sprintf(msg,"%d",length);. d) O7 q9 @1 L  B# f3 j
    84.         if(result == 3)' p' O$ a( Q6 y9 H+ a- i
    85.         {
      $ R4 {2 j( f$ R1 B# F9 o" R
    86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上
      % b2 ]" ~5 r* n
    87.         }6 U/ y! S6 S; r# k; o4 l$ i) r5 r
    88. 0 w1 N4 Z- ~9 l
    89.   //测试uc1603 --》用来创建带有button的系列按钮
      ' n! F: s7 P- x, g
    90.         char *title = "测试uc1603";- d% T* z" L1 f  ^) `, ?
    91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};
      7 o7 X9 O: @1 k
    92.         result = uc1603(title,1, items,4);
      1 M+ I3 z  ^  Q; @  V2 M! H
    93.         if(result ==5)
      1 w' y/ e' d; R4 N7 z
    94.         {
      - {( e; A1 F* X
    95.                 uc1601("这个是对应的第一个选项,创建block",1);% H3 H$ q' y( b8 `/ I8 F- @: J
    96.         }
      % F; d8 W/ J0 g- L5 U* q4 t
    97.         if(result ==6)
      . v( w# z- N, S4 J& `6 _/ l1 _
    98.         {
      * y. Z! H7 i  _6 H
    99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);  A$ a$ G" ?1 ?- W
    100.         }' U; T- ?$ d0 k# K
    101.         if(result ==7)3 F7 p2 O( i4 t( r
    102.         {- g; E: x0 ~  p6 l/ c
    103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);
      " ]% F* Z4 W6 |) C6 x" h2 k& f
    104.         }. A4 A7 B; X( ^" D+ l' @
    105.         if(result ==8)
      1 I8 u5 }+ @& ]2 d
    106.         {
      8 e5 [3 M/ S/ K4 c; y- D
    107.                 uc1601("这个是对应的第四个选项,创建sphere",1);- l2 I: k/ N* |6 ^# X2 s% \+ E
    108.         }5 U5 o! f5 A# L. {2 M) E+ v! p$ F; j
    109. 1 b/ W& \' e) E. o
    110.         //测试uc1605--》用来创建复选框% a8 L% `: r+ [) S- i+ H: g3 ~
    111.         int selected[14];4 @3 M! j: i. i: `! S: Y
    112.         uc1605(cue,0,items,4,selected);+ X: p7 Q6 K% o/ \

    113. : ~. I; t6 T& P5 g: r2 R
    114.         //测试uc1607% @4 _; c8 y5 x9 {: h; H! S# D4 C) ^6 H
    115.         char *cp1="测试1607";# Y- m. [" j' {
    116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};. T0 v) c6 W. ~, k1 C
    117.         int  ia4[3]={100,200,300};
      ) ]6 E4 O' d, @1 ~! \! C
    118.         uc1607(cp1,cp2,3,ia4,0);
      # a2 m* B5 B- C+ M- e2 r
    119.         //测试uc1608-->用来获取int 或者 real类型的输入框. U+ j  Z+ N8 d( Z% E
    120.         char *cp11="测试1608";
        W6 w4 u8 \, A4 d+ O( Y8 d
    121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};
      * ]  N9 [5 n' @# d1 V
    122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int4 ]4 h9 Y9 ?3 ~: k. {1 Y* L7 h3 ?: [2 q$ M- `
    123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double/ ?, j8 z  D- b+ \- L! }4 k5 H
    124.         int ip6[3]={0,1,0};  : @0 D0 D& i" c$ ]( S
    125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);* E/ W' g8 I7 u* t) G
    126. ; j# ~4 R. M  @: ~" w
    127.         //测试uc1609 -->用来获取real类型的输入框0 k& x$ m, u& [- G- Q( E
    128.         char *cp12="测试1609";  g5 B# E6 k9 N5 q% A) `7 W
    129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
      7 ?+ ]# g% ?0 W
    130.         double ra42[3] = {30.5,50.8,100.3};
      4 [% [6 D( W+ U# \
    131.         uc1609(cp12,cp22,3,ra42,NULL);0 A0 p5 _- a) u0 C2 r0 \% j+ ?

    132. 2 Y# x: t" N# @" W! G
    133.         //测试uc1613 -->用来获取int,real,string类型的输入框* o+ h  i) Z3 t/ p" `* i
    134.         char *cp13="测试1613";* K* }  V2 w2 }" ]! b- h
    135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};' [4 g5 m8 i6 Y% H: N/ U
    136.         int a3[3] ={10,20,30};3 @  I9 o8 x" W7 \# g1 H
    137.         double ra53[3]={11.23,12.45,12.67};
      $ H: J- J: M4 ^% w
    138.         char ca63[][31] ={"string1","string2","string3"};  x  H5 K* m4 z0 Z- u% P- x
    139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
      2 m/ _8 N0 m6 x9 U
    140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);  M3 a9 p3 J$ `" C* D
    141. 2 C% k0 Q) V/ G3 x4 G9 l: W
    142.   `5 t% L4 P8 M
    143.     /* Terminate the API environment */
      & G0 D4 t7 R3 T, x
    144.     UF_CALL(UF_terminate());
      6 K% Q/ I9 |+ l2 l# r) F" l
    145. }, d$ W- b0 K" ?# Z1 j1 j
    146. 6 T( \* _* v, ]( m6 r* V" v. W3 Z
    147. /*****************************************************************************
      & O: t& M/ C3 y$ Y2 L
    148. **  Utilities
      8 s. c, A0 ?3 q9 X# I/ `
    149. *****************************************************************************/* E8 Y7 X+ N/ b3 {7 N& y0 s# ?# `
    150. ( d2 T* `/ D5 t4 X6 ^! u* a6 ^
    151. /* Unload Handler& x; q2 p0 U( R
    152. **     This function specifies when to unload your application from Unigraphics.
        A$ ~3 q: R* L
    153. **     If your application registers a callback (from a MenuScript item or a
      ' ?9 _) Z  ~1 W% x
    154. **     User Defined Object for example), this function MUST return
      2 ?! o4 w) K- V' I
    155. **     "UF_UNLOAD_UG_TERMINATE". */7 G, y% M) O" X: X" H. U0 l, i
    156. extern int ufusr_ask_unload( void )
      1 W1 E( _# u) ^) V( L/ I& R
    157. {& f  R" i" u. J9 z& p) O  Z
    158.     return( UF_UNLOAD_IMMEDIATELY );, w3 a( W( W8 z) z
    159. }7 W8 Y9 H" C: z6 D! s
    复制代码
    8 u; Y: I  z# e
    1 f( v8 x" H: K2 \
    , [& [1 W; ~# d, L7 F+ Q7 k
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    32

    帖子

    329

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    329
    发表于 2013-11-9 23:14:30 | 显示全部楼层
    谢谢,这是好东西
    上海点团信息科技有限公司,承接NX,CATIA,CREO等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施开发培训,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    61

    帖子

    275

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    275
    发表于 2013-11-10 22:52:12 | 显示全部楼层
    好资料,谢谢啦
    上海点团信息科技有限公司,承接NX,CATIA,CREO等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施开发培训,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    59

    帖子

    302

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    302
    发表于 2013-11-11 09:17:47 | 显示全部楼层
    看看,学习了
    上海点团信息科技有限公司,承接NX,CATIA,CREO等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施开发培训,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    12

    积分

    新手上路

    Rank: 1

    积分
    12
    发表于 2013-11-12 19:57:42 | 显示全部楼层
    PLM之家PLM之家
    上海点团信息科技有限公司,承接NX,CATIA,CREO等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施开发培训,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    56

    帖子

    606

    积分

    高级会员

    Rank: 4

    积分
    606
    发表于 2013-11-14 09:53:12 | 显示全部楼层
    谢谢高手分享
    上海点团信息科技有限公司,承接NX,CATIA,CREO等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施开发培训,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    43

    帖子

    406

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    406
    发表于 2013-11-14 14:59:49 | 显示全部楼层
    多谢分享,辛苦了
    上海点团信息科技有限公司,承接NX,CATIA,CREO等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施开发培训,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    39

    帖子

    185

    积分

    注册会员

    Rank: 2

    积分
    185
    发表于 2013-11-14 17:46:31 | 显示全部楼层
    我来看看了
    上海点团信息科技有限公司,承接NX,CATIA,CREO等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施开发培训,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | QQ关联注册

    本版积分规则

    <

    QQ|小黑屋|手机版|Archiver|PLM之家-工业4.0数字化驱动之家 ( 沪ICP备13003373-3

    GMT+8, 2018-2-18 14:31 , Processed in 0.144880 second(s), 33 queries .

    快速回复 返回顶部 返回列表