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

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

  [复制链接]

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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全. L: F4 h; c1 t9 G( c

  s9 a! _2 I; R: i, x
! t0 f7 X. x( ?$ L

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
! y* q; ~9 Z4 D3 ^# G; G
$ y" q" |9 h" U& D2 f3 h/ m& w
( y% e3 F! x& f0 ?$ e# W: y
7 M% H; Q. j! T/ d
/ u/ U1 A2 U* _* P8 U+ w
游客,如果您要查看本帖隐藏内容请回复
4 f$ r$ r" ?& i2 v& h. u5 s
源码分享:) z' X' |* G% l! I- c
& z, A7 j! R3 w5 f+ U( K& Z3 ?
  1. /*****************************************************************************9 s/ E  n. F' c* r: U$ {. J
  2. **6 U% N, m3 {3 H* V7 z% [
  3. ** ufuitest.cpp' c  n3 a+ w) ~4 b. R
  4. **
    ( d* T( J7 w5 p5 _1 U
  5. ** Description:9 E5 W. k) B" r. F- z% ^
  6. **     Contains Unigraphics entry points for the application.
    ( a7 ]1 f+ W4 m
  7. **
    : t2 j6 a  f9 P
  8. *****************************************************************************/) S( ]1 O5 _! _) i7 H3 }

  9. * {3 l$ I7 c" e/ X- g% E% A  u
  10. /* Include files */) O. ]8 ?" g. ]! p$ b8 w( |( {
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
    * T8 g& j( D( p2 k) d
  12. #   include <strstream>5 h0 Q) S6 k0 J& A0 Q
  13. #   include <iostream>6 I7 d, B; f( E5 i
  14.     using std::ostrstream;
    " g5 z; f7 I8 M) q* ^: f
  15.     using std::endl;   
    4 u; |) U( Y1 k* R
  16.     using std::ends;" D; c3 a& e; S7 T9 T! v3 H4 h
  17.     using std::cerr;9 R0 O- a4 l* ^2 c
  18. #else' j; j4 Q  y/ t( h
  19. #   include <strstream.h>% o: k, }; M# Y: h' u- s) n1 U9 G: ]
  20. #   include <iostream.h>
    6 K! A) C# f9 l
  21. #endif
    : q" y- u6 z8 a" x  y0 l6 s
  22. #include <uf.h>; x9 b" k) L+ i  a* I! J) Q- O
  23. #include <uf_ui.h>
    ; Q4 K) y. R9 w: u. j3 F/ z
  24. #include <uf_exit.h>
    1 ^8 ^$ ~7 |' ^/ T% M4 Q2 R
  25. #include <sstream>6 T9 k% C+ }- N  W" S# U

  26. % J+ ?4 Z6 r1 s: a8 }2 M* |4 t' f
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ) T2 [0 y3 d, Y+ T0 Y  N
  28.   c0 H8 A8 i3 i
  29. static int report_error( char *file, int line, char *call, int irc)
    # ?- z6 l4 X$ Z/ i% h6 w9 @
  30. {# R3 n! F2 b3 V9 |8 ^
  31.     if (irc)3 M  I/ S2 W4 n5 p
  32.     {
    ) H+ U4 [8 \$ @" Y
  33.         char err[133],
      s/ g1 f) T* {2 V% P- S# T
  34.              msg[133];8 I; y/ ^- w' o* b' D- R# A1 G; H: `  {
  35. 2 x+ N/ z1 J! Z$ K+ T
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",; t0 Y7 ~. H8 K% h+ Y, P3 p
  37.             irc, line, file);% x- @. G. ~- p) m
  38.         UF_get_fail_message(irc, err);
    2 U4 {4 M1 ~9 T( V. r3 p3 i3 y& L

  39. . x) {% ^: V1 k* j5 n; m
  40.         UF_print_syslog(msg, FALSE);$ C! w, z/ \% K- q8 C: U
  41.         UF_print_syslog(err, FALSE);( ^6 t% B6 O1 u$ U- V5 y
  42.         UF_print_syslog("\n", FALSE);
    # V1 Z/ X; Z& v: r( O! i/ U
  43.         UF_print_syslog(call, FALSE);& K$ I. M/ _  T
  44.         UF_print_syslog(";\n", FALSE);
    5 o2 Y5 n. \+ z9 Y8 `
  45. / N8 @, ?: z, u# d0 x
  46.         if (!UF_UI_open_listing_window())
    ! V' A8 D# [' A; c% V& ^
  47.         {
    8 `2 `0 B7 R: x1 I! W. q1 ]6 ^
  48.             UF_UI_write_listing_window(msg);
    ( M# [& S5 ^1 c, ~/ V
  49.             UF_UI_write_listing_window(err);
    , B+ j# e* X! l/ i% X. m
  50.             UF_UI_write_listing_window("\n");
    5 c# v" U5 @2 k. Q0 C4 ^9 Y: h( c
  51.             UF_UI_write_listing_window(call);
    2 g: ^4 X: H9 ^) c* a2 j0 ]0 r! i
  52.             UF_UI_write_listing_window(";\n");
    # ~0 g  K' ^% l
  53.         }
    - M$ C% \& {) @, U* r
  54.     }4 h, h6 T" q2 a% D

  55. & G; x1 _. z, B5 x% P
  56.     return(irc);, e2 Q  {7 B( r# [; o3 y
  57. }
    . m0 O( ]4 `5 k4 U

  58. * |+ r5 V: h( t6 |
  59. $ k, s; \) E- Q* Y; k# z* u
  60. /*****************************************************************************
    ) j8 c. \& w( ^: C1 ?0 u
  61. **  Activation Methods1 O5 r7 z4 w+ u7 @
  62. *****************************************************************************/
    : O# K6 d6 s% Q# \- Y
  63. /*  Unigraphics Startup
    * w2 l: _% ]5 ^8 B) J- ]
  64. **      This entry point activates the application at Unigraphics startup */- C; J6 _! H4 Z3 j- l* q
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen ), e( Z! l8 N" @% X2 f. N! a  \
  66. {
    2 ^1 Z# _& {' p! o/ r
  67.     /* Initialize the API environment */
    9 m- p. V& m5 y. q) F
  68.     if( UF_CALL(UF_initialize()) ) / T5 C& o2 a3 @7 a
  69.     {
    0 P2 ?: @5 K9 w7 y  e) h
  70.         /* Failed to initialize */
    % p) t; t; N+ L6 L$ M2 I/ O
  71.         return;
    5 b% m( Q/ S) Y: D9 X0 d/ `
  72.     }% V" x! L- |6 d, C4 {9 l7 ]! g
  73.     1 @- p6 ?0 g. l: y1 L0 E
  74.     /* TODO: Add your application code here */
    / M. n+ e3 p" ^! [8 z4 H  x
  75. 8 j/ C+ ?# q; I2 V. j2 @. N. o
  76.         //测试 uc1600 和 uc1601, p; D8 e1 x' Z8 C
  77.         std::stringstream  ss;
    $ Z# k( M+ u. a( r& H4 x$ t
  78.         char *cue = "PLM之家测试ufun常用的UI";1 Y8 Q- i" z! W( S7 y* t
  79.         char str[133] = "输入字符串";6 u$ W0 n  ~( |  x! X, f: B& I! G* O  T
  80.         char msg[133];/ Y2 c, h* A3 O9 }2 A& g/ o5 M
  81.         int length,result;
    ' F* Q& P4 Q; n
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    . W0 \& l- g; R& M& _
  83.         sprintf(msg,"%d",length);5 Q, i, E& q. [/ A9 D- _4 `
  84.         if(result == 3)
    # u, I# r) G! r, A( ?% Y  W
  85.         {
    ) y0 }2 ]/ G  D$ k' }
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上4 U. q4 q7 @8 D4 B! V
  87.         }+ b* L/ r4 Y, m( Y

  88. 7 n2 k7 R# n% ^: d: f# q$ v% M
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    . k  n. P, [9 ~  Z- x7 U* Z# _8 w
  90.         char *title = "测试uc1603";  `' t" [% c" A, i
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};) N# Q9 y' G# P9 r' X
  92.         result = uc1603(title,1, items,4);
    6 \5 ]+ [+ L) g3 c( h
  93.         if(result ==5)) m! V. ]4 [  M# P% `! I
  94.         {
    5 k& o& V& S% e3 k
  95.                 uc1601("这个是对应的第一个选项,创建block",1);
    3 R9 k* n( F2 [7 L6 }( u
  96.         }
    ! x4 s8 j: |4 ?; Z+ M
  97.         if(result ==6)1 j+ O, l1 P/ ]) `  {! W
  98.         {
    2 R9 _) j! D" f7 d2 [  l
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);; w7 t( g. ^2 v+ \* ^9 R
  100.         }" G+ W+ w9 i( q, _7 b6 _% [
  101.         if(result ==7)
    - O( w% w* L* z& v
  102.         {
    & Y. ^' C& C) M2 q1 Y
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);! s7 E/ n! f1 W! l7 R! F
  104.         }5 a/ J% l, ~. k7 |
  105.         if(result ==8)/ l5 s4 h& x7 }6 s
  106.         {- h' B1 c# O! m
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);
    " H% y- Q7 z8 P& i$ J) d/ C
  108.         }0 q( J9 e* X/ f! r

  109. 0 }1 |& t. @" A  E4 i6 `5 u! n" z
  110.         //测试uc1605--》用来创建复选框
    $ @1 e2 L/ P7 W" O- q
  111.         int selected[14];
    3 C, b  F  l; O$ y1 a; k, j
  112.         uc1605(cue,0,items,4,selected);
    5 [' x1 t$ n# l) U$ ]) `

  113. 2 t4 ?+ k# H/ v  J
  114.         //测试uc16071 `8 `8 {. I& L2 \0 H
  115.         char *cp1="测试1607";# i! z% Y8 b% ]6 k# N# p9 G
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};
    3 ~7 p5 i, `% |- `; H* q* \
  117.         int  ia4[3]={100,200,300};7 j* u) ~  h+ `& M. W: N9 k5 W! A8 L/ @
  118.         uc1607(cp1,cp2,3,ia4,0);" b) N" F+ l' `* M7 K5 l1 Q- a8 n, _
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框3 k8 ~% V7 O7 M
  120.         char *cp11="测试1608";
    2 U; Y; c& @5 r. X# V
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};: n; B# {: E3 H* Z
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int( B+ y5 A# E' |+ r) @9 r! m) E
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double' O# L, a9 K0 |$ u+ N) r
  124.         int ip6[3]={0,1,0};  
    ! X0 [6 \7 g# r
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
    $ o. O7 ^7 O+ D1 R2 d
  126. : w' t+ n# Y% p
  127.         //测试uc1609 -->用来获取real类型的输入框
    : e- k7 Q1 m$ |  M
  128.         char *cp12="测试1609";
    6 J' V* R1 F( r( [1 G  x8 \
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    1 p6 v7 e% f, g& ^( Y: n- S: y
  130.         double ra42[3] = {30.5,50.8,100.3};
    - A# g' ]( \5 ~$ e" d; N
  131.         uc1609(cp12,cp22,3,ra42,NULL);" g& [8 U0 z+ _+ Z& L3 o  k

  132. 0 ], T9 S+ i' r1 l1 j
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框  y4 v% |5 P) P4 H
  134.         char *cp13="测试1613";
    ) I! J; }  q0 m' q* v& ^+ U8 `
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};- B5 T% N3 o: ^+ J
  136.         int a3[3] ={10,20,30};
    - ]# f' O8 i* q) ~. O, d9 y3 z* ^
  137.         double ra53[3]={11.23,12.45,12.67};: {# K. A4 e6 t: i* b' E: v
  138.         char ca63[][31] ={"string1","string2","string3"};
    7 C' c( V; f, o. G/ D( X
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
    : r( {+ m9 p1 F+ L" D9 K
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);& W2 z: m2 z% T) x8 b5 ^

  141. / n% ]& a- {! z/ S0 Y

  142. 2 n, }( o# U+ ~6 l0 `! L
  143.     /* Terminate the API environment *// ~4 m# S& D3 o( h/ Z1 |3 y
  144.     UF_CALL(UF_terminate());) ^; Z. J- ^! Y7 A# F
  145. }
    " ?. C# m! x$ x; {* ]) ~9 ]6 }
  146. " P+ R4 ?& o5 M! a* G
  147. /*****************************************************************************! K2 X" H! M3 I! o7 _7 G% N
  148. **  Utilities
    5 h4 L( e/ P8 ]9 O  A0 d/ h) X
  149. *****************************************************************************/
    0 q) L& X# L8 d' R. S9 ]

  150. " X4 V, D$ \; ?( b! ]4 y! }4 e
  151. /* Unload Handler
    & A: N% |2 [* ^/ j2 m% D2 }8 C
  152. **     This function specifies when to unload your application from Unigraphics.4 `/ K, T* x2 ]4 D4 W
  153. **     If your application registers a callback (from a MenuScript item or a# L6 k$ h2 E" r6 t; w8 D( I9 z8 _6 H
  154. **     User Defined Object for example), this function MUST return" o6 d3 K+ E$ N% H9 h* X
  155. **     "UF_UNLOAD_UG_TERMINATE". */& ]4 E7 [: f3 L5 a
  156. extern int ufusr_ask_unload( void )1 k2 H" f* O7 G) x! O, h: p- \* ~
  157. {
    3 f) g; A: u- q
  158.     return( UF_UNLOAD_IMMEDIATELY );
    , L( G7 D9 u3 U: a2 z" t8 l7 a
  159. }
    * m, H( X$ h7 z# ^- P3 M
复制代码

! d: S8 h7 n/ A  j7 ^' t8 _
5 G8 A! ?7 I* Y$ ^' x# ]% e4 Z8 `; e, |
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了