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

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

  [复制链接]

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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
+ h2 r; H4 _5 J) ]% g6 U0 O% g
  j, Q: |2 z( f9 K% e; a % o, E$ R+ s3 F% K' `6 ^( @

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
* I3 o1 [/ ?. k$ K/ |

, L; I3 G) \) k( D8 `* @
0 q& Y0 v, E0 J0 ]9 N5 O& H& b1 t# A, y. S: V; m& S2 A
. X) F2 g# V! h8 k/ R: u/ d9 S
游客,如果您要查看本帖隐藏内容请回复
  L- W; F  G7 c/ c5 B
源码分享:
- R2 L$ j/ F7 C: j( \/ _6 k0 i  r$ k3 C3 \
  1. /*****************************************************************************3 Y! \0 D/ R( b0 j5 E. i
  2. **
    0 Q$ _% S2 l* `) ]
  3. ** ufuitest.cpp8 W. ]+ p- v3 n% I& X( r
  4. **' n; I" t) R9 k4 p; P
  5. ** Description:
    4 `" N. @! q7 M: S" G
  6. **     Contains Unigraphics entry points for the application.6 W+ V, k9 U! n! T+ b
  7. **& t+ r7 i' O; _
  8. *****************************************************************************/* U- a% K# P* x. j' U3 ^
  9. $ H6 ^7 k1 N) C9 S$ k- T: g. U. R
  10. /* Include files */
    ) g' d) k6 v$ D
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
    5 j2 r+ J. _! u$ ]& B
  12. #   include <strstream>
    ; ~, ~- g2 U' J
  13. #   include <iostream>( E; p6 j0 A0 K. s& f5 c0 v& ]
  14.     using std::ostrstream;' L$ r. d! j1 \* }( p% a1 q3 _
  15.     using std::endl;      Q- R! y, j- c; g8 G
  16.     using std::ends;
    . T) `# N' w* n+ d+ t7 F+ F
  17.     using std::cerr;
    7 m& |8 _3 d$ g
  18. #else# m  ?" Y- h) L
  19. #   include <strstream.h>
    " w+ ~6 I0 z4 \7 g  ?; L3 {
  20. #   include <iostream.h>4 h5 ?, Z& x* w3 z$ y
  21. #endif3 v) w9 B9 g# ?8 a
  22. #include <uf.h>
    8 @# h" W. P2 u0 _
  23. #include <uf_ui.h>: r3 m& E1 L! K. I/ B9 T
  24. #include <uf_exit.h>
    ! F- ^3 m9 n( [9 J
  25. #include <sstream>
    # ~$ _1 e3 I0 f; F

  26. " Q7 l" W! ~/ n1 X
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ! _* r- S' X9 b- g. I: q0 N
  28. ( ~6 F; F! H7 y  t9 B9 q0 z, Z" {
  29. static int report_error( char *file, int line, char *call, int irc)
    # K# ~" V1 T& E& X6 ?
  30. {. Q" k1 B) H6 Z' b- ^+ m
  31.     if (irc)$ F% H. V! y8 @  a
  32.     {
    . J/ Y5 Y9 Y% k5 O' I. k
  33.         char err[133],+ ~; p" _7 y% u: j8 \
  34.              msg[133];
    - Z0 y1 s# H0 t
  35. ! ~6 L3 F' T! ]& Q
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    % I1 l. ^/ |+ M6 h% `
  37.             irc, line, file);
    / M9 l# ~7 ~5 C8 r( O
  38.         UF_get_fail_message(irc, err);' e$ \+ }$ M1 R/ R. N; Y+ W  x# }9 G
  39. # A, D/ Q- S/ u9 A0 o
  40.         UF_print_syslog(msg, FALSE);, |0 `: `3 A' S! G, n
  41.         UF_print_syslog(err, FALSE);$ g. j& A7 x' X3 L: T
  42.         UF_print_syslog("\n", FALSE);
    * U( ]/ T) J7 P9 s2 V1 u/ O
  43.         UF_print_syslog(call, FALSE);& v( s, J+ \* E3 o# |
  44.         UF_print_syslog(";\n", FALSE);3 f* @, U+ N, z1 g

  45. ; C: r; m7 o$ G$ }5 v
  46.         if (!UF_UI_open_listing_window())
    ' g) `* m) }" @$ T; Z
  47.         {
    5 n9 `5 S/ O' X; O
  48.             UF_UI_write_listing_window(msg);9 Z/ i1 m# w+ X$ v1 ~
  49.             UF_UI_write_listing_window(err);
    / l2 |8 A& i7 x4 v. E
  50.             UF_UI_write_listing_window("\n");
    * Z/ b2 @1 @3 Q& i- x# C/ J
  51.             UF_UI_write_listing_window(call);2 ^9 X/ ?5 i1 i) ]8 d8 d: f- v; p" U
  52.             UF_UI_write_listing_window(";\n");
    ! T  h8 w- n0 M' U
  53.         }' C" R( U4 E0 N
  54.     }# g1 e+ U, n; v: L6 i

  55.   y( a2 x: _1 B9 z: w
  56.     return(irc);
    ( [; {* m/ J" e/ p0 K* d/ w
  57. }
    & K2 T$ x3 s& u* j

  58. - G( @2 j/ c' m3 `% o9 Z
  59. & A+ \* w+ V; h- G( f: r& J
  60. /*****************************************************************************3 t- }% M9 D9 c0 d  o
  61. **  Activation Methods
    , l$ M1 Q% ^* F! W* z8 Q
  62. *****************************************************************************/
    + G3 Q6 o# Z2 t
  63. /*  Unigraphics Startup& O2 }9 H9 K. A; g7 h7 ~
  64. **      This entry point activates the application at Unigraphics startup */. |& e: `2 }6 ]0 `  W. [: }
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )& `7 q) \* z8 F( t1 w2 R  N) U
  66. {6 f% E. M( y% E3 ]3 j
  67.     /* Initialize the API environment */
    6 f9 ^2 N7 q! x- y$ F# B
  68.     if( UF_CALL(UF_initialize()) ) " g4 g# a0 p0 l3 w4 W* `" |
  69.     {
    2 U) u* Y6 m- t8 P; Q- [
  70.         /* Failed to initialize */
    8 v, @- Z- E* ]0 {" a3 ?
  71.         return;2 `4 K& h) H7 P' C5 `, z
  72.     }
    - L: w, v, \! w! ^2 U- u
  73.     $ e9 c) c& i: o# y0 D  K& \
  74.     /* TODO: Add your application code here */
    # m% V- ]6 ~1 m- K+ [

  75. + F) o3 v/ Q, [: W0 h
  76.         //测试 uc1600 和 uc1601* K" p  l, P5 O; P: P( u! C
  77.         std::stringstream  ss;
    0 z: W7 N; ~8 \& N; E- r& h
  78.         char *cue = "PLM之家测试ufun常用的UI";
    # u% C7 M  S& [5 x+ {, ~! k5 h* P
  79.         char str[133] = "输入字符串";1 [  \  {$ K8 v$ p
  80.         char msg[133];: W: j2 X8 @6 u. ]5 f* L( g
  81.         int length,result;. K/ L5 Z: L, u7 F9 o' e7 T* W
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    $ Z0 p+ D: |+ a! l: s  D7 D2 j8 ?1 K
  83.         sprintf(msg,"%d",length);* ?0 o5 y8 I8 V" \# a4 a/ ]
  84.         if(result == 3)7 Q! X# L( z0 F6 G
  85.         {, b$ Q% O# ^; \* b. ~+ b' ?- b
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上
    5 }1 W/ X! }+ |! [' O5 a( ]- u
  87.         }
    ) V9 ?8 `* r  x2 ]; a0 G7 V

  88. ' L6 r. Q) B: f  P; X$ F
  89.   //测试uc1603 --》用来创建带有button的系列按钮8 q2 W4 Y0 E  o8 G; l
  90.         char *title = "测试uc1603";
    - ?' g; ^& N0 n! L
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};" ?& e! Q  r1 ]8 P
  92.         result = uc1603(title,1, items,4);
    1 a  v0 f  c# W& W6 e/ O8 o
  93.         if(result ==5)# z  |7 L+ N1 Q% p& V% F2 B
  94.         {: ]  q3 r: p/ l" r* G5 O( P# {
  95.                 uc1601("这个是对应的第一个选项,创建block",1);+ ~+ P/ |/ X* K9 E; i
  96.         }# k' \: S/ l/ d+ {  Q
  97.         if(result ==6)
    : ?5 l8 a5 j, p# o# X" A4 W
  98.         {
    ) O% ^( W8 y& L7 Q4 G  q' z
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);
    . c7 O1 M/ ~# z# s
  100.         }5 c1 f' ]& u# F4 d# r( U6 v. W7 f! D
  101.         if(result ==7)
    ' B& r- [) e7 o. H
  102.         {
    % @- C0 o& b; y. j  x: {
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);! l  H, b% z  v$ e8 q
  104.         }  l4 m' H! f4 n
  105.         if(result ==8)
    6 E0 X. c6 w% L1 f
  106.         {* G. h6 s, R6 [) E; y: y
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);4 A" M+ d- c& a2 y" ]2 ]9 c
  108.         }
    ( q. ?0 g$ M% V) n' b8 i
  109. $ W$ e" `8 U2 v, w$ J, x8 x" |
  110.         //测试uc1605--》用来创建复选框9 k2 g6 `5 c6 R# w
  111.         int selected[14];
    4 I$ N/ o1 ?0 O! Z# ?% q- l
  112.         uc1605(cue,0,items,4,selected);5 N4 ^" o& ]0 ?

  113. . _) Y6 w% s% |: U5 Q$ k
  114.         //测试uc16071 q: n% |* W4 z5 c1 f: x6 I1 q& G( u
  115.         char *cp1="测试1607";0 }  R8 b. \( a  O, A  D" P& |
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};9 Q$ K; s3 e6 E- F" F/ G9 S
  117.         int  ia4[3]={100,200,300};+ A! N, Z8 @* d. y# U
  118.         uc1607(cp1,cp2,3,ia4,0);
    ; c) W0 k: e" P8 P# r8 W
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框
      @( H" Z( e% U) q8 w
  120.         char *cp11="测试1608";, [/ R1 W" `/ g6 J
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};
    ; v6 |  I: F+ ]7 P2 ?1 u
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int. o  M% g& O0 c8 P6 x4 M3 r" ~
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double! y$ O2 k) h; r" p
  124.         int ip6[3]={0,1,0};  
    6 s/ s' ^: x  b& u6 H& {( u: D$ U
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
    7 x( i# l/ A" J
  126. 5 h5 D5 X0 [* P5 [, U1 A
  127.         //测试uc1609 -->用来获取real类型的输入框  R! x% U% U" n  v& e5 d, I
  128.         char *cp12="测试1609";
    5 J1 Y# s( M; p; l" _% ~
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};  N. y# K) i- _2 o( \$ Z7 y0 Z
  130.         double ra42[3] = {30.5,50.8,100.3};
    2 c" V3 L8 J4 l+ V+ [8 {" m) I) F! h
  131.         uc1609(cp12,cp22,3,ra42,NULL);
    $ T" W- s, d6 A' U# c; C8 }

  132. 7 o8 R8 @9 P% N; M( Z& M$ K, D
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框/ @1 I: g( m! Q1 `$ s7 I
  134.         char *cp13="测试1613";! f2 E+ A+ a! @( N( i
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};8 L+ o& [7 x3 x' d0 V! w+ b) N  ?
  136.         int a3[3] ={10,20,30};
    - S" [3 `5 e5 E- |& I
  137.         double ra53[3]={11.23,12.45,12.67};
    ' _- Z7 j! q# i4 j% ]
  138.         char ca63[][31] ={"string1","string2","string3"};
    5 ]7 w3 X2 T4 R5 a6 i' @( `
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围# X4 C" o8 ~& [) V  x
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);7 _9 c4 q/ S+ p% k7 i+ M1 m

  141. * @2 f. f, F, E, u+ Y
  142. 0 l+ n; A- n8 M* e& U4 ~
  143.     /* Terminate the API environment */( j+ p/ c, ?( F1 u: q
  144.     UF_CALL(UF_terminate());
    , X: I0 k  |% m  \0 D
  145. }4 B. W, s4 z& I9 D, P

  146. , k, i3 P- e: _* {- c# @% h
  147. /*****************************************************************************
    & l; U) G6 s) |/ U, |8 I  C; y
  148. **  Utilities
    3 q( f3 T% H6 ^9 ]
  149. *****************************************************************************/
    * L( k) O$ w2 ^. O6 P
  150. * S  Q; S5 t3 j
  151. /* Unload Handler
    / \& U, ~6 \# o+ ^/ `/ x
  152. **     This function specifies when to unload your application from Unigraphics.+ b' ~. Z0 `! x/ w
  153. **     If your application registers a callback (from a MenuScript item or a; z2 A, J) K3 i
  154. **     User Defined Object for example), this function MUST return
    : |$ K0 n/ t- q, o5 l
  155. **     "UF_UNLOAD_UG_TERMINATE". */
    2 G2 F$ V* i( y3 r
  156. extern int ufusr_ask_unload( void )
    . s, H- ]5 T; Q& R# D  E
  157. {; J; x3 s" n! V* D
  158.     return( UF_UNLOAD_IMMEDIATELY );
    8 @6 M0 \& g: k# q! m, `+ J
  159. }
    5 S- s4 r* z9 E6 l7 S2 f; s+ \
复制代码

  F* j8 O' v+ X4 w* l# Y& z) p6 Z9 _
: }5 D4 l; A1 x3 P- |0 q+ H
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了