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 48830 136

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全( S$ A* D. u% ^1 y9 j# ~
' o9 @3 r- B- \% y' h3 {
* {" a# {0 W" g+ U6 `+ e% v

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

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

% s" n  G- z6 Y9 A2 p

/ T9 V. |9 ]: L( Y" M* |4 z3 z5 {$ i- M! D

& v  @0 @7 E7 `( M) ^  D' Q 3 K. p0 \& \9 H: v$ |
游客,如果您要查看本帖隐藏内容请回复
3 f1 h; S6 o! n  G& r3 K
源码分享:
6 W( n4 o' @) T$ |
9 a4 z5 w1 C* ]1 X, M
  1. /*****************************************************************************4 L/ p) j) `. N2 }) |
  2. **
    # E+ P8 k9 c# Q% @# g- Q; _
  3. ** ufuitest.cpp
    5 Z6 z- t6 |3 K+ U
  4. **
    : |' f+ ]! g/ ^* k2 u; y  s, D  x
  5. ** Description:
    ; ~& \; U, V3 @- B2 O
  6. **     Contains Unigraphics entry points for the application.9 W, S/ i3 |: u0 ?! ?! f; L
  7. **
    ) ]. D$ Q& w+ B
  8. *****************************************************************************/( H. N: y+ ^# ]) u& \: ?6 N6 P- H/ R2 k+ W

  9. 9 l- h" F3 c: x; X2 D* B, ]
  10. /* Include files */* K7 q' ~; G8 o* T
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )8 [1 T+ X, w$ c( Y. O' R
  12. #   include <strstream>; {0 ~8 l; h' T6 e+ Q
  13. #   include <iostream>
    " t' r* q$ q) }) `/ L; j9 q5 \
  14.     using std::ostrstream;
    & x- k0 j) P7 g5 _1 O
  15.     using std::endl;   
    % Q7 A9 b; v1 G4 p$ w; G6 y
  16.     using std::ends;* E# a, u9 S. T) O
  17.     using std::cerr;" [, M4 n( p) B6 Q' }/ W$ U
  18. #else  L$ b' c7 G1 T5 C- a1 F! s8 k- N
  19. #   include <strstream.h>: A$ ?0 j* F  v3 s- I) M
  20. #   include <iostream.h>" V" s6 U! z- O* ?8 ~! @0 y, Z
  21. #endif2 G+ E& x9 @  v0 o4 H
  22. #include <uf.h>
    ) B" f& ?0 k" i7 |; L
  23. #include <uf_ui.h>
    " n9 t+ P% p' b8 Z
  24. #include <uf_exit.h>9 Z7 s% O+ b; l% O$ p' j3 @
  25. #include <sstream>8 v- r$ V+ C8 U. |; B1 M  r

  26. 8 ?6 }% m+ E% q- q  }% W! P
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    : ^: E3 q$ W- y8 L5 y% \& P

  28. ; o# z0 v9 W! J- c8 Z. f$ k6 v
  29. static int report_error( char *file, int line, char *call, int irc)" N4 A& V% l+ X. Z" o0 H
  30. {
    4 ]6 u5 l. D7 e: G: G# k
  31.     if (irc)
    4 s& r, Y& _3 w$ b4 K6 t; d
  32.     {. K8 _3 w0 f. ?# i4 F- e6 ?" y
  33.         char err[133],- q+ p2 @! {6 M8 |8 _
  34.              msg[133];9 Z* _8 |/ i1 j7 f7 g- k; ?

  35. ! S+ F' y! B+ T* p; s0 i1 B
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    0 t  c$ X1 {2 x" o
  37.             irc, line, file);
    0 p' b6 S4 l0 |) ?
  38.         UF_get_fail_message(irc, err);
    9 q  m( W2 y- F

  39. " L( q. j6 ~( b
  40.         UF_print_syslog(msg, FALSE);
    3 q$ n, n' O" o8 @, U5 l
  41.         UF_print_syslog(err, FALSE);4 a" T: Y; @* k7 }# I! P1 O
  42.         UF_print_syslog("\n", FALSE);) l9 n. `% a$ w
  43.         UF_print_syslog(call, FALSE);
      ?6 B/ r; U6 q% {+ F* i) {) B6 C
  44.         UF_print_syslog(";\n", FALSE);. n. x: r3 [& H! a0 R! `. @% n7 l

  45. 7 N# R2 P" V1 O' h/ s  \+ s
  46.         if (!UF_UI_open_listing_window())) a2 Z- @* j7 m5 Z, {2 h( ?) _0 p
  47.         {
    6 R: t9 u# y+ M3 o0 l, ^  Z
  48.             UF_UI_write_listing_window(msg);- k) R/ `% v  J1 D: j
  49.             UF_UI_write_listing_window(err);
    0 F" M. m/ ?; ^1 W1 G6 u
  50.             UF_UI_write_listing_window("\n");
    / W: ?) e; Z" l0 U9 |
  51.             UF_UI_write_listing_window(call);
    8 m* i1 `: Y; `  \* s( m9 L
  52.             UF_UI_write_listing_window(";\n");; Y. {3 e4 n4 x" D+ [
  53.         }
    & o) q/ d8 A: b2 F7 F
  54.     }
    0 u( r, ?& A+ _6 N

  55. # O% ?, r# L# i: ^/ D
  56.     return(irc);) i" d/ Z0 Z  r, B' K" j9 f
  57. }2 x/ L& @# D/ K8 l! d& c

  58. 2 B( i+ U  t( i1 S/ o" D! W8 R
  59. ) j/ ~& ]$ _) A; q4 K6 [8 i
  60. /*****************************************************************************
    ; g9 f4 V# |: v
  61. **  Activation Methods' K; z$ Z1 _! A' z( u% g! \6 x# `0 H! D
  62. *****************************************************************************/
    6 U+ b$ _  O, s- J' s. b+ v4 I
  63. /*  Unigraphics Startup
    ) m0 {0 G0 w, y/ i2 m: O
  64. **      This entry point activates the application at Unigraphics startup */+ j) `, z! n+ T! Y: h
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )* s5 H& t0 U: E8 L4 `5 `, G
  66. {
    3 Z! h  A, S- r$ ]: \
  67.     /* Initialize the API environment */
    $ W& K, i: s! J& w8 a
  68.     if( UF_CALL(UF_initialize()) ) 3 l' _4 W. t, k
  69.     {) E: q( ~' Z: K* K" T: Q& U
  70.         /* Failed to initialize */
    9 r& ]7 F. S5 W) x1 }$ p
  71.         return;! V4 Y0 E$ Y. F( ~9 t
  72.     }4 {/ M  y% j8 \( u
  73.     ( k4 a7 a3 i! _# l0 j
  74.     /* TODO: Add your application code here */
    0 B! |) ^& W% v( u! P

  75. # @0 p' D7 q* X! V- f  c  W" Z
  76.         //测试 uc1600 和 uc1601
    " m5 S+ Y! Z8 C) L$ ^7 F5 B
  77.         std::stringstream  ss;
    . }1 b1 ]& b, V# {
  78.         char *cue = "PLM之家测试ufun常用的UI";9 \2 _3 j2 X8 T4 B9 ?4 U+ G$ t% j
  79.         char str[133] = "输入字符串";$ h' s, ~. \0 |8 T/ A
  80.         char msg[133];3 c& _7 g( n: w4 {1 K
  81.         int length,result;
    ( K$ t: s0 D5 v& b( \8 m6 {' `  ^
  82.         result = uc1600(cue,str,&length); //获取输入的字符串. n' m% v$ W! w  a' |* |
  83.         sprintf(msg,"%d",length);% _. u- [. C. A3 c0 \# M3 D
  84.         if(result == 3)
    7 O- S5 b0 }+ q0 r: a4 n) i3 n) i
  85.         {
    " E+ m& U* K: b9 p# _: e4 y0 l
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上5 [6 v! Q5 v. v: M" Z  k4 x
  87.         }6 N7 I$ H; d) \: O/ Q$ v+ S9 I% S

  88. 0 j  `4 y2 d  s, y5 A
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    & J" P7 C- A* `3 ?$ \
  90.         char *title = "测试uc1603";
    1 [# ]3 b1 t9 ~
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};
    * W! {3 \6 S2 Y
  92.         result = uc1603(title,1, items,4);
    4 p" B" Z2 `- F
  93.         if(result ==5)
    9 ]3 f6 {% g& F: I# ~* Z
  94.         {
    9 E6 Q) f) ]0 g3 @3 x( _% [$ q" C
  95.                 uc1601("这个是对应的第一个选项,创建block",1);9 g8 [. n. [6 _) ]
  96.         }) ]+ }0 f7 c2 H' ~$ o  {6 |
  97.         if(result ==6)0 E+ D, B7 @7 i/ ~0 W6 t" U- i
  98.         {
      i8 q* P! ^" V
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);% h# j0 s; P0 p: C' h9 G4 N
  100.         }+ c3 P& E4 f6 H4 f9 d
  101.         if(result ==7); z0 ]3 K5 ?5 ^8 ^3 h4 ^9 o
  102.         {6 B) s4 b2 Q. i* G8 G; ]+ w
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);& q' K! S0 N% E- c8 w! n2 J. w1 B, u& t
  104.         }0 X, e2 r+ m$ K1 x6 q
  105.         if(result ==8)
    , D& Z$ A9 p9 e, m5 R9 d7 X
  106.         {
    ) Z, o" p5 W/ n0 W/ W6 x
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);3 V- r/ F# o4 _* t0 M( r; Q
  108.         }7 C0 F8 a- b9 U

  109. + y0 u/ Z: w6 t& ~6 h
  110.         //测试uc1605--》用来创建复选框
    $ Z6 O5 C1 _1 x* D
  111.         int selected[14];
    1 Z& {: G& h, X) `% z
  112.         uc1605(cue,0,items,4,selected);
    ; E; k- V( h( z6 H# L

  113. + j2 F. E9 E1 H2 R: ]' j! {/ u' U2 s6 P
  114.         //测试uc1607' I9 v* E$ c! ?3 {
  115.         char *cp1="测试1607";
    8 Y- M9 U. J8 C# @4 R, r% t% I
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};/ b+ \) {5 o8 t2 c6 `9 e7 O! c: |* `! o
  117.         int  ia4[3]={100,200,300};' x0 ~+ A. P) z6 v5 U1 h. G) |
  118.         uc1607(cp1,cp2,3,ia4,0);
    $ W0 ?1 ]+ S: d8 T2 g  i: j
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框: n" {+ S0 N& H- G* h
  120.         char *cp11="测试1608";! U, O" c9 @, m8 K' M4 r
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};5 W1 V7 J% `" F# N, n5 g6 }
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int. C# |5 ~' D$ p: B% s
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double7 B$ x! Q( [0 N9 A- q
  124.         int ip6[3]={0,1,0};  # W) w2 s& I) K1 N% @4 \& z! v
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
      s6 M/ d' R" c
  126. 8 B8 D* G( ]6 h* t7 @( Q4 n# |& g
  127.         //测试uc1609 -->用来获取real类型的输入框
    7 Y' k, A; o* M9 B' C3 Q" `
  128.         char *cp12="测试1609";, n; W/ C" ]# ]% L, ?- }# x" r) ]
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    2 W, R. {. N" x" E; b
  130.         double ra42[3] = {30.5,50.8,100.3};
    - B4 S; M$ _5 E# E6 C- L. S( P
  131.         uc1609(cp12,cp22,3,ra42,NULL);4 P9 X1 n4 u4 C9 O  O
  132. / @: ^# ~7 O6 h; k
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框8 g0 @" c, s# p- b7 z. U
  134.         char *cp13="测试1613";
    : v3 q, Y6 F9 r" m, _
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};1 P4 W( m% ?" |! O
  136.         int a3[3] ={10,20,30};
    : E- @/ J, [& Y& @
  137.         double ra53[3]={11.23,12.45,12.67};
    0 X1 z! I; J4 I; N( C, T) O/ z+ H
  138.         char ca63[][31] ={"string1","string2","string3"};* V$ V4 l8 ^4 ]& N" U* J% ]' ?
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
    % v. A6 a6 ]* `. ^! W
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);
    . R# d: [5 d9 T! B  {. S6 u- }) ^; c

  141. " c3 |2 r+ R0 l5 [' ~  Y

  142. 4 p& Q8 h3 e+ a3 H
  143.     /* Terminate the API environment */9 E2 n& c. Z9 M8 ~7 x4 [
  144.     UF_CALL(UF_terminate());2 H* b& f, \8 A& e
  145. }  x, _% `) Q) A) v- K, t! E

  146. $ m, A+ J9 I* N# }& W5 ^
  147. /*****************************************************************************
    / m* r3 z# _$ r  r& v6 P
  148. **  Utilities4 m3 P# [$ ]# ~# F0 y
  149. *****************************************************************************/
    7 C9 G, M( O7 Y# G
  150. 8 I2 h# W: i( Z" X: H- g+ v
  151. /* Unload Handler5 g; \, J7 E% g/ o) T8 V: h9 J3 W
  152. **     This function specifies when to unload your application from Unigraphics.- S$ \) P, _) C1 \( A) s
  153. **     If your application registers a callback (from a MenuScript item or a/ _) s" {6 F; R: S* b" i
  154. **     User Defined Object for example), this function MUST return
    6 }; |& J& m4 C7 r. S$ u: ~- A
  155. **     "UF_UNLOAD_UG_TERMINATE". */, h* ^  S2 u1 D8 r
  156. extern int ufusr_ask_unload( void )5 A2 a: z* K$ X
  157. {3 r4 \  a$ h2 F/ I/ p- T# e
  158.     return( UF_UNLOAD_IMMEDIATELY );. Y2 s7 s. ^: c1 C, |* C$ {
  159. }
    - g7 X5 }$ W/ t3 f! x
复制代码
# Y% W: v% |" m
2 y: N  d8 X; p1 l$ t& Q- I
, B! p$ f% b$ Q- i! J+ z) b: b( B' \+ I
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了