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

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

  [复制链接]

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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
  J1 [( V4 `2 u! K
4 _) U! f5 ~- ?+ ]1 n1 ~0 p$ z: h. ? 5 U8 p! o+ }$ K

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
  W: x. t" u( g

" M7 ~9 v  L7 U# e9 W  s7 m' K
9 }  a" j1 l5 e  o/ q9 q/ K; c2 k" J$ w4 p& Q* u

& j& L* f+ _0 V! u) P7 R
游客,如果您要查看本帖隐藏内容请回复
; N# C  U5 i! c
源码分享:
& q' |% }$ C  w1 ~# B
( w5 a# c: P5 h3 n  O. `6 w) @
  1. /*****************************************************************************8 Q& m, N5 \' U9 y. G! w
  2. **
    3 j, E6 g# T6 q$ a1 l
  3. ** ufuitest.cpp4 s: H/ N+ h% c0 o. `4 e- A
  4. **
    $ k4 y3 j, I7 E9 d
  5. ** Description:
    1 v* h3 H# D/ w& N9 F
  6. **     Contains Unigraphics entry points for the application.# `% x1 x" i: f" k7 U& a
  7. **$ ^8 a; o5 y, S, q( M7 N
  8. *****************************************************************************/
    1 P2 {4 a) m+ A5 `
  9. 9 \( ~0 u% ?/ b+ H  m% Y/ a
  10. /* Include files */: }0 q; n0 v0 r3 U
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )  _0 r# C5 c3 Q+ f' p5 `
  12. #   include <strstream>) m/ p$ F/ M* A9 A+ V1 G
  13. #   include <iostream>. ]9 U" M+ h7 m& g, V0 T
  14.     using std::ostrstream;
    : f' N6 L+ S" J8 p
  15.     using std::endl;    - u3 E) ]2 B" k5 L5 h
  16.     using std::ends;
    # e" j6 \* j7 p$ j! \0 j
  17.     using std::cerr;: U* P9 a; L: B/ o( |
  18. #else  ?  H( H  ~# `; ~
  19. #   include <strstream.h>
    . Q# E) v0 B# p7 P
  20. #   include <iostream.h>
    9 |  ^# L5 l' Z
  21. #endif
      U& E1 t5 L2 r7 V
  22. #include <uf.h>
    / q$ S1 |( P, i9 b0 c& V
  23. #include <uf_ui.h>7 R/ C' P2 e9 d
  24. #include <uf_exit.h>9 ^- [( l6 Q' X0 f4 Q. \7 N
  25. #include <sstream>7 `  U* U/ Q7 t4 Y/ s* g
  26. - ~& B$ ]# G, D$ g. z; P
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    - D  v7 J( J7 V! ^/ k6 s( C# S0 x/ R

  28. 6 c3 g8 R; f- {; ~
  29. static int report_error( char *file, int line, char *call, int irc)
    ) f  b& T% ^1 F9 G7 J3 c1 o, o
  30. {& T1 J9 @# M7 C' {+ G! ]
  31.     if (irc)) D$ b- x# V1 R% N
  32.     {: [/ W! r) ~& H
  33.         char err[133],
    / b% |& G5 x5 ]  D' z5 G3 v# s
  34.              msg[133];
    & W2 i. t4 x" n! _9 F& `% V  ^
  35. 9 J# l, s7 G0 w1 r, k
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    ! M) |, J$ }( C6 A
  37.             irc, line, file);6 w/ n* F- u4 u2 U  M& s0 W" k* R
  38.         UF_get_fail_message(irc, err);- o; j4 c. s: o$ x' p( K2 Q

  39. + B/ |% _/ s; t3 |
  40.         UF_print_syslog(msg, FALSE);* G+ C: P* U$ }2 ?$ ]
  41.         UF_print_syslog(err, FALSE);3 u) I- Q1 W9 q4 p; p
  42.         UF_print_syslog("\n", FALSE);
    1 ?" u! p. `1 S% `& G
  43.         UF_print_syslog(call, FALSE);
    9 \0 W& \1 w1 g2 v, Z% w/ t4 X) R
  44.         UF_print_syslog(";\n", FALSE);# U& U. H4 U! N
  45. 3 t0 i5 q/ s1 r1 P* Z3 c. O7 h
  46.         if (!UF_UI_open_listing_window())
    % p9 A0 i! w, w8 l2 y' m. C5 _- u& Z4 ?
  47.         {0 e/ T& w3 R& z
  48.             UF_UI_write_listing_window(msg);4 B% q/ x# ~! M3 @4 v  J6 x
  49.             UF_UI_write_listing_window(err);  I* ]) o( B" x4 Z6 W; N
  50.             UF_UI_write_listing_window("\n");
    / H! k4 \% f' @+ [" R; X
  51.             UF_UI_write_listing_window(call);
    0 t+ V  r. @! d" y2 o) M
  52.             UF_UI_write_listing_window(";\n");
    . Q7 q* }( s9 O7 `/ c! ]
  53.         }
    6 n8 x9 [& H; h% V& [
  54.     }
    4 m% O. J0 g' F

  55. ; Z! |2 @0 u) u! P5 n
  56.     return(irc);. }) N5 F# x. a+ U# w
  57. }
    ; N" G' v7 G4 I+ m7 x/ I# w

  58. # s/ x3 R) j0 i1 e
  59. / R  j6 _- a$ j0 X
  60. /*****************************************************************************( i  h5 ?0 V8 z+ _! N) }
  61. **  Activation Methods, `: ]4 |' k2 I
  62. *****************************************************************************/
    . j* M- ~; a" s8 P4 e2 T  w& [
  63. /*  Unigraphics Startup
    . `( R* I1 N# I4 e0 _7 T
  64. **      This entry point activates the application at Unigraphics startup */  z7 h/ F0 F3 n6 _8 i7 u+ [
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )& [" S6 N, t% Q4 s. J. p5 I
  66. {
      N/ P  a- j7 f" j) C/ K0 ?+ {
  67.     /* Initialize the API environment */
    5 U$ T# L* |) C
  68.     if( UF_CALL(UF_initialize()) )
    1 A% N+ r3 }2 Y" u  e' C
  69.     {
    $ z" |( Y9 k' ], S3 ~
  70.         /* Failed to initialize */* ?8 V9 d& ^* I  O8 W
  71.         return;
    ; A: U( m0 X7 g; ^" G
  72.     }8 ~, c+ ?3 {" D. C
  73.     & ^4 i! T' w5 k- N, \
  74.     /* TODO: Add your application code here */
    7 A2 ~) C7 p; K
  75. 1 P) ^0 l3 W: i$ r
  76.         //测试 uc1600 和 uc1601. d5 e: o( y9 t5 C1 A
  77.         std::stringstream  ss;* x' H; N% G# [! o
  78.         char *cue = "PLM之家测试ufun常用的UI";
    " W  e4 m, L5 T1 R' H
  79.         char str[133] = "输入字符串";
    6 L: X) u4 Y& m3 {) f
  80.         char msg[133];
    1 \/ T+ u: E& l0 r- R
  81.         int length,result;
    3 t3 ?  n3 N+ k5 b+ D
  82.         result = uc1600(cue,str,&length); //获取输入的字符串7 O( P( }5 {. }5 E3 {; `! O. G- Y
  83.         sprintf(msg,"%d",length);; ?" `( V/ p' E2 p
  84.         if(result == 3)
    ( ]/ b2 @( R( S! Q8 O1 x! `8 C
  85.         {) e. w1 Y; n8 ?0 i  C5 \( p9 ]2 d) G; h
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上
    : b' K$ v. V7 q( c+ |
  87.         }
    - u; @# D+ ?( @7 M. x$ D0 l  C
  88. : X6 M& D1 L* p$ k
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    7 n+ H" s* ]( A
  90.         char *title = "测试uc1603";8 Z# q, X/ D" }4 h  o- @
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};$ L4 L9 c" u; `: Y' H
  92.         result = uc1603(title,1, items,4);
    $ v' i. s1 x* ]; ~2 |
  93.         if(result ==5)6 y* E* B' ~3 G) C3 l" \
  94.         {/ }  {  x7 k3 j2 K  J2 i) G
  95.                 uc1601("这个是对应的第一个选项,创建block",1);0 l# ~" |8 k' r. h# @
  96.         }, k5 S8 h$ x) r2 C, X
  97.         if(result ==6)
    ) F$ T9 ^- J* n$ g; F
  98.         {
    " l9 i! |! |" }/ M+ H$ {
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);
      @, _- k' F. Z. R* d
  100.         }5 Q  a: b  M; y/ t/ p
  101.         if(result ==7)/ i! O0 b$ W* H$ A+ r: k
  102.         {* D- x$ y5 N8 P/ M( \
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);! g% @) u5 y+ X$ t" o
  104.         }' f- R! N1 b& S
  105.         if(result ==8)4 b9 }( I2 M) B* R, W6 ]/ M
  106.         {
    ) h9 a+ V- ^) K# J( s; E6 n/ P
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);& C' M$ ]. S4 |* t4 Y+ p
  108.         }
    # N  z7 s  X+ Z6 A, I  D
  109. # C6 L: [3 |; r5 H; A8 D  N
  110.         //测试uc1605--》用来创建复选框! e" _* Z: |7 S4 z3 G
  111.         int selected[14];8 ^( Z1 i- y. j" C9 T, w/ e+ Q! G
  112.         uc1605(cue,0,items,4,selected);9 x7 K8 s/ I* v) u

  113. 1 o7 V' w3 U3 R: F! S8 m8 P
  114.         //测试uc1607
    : g2 U4 E2 |9 o
  115.         char *cp1="测试1607";4 J, q; k# ]$ c2 t
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};
    + f1 p8 I! R  h& n, n  Q  \8 R
  117.         int  ia4[3]={100,200,300};$ P0 U" U6 W; H3 j
  118.         uc1607(cp1,cp2,3,ia4,0);
      z0 Q9 A) d# R6 [# X& p% x  y
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框* t7 f1 _9 P: L) y% X/ s: y
  120.         char *cp11="测试1608";
    + a( B9 ]$ _5 M; p
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};
    + |3 ^5 Z5 z/ H% i  @5 i1 H/ Z9 [! Z
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int
    " |; m; C" T1 r4 |3 H/ P
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double
    ) S% E$ @, |$ r8 S# K
  124.         int ip6[3]={0,1,0};  
    7 L  S+ s9 f0 P2 F6 T! |
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
    6 w/ |+ n/ m, `2 B5 X/ ?! R
  126. # z+ u3 D2 b& V4 c' N( l- N1 }
  127.         //测试uc1609 -->用来获取real类型的输入框
    2 w2 }1 S5 f5 H6 g
  128.         char *cp12="测试1609";2 x$ D' I6 u, p7 u
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    ; f3 B6 D4 u, y8 Q" E% l6 r1 x
  130.         double ra42[3] = {30.5,50.8,100.3};
    ! U5 M9 z# B" v; e1 T" O$ D3 D# L& {$ L
  131.         uc1609(cp12,cp22,3,ra42,NULL);
    " ]8 _$ N7 q! M4 l1 h' U
  132. - e) p( C/ R/ P' }6 o; f" \7 M! J5 w
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框9 q3 t! O7 Z7 q
  134.         char *cp13="测试1613";. x8 Q5 i$ n( ], z0 L( q
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};6 T' Z1 u+ @$ a4 o( H/ \- f& r
  136.         int a3[3] ={10,20,30};
    7 V3 v! Q: t) F/ l. ]3 `# y
  137.         double ra53[3]={11.23,12.45,12.67};
    / Y( f% U4 O7 z6 g0 ]: t( y
  138.         char ca63[][31] ={"string1","string2","string3"};3 d' K, s4 w% a* z% L3 ?
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围2 w8 \7 n3 o$ n  ]; }
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);
    . m. t3 S6 `$ }$ j" e' P' ?9 i
  141. ( N( W2 E- X$ C: W, A5 m' @0 Y# e

  142. & ]0 s" z3 N" }
  143.     /* Terminate the API environment */. n2 w" f& i/ R5 r4 T: ]
  144.     UF_CALL(UF_terminate());
    8 ]- y2 R6 j0 }1 J
  145. }
      n- _& ~7 T! v/ ~: s
  146. 7 G4 p, I0 v% B& m& ?% G' O- M9 Z
  147. /*****************************************************************************' X0 l) t4 a" ^; L2 T9 }+ ?
  148. **  Utilities8 w4 y; r% _& a* i0 {# ?' s
  149. *****************************************************************************/& W5 T; k, V" [$ k, V. V

  150. & I: n7 O, e$ N; P$ }0 p, b
  151. /* Unload Handler& J% A; A7 ^& ?& s1 v% O
  152. **     This function specifies when to unload your application from Unigraphics.
    9 Z! X: v# o5 J& _4 ]
  153. **     If your application registers a callback (from a MenuScript item or a* B6 E" n1 f: d) i, D% v0 }
  154. **     User Defined Object for example), this function MUST return
    8 G$ U; C: c7 t8 y) @; p8 p
  155. **     "UF_UNLOAD_UG_TERMINATE". */' H* i8 L& ~* x5 ~
  156. extern int ufusr_ask_unload( void )) n: {* W: H) l1 o9 e# Z8 ^
  157. {) X: A/ X8 G7 H# p- N
  158.     return( UF_UNLOAD_IMMEDIATELY );% R8 t' d+ `, W/ n6 j% l+ k
  159. }1 v4 Q; l$ ~; P$ B. b
复制代码

% D% b3 G) K$ Z' B  p0 ^1 T
6 v4 i' H! F( Y6 f" v  H3 `3 l* x# d3 _0 w9 B* j3 o
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了