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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
& S3 @' A7 [4 ]1 y! J 4 Q2 r) M! r- X1 m, a- }
5 C) E$ i7 Y( ]' d9 X2 S8 l' P$ x

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
( u# y* S: S7 t: k. B

$ y( u8 U/ a9 B2 O! f- f& H8 A8 T$ I+ @+ v
* d* x1 Z" R% ~" V% J# {9 ^. s
2 P! ~; _- g7 M1 [
游客,如果您要查看本帖隐藏内容请回复
5 k2 a/ {8 K! v
源码分享:9 v- ~' K1 t, ?# k. [3 ]' G1 {+ d
/ @- n; r" W9 v) p6 Q
  1. /*****************************************************************************' U: @( t( ]& {' t0 W/ W# y& e. @/ h! S
  2. **
    ! C) ]4 H( N0 @0 X5 ^2 c6 _
  3. ** ufuitest.cpp0 s# n! d" x) w* ^8 w: |# O: ~* T
  4. **
    # Z2 E0 Y7 E( g+ J, `+ Z" d' f
  5. ** Description:/ H. c% v+ M" ~: K+ v% E0 m
  6. **     Contains Unigraphics entry points for the application.' A5 J. \/ }/ h+ t
  7. **
    3 s8 A* I5 z9 M# J3 ^5 o# @) N
  8. *****************************************************************************/' p$ G5 V' s+ Y3 ~/ W: s
  9. - t2 D) n4 Y  e
  10. /* Include files */
    ' Z: i# f) M/ x% ?! r! [
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )* N& H' w+ N( o8 ^: G; R
  12. #   include <strstream>: T- V$ W' U/ _( e' {9 t
  13. #   include <iostream>, d" k6 o  V3 S; _* r9 ?, T- J
  14.     using std::ostrstream;
    ( M, {) v2 B2 x, t( n1 B; ~
  15.     using std::endl;    0 R% q( r, J, U! q9 J
  16.     using std::ends;2 J. J" s5 @' R$ P
  17.     using std::cerr;
    / U; P3 M" N" |  n
  18. #else
    2 ?+ c1 g8 l1 e! C; e6 z3 d
  19. #   include <strstream.h>4 h+ T( V/ T' n$ I* K- s
  20. #   include <iostream.h>, C6 C+ r! g+ P' e) v0 t% \9 r
  21. #endif: M+ s# N+ U6 H7 Y4 r! C
  22. #include <uf.h># O/ E$ J7 R/ t% ~4 m
  23. #include <uf_ui.h>
    ! l6 u/ s, x# T" A6 {8 \+ e5 G* Z
  24. #include <uf_exit.h>
    8 p" O4 I, ~0 C/ y) e( r7 [& \
  25. #include <sstream># L' J- W' C& u$ C# n
  26. ; N% l# ]' M8 q  E  b
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))# d2 D  q8 A4 P( B
  28. - w" N" Q$ ]7 i* H- Z" B# c
  29. static int report_error( char *file, int line, char *call, int irc)
    $ t9 [/ S& d2 N8 y5 f$ x5 g
  30. {/ [& Y: V5 }( T& m
  31.     if (irc)8 \4 b! C* T# Q" H# I5 E' ?- m
  32.     {6 P2 k* p* h) C
  33.         char err[133],* O5 t" ~* N* X; y" F
  34.              msg[133];
    2 b; O  ~0 A2 K
  35. . Z5 B0 q+ s5 ^* [' G4 f% O% Q
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    6 ^1 F7 M9 _: O  k" D/ s
  37.             irc, line, file);
    4 y" p: D+ E% n
  38.         UF_get_fail_message(irc, err);  X+ ^5 Q  g; Y; y* G, h) y4 t+ u* n

  39. , @' w* y# P# |4 S  w
  40.         UF_print_syslog(msg, FALSE);1 i# b0 v. }) }$ ^2 n
  41.         UF_print_syslog(err, FALSE);+ F% Y- I; q- v! W) W
  42.         UF_print_syslog("\n", FALSE);
    3 t  v! V5 I! w" g9 v8 b& Q
  43.         UF_print_syslog(call, FALSE);6 S- m3 ~* B  x% U. B, d
  44.         UF_print_syslog(";\n", FALSE);& E& _& G( S( w- y0 f
  45. # p3 m4 }' z$ t* h
  46.         if (!UF_UI_open_listing_window())
    # ]8 G' p5 C9 p3 E0 J2 A& S9 Q- N
  47.         {
    + F" S1 F# P4 K) i/ U+ P
  48.             UF_UI_write_listing_window(msg);
    * H6 l8 }% P+ C% r0 c
  49.             UF_UI_write_listing_window(err);& k) f, n: N: ?( X
  50.             UF_UI_write_listing_window("\n");, X+ ]+ [& Z$ V7 h- Q$ c' p# }
  51.             UF_UI_write_listing_window(call);
    6 E7 C8 p  w7 L, K/ N: c
  52.             UF_UI_write_listing_window(";\n");
    & |2 s: P  @* F5 x
  53.         }- ~- ]( y+ T+ K9 ?7 v) [+ r/ `
  54.     }
    : c' s  D* w# T2 v" ~. ^& H

  55. + N7 {% V# ^  n& L$ B" t4 E
  56.     return(irc);) _+ R7 \& {! W/ x; P& [
  57. }
    0 e" I5 p$ `( K- K. }

  58. $ G" U, L0 J  ^( H4 {2 U* w& M
  59. . ]# t0 y* A6 g7 U* n( y, C
  60. /*****************************************************************************
    : m7 \9 ^5 W, [
  61. **  Activation Methods
    : P2 }6 v8 ?, [* R3 v
  62. *****************************************************************************/* i/ ?4 M. w8 W' w
  63. /*  Unigraphics Startup' }, d+ ?! R" I( s% N
  64. **      This entry point activates the application at Unigraphics startup */* C- ~9 r% K$ Z+ t8 S( w
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen ); \" e7 C$ _! j9 t9 K% _
  66. {2 p% D: H& W- I2 |
  67.     /* Initialize the API environment */
    ( }; c- @- i5 |" O, @4 d  ]+ j
  68.     if( UF_CALL(UF_initialize()) )
    ! J% {  l6 E: f
  69.     {1 c  `, ?, y- I" b% }
  70.         /* Failed to initialize *// T! Q. P# U( u' b0 R* e
  71.         return;
    5 Y; E0 _3 j% r& T9 H
  72.     }- i0 d) f6 c, Z+ Q3 H
  73.    
    " ~3 x2 Q- M# i" L7 Z, L
  74.     /* TODO: Add your application code here */
      R$ Q1 }' K% V0 [  m

  75. 3 c- A% P) u5 v6 a9 w6 a0 [0 E
  76.         //测试 uc1600 和 uc1601* q1 L+ f% Y+ i% M* `
  77.         std::stringstream  ss;/ M2 J- o: b. V4 V7 @3 w
  78.         char *cue = "PLM之家测试ufun常用的UI";* }! |# w( ]6 Q; r) g. W: d
  79.         char str[133] = "输入字符串";
    5 Z! ~# s8 |" n4 i4 k( r
  80.         char msg[133];; x4 d2 k; s1 K* d$ x  Z
  81.         int length,result;
    # X8 ^- D9 X  }3 k# a
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    . O: F( ]$ W0 j# M7 j% |( H
  83.         sprintf(msg,"%d",length);+ Q" f, k/ b! S) M/ u, Y
  84.         if(result == 3)
    * B1 W& v- X! b5 u! J( x/ y* C* @
  85.         {. A- [# T+ h$ g- ?, M/ O. f
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上
    . ]$ {7 k# D3 F' L2 P0 q
  87.         }
    ( e+ H2 q( C, Q, E; h3 m9 T
  88. ; d& Y7 p1 H: L, P# P
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    ( `# ^) I7 z9 K
  90.         char *title = "测试uc1603";3 R( y& \+ m! S7 S8 n7 R
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};
    ; e. _( f3 [7 W* t
  92.         result = uc1603(title,1, items,4);
    : C4 L& c* G2 z
  93.         if(result ==5)" l6 h7 B9 y5 v% X8 [
  94.         {+ Y7 P/ ?9 B% c+ x, [2 i9 p, z" p0 n
  95.                 uc1601("这个是对应的第一个选项,创建block",1);& Y& I! G% j, y, ?/ ?" K! E! R6 q& d
  96.         }# d% o/ W% `! a- y: _3 P3 q
  97.         if(result ==6)
    " H' d* E/ m2 ~$ C4 o. Z  [/ ?+ y
  98.         {7 H" v& h4 A' {9 L! d3 g
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);
    : @9 v* B( i& n; i% k! S
  100.         }! |8 G! z$ K9 Z. F9 c7 Y2 T
  101.         if(result ==7)
      r% E4 Q: e9 I& B
  102.         {
    $ B9 O% c! ^& H
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);! e# f( S% T5 m( \: L
  104.         }! Q" ]8 ^! m4 `3 k
  105.         if(result ==8)
    2 Z; ~2 W/ z9 Z: h/ }3 d
  106.         {
    ( p* F) ]& \3 l# Y3 L
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);
    " `5 n4 F( r( t/ v
  108.         }
    ' b1 F1 s2 c% U

  109. 6 \" F. C! q" K( y
  110.         //测试uc1605--》用来创建复选框- E2 H; i* l* e' ^
  111.         int selected[14];9 s: G. t7 K; \  \
  112.         uc1605(cue,0,items,4,selected);; L" @1 I# u0 g2 |7 y* T* a' N7 o
  113. 4 ?, X' n0 x" v, W6 q8 ^! G
  114.         //测试uc1607: m/ t* k# ~7 P! I4 y
  115.         char *cp1="测试1607";
    ! z& T, J1 K) h8 {% P* j# ~
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};
    , y& `5 P) x8 |1 X! R% ~
  117.         int  ia4[3]={100,200,300};+ u( H1 e/ w2 q( ?# _
  118.         uc1607(cp1,cp2,3,ia4,0);
    + s; U0 s& a, M6 E2 K3 Z# u
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框
    6 }# |1 W0 {: ^$ I/ g
  120.         char *cp11="测试1608";- |6 q4 L* w( s0 E1 u2 m- @7 y4 Y
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};! {* _/ C4 Q8 f/ x# h; x+ O
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int
    9 D% ?' a/ X: `
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double
    ! m5 m0 h$ |' m$ O8 o0 L# b0 v. ^
  124.         int ip6[3]={0,1,0};  
    0 G5 O2 Q/ n. n# i* l0 s
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
    8 r% s, j7 H6 |2 X
  126. # m% b* D; ]/ t: ~. k% P  f. H
  127.         //测试uc1609 -->用来获取real类型的输入框. v2 k& c6 H3 _- P( z9 _5 ?
  128.         char *cp12="测试1609";7 M" v5 n1 _* c3 o' C) u, X
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};) M  h" e5 i8 I3 L1 X
  130.         double ra42[3] = {30.5,50.8,100.3}; 5 p: R/ n  W+ D7 U4 ?- A9 o
  131.         uc1609(cp12,cp22,3,ra42,NULL);
    + _+ P% P+ h+ m
  132. - }! |8 Z/ h! u/ b4 f
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框- u/ V! N% f2 ^3 Y
  134.         char *cp13="测试1613";: x( o8 H% R' O6 M4 H2 D8 k
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};5 u0 i) r4 K1 T
  136.         int a3[3] ={10,20,30};, S4 e7 ?% O7 ~: V  \" K' z3 [
  137.         double ra53[3]={11.23,12.45,12.67};
    7 \; d. v, L: T5 g9 i1 U7 j
  138.         char ca63[][31] ={"string1","string2","string3"};  _6 `6 i; v& I7 |, X! Y% J
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围" H/ C# `8 B/ R9 I# {; r
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);
    4 B" ?7 Y7 {2 v9 Z' ], P, T4 f
  141. 7 y( v( v& r% T

  142. " D. c( |5 ~, X4 B1 M
  143.     /* Terminate the API environment */
    2 |/ N* s  |7 N1 D
  144.     UF_CALL(UF_terminate());
    & s% B% X) C1 {4 i
  145. }
    : ~4 I. R2 e3 d& ^8 e5 M
  146. . \2 e1 d- D2 j' F1 A, I$ l
  147. /*****************************************************************************# T6 ~& C- ?5 t0 V' G8 S3 b, P
  148. **  Utilities! a& B; r4 T' V! @, S
  149. *****************************************************************************/
    0 F+ F0 H4 |! @. O; Q1 @& V. s

  150. ! _+ Y! p2 Y! w
  151. /* Unload Handler
    * g6 b5 z' m2 A1 R3 u
  152. **     This function specifies when to unload your application from Unigraphics.
    * W- P4 A5 @/ D7 x+ q" k+ S* O  @& V
  153. **     If your application registers a callback (from a MenuScript item or a. R) D* o( h1 {" N& T6 h" [% a
  154. **     User Defined Object for example), this function MUST return& Q5 `& J. y% s4 g
  155. **     "UF_UNLOAD_UG_TERMINATE". */! }  N7 E; f5 b
  156. extern int ufusr_ask_unload( void ); M+ z1 {( `' S* h2 [" ]
  157. {
    / j- w5 C, r( e' b! H1 ~+ E1 V
  158.     return( UF_UNLOAD_IMMEDIATELY );( y1 W8 n' Y9 W3 M0 `
  159. }$ x5 [1 o- d2 n9 V8 _
复制代码

0 \# ~; ~3 h9 U7 R& ^9 t( S# @% f" p$ L/ n1 W
7 ?/ W7 v5 x5 h* N8 T3 h
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了