PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

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

  [复制链接]

2013-11-14 17:46:31 49015 136

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全9 C0 S/ ~6 O+ `+ V5 U) T
0 Z( w5 k4 V/ U2 _7 @' d
/ D* a+ g; h9 n8 m# L) {" x

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

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

& }1 x7 W3 b; R+ o" |! V

) C3 z" e3 f) P! v( h& |" H+ \# P7 `; h& i6 n

; O, Q% f" h8 }- q; | - _  d+ E/ ?) z: a  A8 h
游客,如果您要查看本帖隐藏内容请回复
6 D, I: e% P( p' `# L$ H; K
源码分享:( a  v# F0 B' q1 p% o: a
' O/ k: @1 T3 b3 o: u% g/ J% N0 c+ Y
  1. /*****************************************************************************
    4 b. O; j& u# ^( G4 V
  2. **) U  g' m7 N; {3 {
  3. ** ufuitest.cpp
    7 {5 C: R+ l* C
  4. **7 V" ~9 \0 v  ?% }
  5. ** Description:
    " H7 A3 o/ e( E0 M* u4 l
  6. **     Contains Unigraphics entry points for the application.% w; v0 h1 ~7 Q. c4 n
  7. **
    " L) E- }7 X7 b: Z2 @: x/ b/ y
  8. *****************************************************************************/# _' `7 {8 Y7 I# m, j8 Q
  9. - d9 E) K: ]' C5 O6 e
  10. /* Include files */6 O" C% m5 O) c% I! L
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )6 K/ [4 [+ \. A5 H
  12. #   include <strstream>
    1 h0 G" i/ {4 _# @9 M' u7 c" ]
  13. #   include <iostream>, e% K1 ~- L9 ^# l
  14.     using std::ostrstream;
    / ?6 N! i- {, z/ P) o
  15.     using std::endl;   
    : Z3 J5 X  _. L
  16.     using std::ends;3 i4 E' J% J) V
  17.     using std::cerr;. o: m3 D8 d6 ?% V7 L; c7 G7 H: ?
  18. #else' L) B4 D3 \. `3 S2 K
  19. #   include <strstream.h>
    # h3 Q6 l, c. h0 Q, X8 P
  20. #   include <iostream.h>  k) k+ Z4 v% {1 v! }2 a, A# D7 G: \
  21. #endif
    ) R$ i5 |  O4 Z5 f7 C
  22. #include <uf.h>
    3 Q8 H  U/ Q6 k/ r! N. \$ E
  23. #include <uf_ui.h>
    ; v3 K( z; I6 m* g$ k7 H+ w& U
  24. #include <uf_exit.h># ~, `. ]1 d- ^5 N% @
  25. #include <sstream>5 L8 G  Q  v# }# v% e1 }
  26. 8 C1 G6 I) `) P) R$ k# t) s
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))0 G5 m3 p* X) }) G* ^/ V* j/ T. N9 m

  28. 5 _2 W* Y8 G6 @6 M7 B1 H* S
  29. static int report_error( char *file, int line, char *call, int irc)
    " C* p9 B, J8 k' V
  30. {3 x- ^* g7 ?6 @% P2 b
  31.     if (irc)
    + I% O' }( `8 `6 e
  32.     {& b/ c9 S: q% |- ?
  33.         char err[133],7 b6 O9 Y8 {! u- t+ R
  34.              msg[133];; c) D* @" b4 A4 w. m
  35. ' @5 {$ B1 `; S( |1 Q0 _- m2 c" q1 h
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    ; B, A( b9 M5 ^5 |4 n) o4 j
  37.             irc, line, file);- k( z, I  x* H9 P
  38.         UF_get_fail_message(irc, err);& L; Q* G: C$ s9 Z0 S( h8 W
  39. 7 W) R1 g( I! A' k' W  l" A
  40.         UF_print_syslog(msg, FALSE);
    , V3 f4 d' s8 b9 w+ ]2 e  u
  41.         UF_print_syslog(err, FALSE);
    $ o/ H2 o' T( ~7 M" X4 K5 Q1 {
  42.         UF_print_syslog("\n", FALSE);$ d4 ^" X# z. \7 H" l' a
  43.         UF_print_syslog(call, FALSE);
    # V8 Y- f) k5 y' g. x
  44.         UF_print_syslog(";\n", FALSE);; l7 I( x+ m( V' Z2 r# D

  45. ! K3 q" L  ]& L: }
  46.         if (!UF_UI_open_listing_window())
    $ W  O* L/ y, f  ~
  47.         {& Y0 _; W& ]3 `9 {  q2 `7 P  _
  48.             UF_UI_write_listing_window(msg);4 R3 m/ P: [6 w4 h9 S* C; B
  49.             UF_UI_write_listing_window(err);
    ( }+ V+ p2 w( ^8 B7 ?' M  s4 D
  50.             UF_UI_write_listing_window("\n");
    + e+ M* c2 {7 d" A5 @
  51.             UF_UI_write_listing_window(call);, V+ X, i) c' ?* R1 O/ T( l( X- C
  52.             UF_UI_write_listing_window(";\n");( a2 Z% ~; }; _
  53.         }' U6 y, X0 G* K( @) ^3 b+ r
  54.     }) {  J" e8 `7 j. `" x; M: g) B9 e. F
  55. 6 ?" r6 l* j  j* F+ \/ q. h2 l
  56.     return(irc);
    2 E+ H( ]0 V; }# d* V8 g6 R( b
  57. }7 O  {7 B) W3 j% R

  58.   x, O2 o4 ?1 `- k6 f7 M- J

  59. ) E" k! _, |9 s! i+ {7 p
  60. /*****************************************************************************
    , Q: O& Y! U& ^' z5 h' m, ]$ J
  61. **  Activation Methods7 X4 R. c: I& {: H
  62. *****************************************************************************/" @* p. O, J& {
  63. /*  Unigraphics Startup6 c3 P1 x6 ^# Z, l
  64. **      This entry point activates the application at Unigraphics startup */
    & m+ Q4 D9 f4 l$ r5 D! v
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen ). X5 B! s: p! P8 c
  66. {; O& l! s7 n0 ^% l$ i; ?
  67.     /* Initialize the API environment */
    9 S3 V/ k( \$ f
  68.     if( UF_CALL(UF_initialize()) ) - M' V" A& p& ~: ]
  69.     {
    ) ?$ q/ \4 r3 w, A+ T3 b
  70.         /* Failed to initialize */
    1 ]- }. W5 X5 N9 B7 Z3 S
  71.         return;* |  l) j; {) q' A* C
  72.     }
      X0 Z/ H' a  F, P+ p- }& v+ H
  73.     $ ], q: H+ k7 M* G+ j+ m
  74.     /* TODO: Add your application code here */6 S' s4 A2 x. ~0 J" {
  75. + q! [# B7 p& P7 z! [
  76.         //测试 uc1600 和 uc1601
    2 G+ M5 ]! v- _' O- v, H& u) o
  77.         std::stringstream  ss;' g. {- I3 M/ T5 o
  78.         char *cue = "PLM之家测试ufun常用的UI";
    8 Q6 g" k2 ]5 T4 S5 g$ M
  79.         char str[133] = "输入字符串";( {2 E. f' N$ M1 u8 v( q2 R$ h' G& K
  80.         char msg[133];
    & u' I2 m* ^6 }( k
  81.         int length,result;: W, G3 W" j; n3 G6 O
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    , c. u- R" _8 J: _: M
  83.         sprintf(msg,"%d",length);! n; B$ _8 t- v0 y
  84.         if(result == 3)4 K; a5 Q- X5 B/ D( J$ c, D
  85.         {
      J$ n6 Y/ u/ d0 T3 }; g
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上
    ) c+ a: J& P+ a9 n. T7 y% W
  87.         }; K/ m* q1 z7 O. x; m

  88. 1 i( w- G: \- H/ D
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    2 [; ]7 s4 L, n) E9 p% F
  90.         char *title = "测试uc1603";
    % G) N, Z! G( S5 s, Y
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};# u0 F6 }4 {+ d/ D% p2 d* k
  92.         result = uc1603(title,1, items,4);  F" l' M5 N; M* J) y4 ~+ H  |% F! c
  93.         if(result ==5)5 E% H+ I: v+ T! [4 t9 W, T3 t
  94.         {
    ( T8 N' D3 T8 M* ]2 R! H7 ?
  95.                 uc1601("这个是对应的第一个选项,创建block",1);9 [0 b" _6 u3 l6 X2 V( o
  96.         }& E3 v1 u+ O) N( ]( {
  97.         if(result ==6)! H  q  Z- y7 [5 D% i1 G* n/ l
  98.         {
    . u. K- g( S- {9 X
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);
    ! J2 p5 @7 x* p# K5 _3 k
  100.         }
    0 R. U7 k+ C. _+ A' v# L) V
  101.         if(result ==7)
    5 p+ S* [) n3 J
  102.         {$ C- h0 h& j" l9 T; N) l! ?
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);3 W& J0 K- n  y
  104.         }
    $ R1 X$ m- E, S/ Q7 M: n. l
  105.         if(result ==8)
    % B; s' W) q7 u) q1 z* \" x
  106.         {" o+ s5 w" u1 D5 u- i
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);" S3 {7 }/ C# r  P; g
  108.         }/ ^7 K& \( N$ R& }$ d

  109. # I% Q2 ^) l) r2 i7 }" p! i
  110.         //测试uc1605--》用来创建复选框( y# Q* W. j% c' j+ `7 E* f% A
  111.         int selected[14];
    , h; ?- f. m% I- F2 l0 |
  112.         uc1605(cue,0,items,4,selected);
    , ]- l8 b: P# H. Z: `3 x8 ^- h7 s% @

  113. 0 i6 e% k- J! ]! B& _: N  i/ m; \, T
  114.         //测试uc1607
    0 E0 G- _5 L. P6 V: m$ s$ i' B! h
  115.         char *cp1="测试1607";
    # j; t& m$ \& A8 D" |
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};* h9 S# ^5 i- W* Z- R
  117.         int  ia4[3]={100,200,300};
    - R- u$ K( V* X3 a
  118.         uc1607(cp1,cp2,3,ia4,0);" f  |6 ], M, e% C0 b
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框
    , C4 z* \- g8 `" f9 H
  120.         char *cp11="测试1608";$ h3 H7 x. _0 F5 N8 b
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};
    7 d: D& [: ~% j8 Q) _0 Z+ c
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int
    1 X/ {  b3 x. p8 P1 Y
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double
    # R2 m/ C/ i( q4 i
  124.         int ip6[3]={0,1,0};  
      k$ G3 `6 U/ ^- Q  D( b) V
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);& s/ `8 v* x9 x) O) }

  126. " E2 p8 p) \& [" ]2 _! I0 Y
  127.         //测试uc1609 -->用来获取real类型的输入框" V' F& j2 B, ]
  128.         char *cp12="测试1609";
    . H; |6 s) c9 b
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    0 `7 S) Y" G' w0 P8 m
  130.         double ra42[3] = {30.5,50.8,100.3};
    1 \' x6 ^0 A& Y- q/ y+ @. q$ M/ A9 ]
  131.         uc1609(cp12,cp22,3,ra42,NULL);. X1 D& ^( z, `8 A. X2 v- x
  132. 9 Z4 w$ Q- c: z. o) `
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框
    4 c4 |/ X) S/ [7 D) D- z
  134.         char *cp13="测试1613";
    - x5 K) b& D: R' e2 `9 A
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};- K9 q/ h; j* I% |0 z$ ^2 ^
  136.         int a3[3] ={10,20,30};
    4 D+ ~$ a% d, B# s; B" U
  137.         double ra53[3]={11.23,12.45,12.67};( g+ j& N; {% a1 T6 p
  138.         char ca63[][31] ={"string1","string2","string3"};
    5 R4 W( ]" O* \5 w
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
    2 q& @! o- n/ Y2 V, J4 `! _" J$ X
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);/ J, @4 m; A, ?* S5 Y: a: u
  141. + E1 ]" W* I* G, [$ U
  142. 5 [% ~( d0 T# |# N* S: D
  143.     /* Terminate the API environment */
    # P( Z/ v; m  s& T: o* x! E
  144.     UF_CALL(UF_terminate());
    1 `) l7 Z' s% y# I* Q. t( l5 k$ s6 B
  145. }
    # p% K6 |/ w& ]  _! i

  146. " r* p: S0 V) N4 D( K' d6 O9 j7 u
  147. /*****************************************************************************
    0 O( Y! i; q- U
  148. **  Utilities7 {! E  B0 K, [0 m1 S, n
  149. *****************************************************************************/4 T/ J$ V/ v7 T

  150. ) O8 D% e& G) Y; a; n+ l9 b
  151. /* Unload Handler
    ( h# X2 m# l0 v7 ]! J
  152. **     This function specifies when to unload your application from Unigraphics.
      L. p. R& P  v  X' l
  153. **     If your application registers a callback (from a MenuScript item or a
    2 B! ], L5 i% F
  154. **     User Defined Object for example), this function MUST return
    9 ~$ q( R) Q3 V) z( F$ |  I
  155. **     "UF_UNLOAD_UG_TERMINATE". */
    : N* x& L  H1 c4 f& P/ Y% x. ?
  156. extern int ufusr_ask_unload( void )0 \" f/ z5 ?+ q4 K
  157. {
    " {" G7 M- F+ D( |4 \* ~5 |- @9 v) H
  158.     return( UF_UNLOAD_IMMEDIATELY );4 ^3 f) u0 v6 U/ e3 w; H" O; ^
  159. }
    3 c% w: Q& k4 T/ e7 [
复制代码

" |% R' o7 o' n0 c; Y" x9 N6 G% g
4 x' j7 |+ k& ~; a# |7 Y+ p( j
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了