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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全4 s- K9 B9 Z0 L
2 q5 U( ]5 G5 T$ @5 [
7 ?$ {0 u+ R- o9 t

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
4 L) R6 M2 K: l2 @
; {6 X% L- C: i" U; Y

- K: u4 ]8 M5 I; W
/ d$ k( v. D; N# U9 K* Y8 w% m: ]
3 I% h' u* G9 C2 G2 h3 Q. H
游客,如果您要查看本帖隐藏内容请回复
0 A" m0 m  Z9 a
源码分享:
" k2 f( ], J6 ]# N3 J" B8 E1 l6 M0 J9 v3 k& M5 h/ m" O3 M8 Q, ?
  1. /*****************************************************************************+ \: j: E2 Z3 N4 M* Z8 ~
  2. **+ _5 Q; x# c/ `% Y$ X# S3 a( F
  3. ** ufuitest.cpp! T8 p; p( w! w
  4. **% F  N2 F+ m2 |
  5. ** Description:6 L3 a+ O; O( Q  X
  6. **     Contains Unigraphics entry points for the application.0 r' }7 p) [" b) j0 w0 N) F
  7. **: Z8 K  U" W% i: }! d2 R$ j
  8. *****************************************************************************/2 s  U1 y* A4 [* Q9 Y6 I' w

  9. & ]( U! r; V2 X
  10. /* Include files */0 y% ?! s9 C( r) Y/ p
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )3 R9 A' l3 M+ J6 b- y
  12. #   include <strstream>& T! |& U% e* W; O4 O
  13. #   include <iostream>
    - P) x/ ]8 a6 q$ b# l$ H5 p- _5 o
  14.     using std::ostrstream;
    5 @4 `$ L" z" j$ `- C+ U* V* {
  15.     using std::endl;    0 p' G' Z4 ~" ~" I% z1 [; p" _
  16.     using std::ends;
    & v* N. H/ l9 q1 _! j* D- E8 K, ~# `
  17.     using std::cerr;6 V: k0 M2 x2 j) s, h& F
  18. #else( [6 E2 U- @) h
  19. #   include <strstream.h>
    ' D! Y# e# p+ I( O' W& P/ a: |! N
  20. #   include <iostream.h># Y% |3 @5 D8 d' w
  21. #endif8 J; Y& m, O, H9 U8 s; C8 i
  22. #include <uf.h>
    2 f: @! H* v' ]7 V; o: v7 Y  z
  23. #include <uf_ui.h>3 o8 l0 D2 k8 E8 x$ V
  24. #include <uf_exit.h>
    ' S$ Z1 o7 @) {- K3 h) H5 d
  25. #include <sstream>: x% l/ }& m4 A9 E- R) W
  26. , z* P$ c7 O6 p9 g/ @
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ) G& _3 k8 }; ?. x
  28. * E( C3 o6 n$ v! V! r) q
  29. static int report_error( char *file, int line, char *call, int irc)* P6 T; Y# y% H
  30. {# d0 U# L9 V- j( o" s8 j
  31.     if (irc)
    : q. E4 _! U3 O( d
  32.     {
    % W& i# \( e" `
  33.         char err[133],, Q4 t# h2 D3 Q6 R2 J9 I2 b) d
  34.              msg[133];9 P: k1 f* s! w/ f3 D

  35. 1 m; [7 m6 {9 v& k% g' I
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    * E) }% `8 o/ _
  37.             irc, line, file);* A- {. M+ B  [3 ~$ i) l3 W
  38.         UF_get_fail_message(irc, err);; H% E2 S( X3 n3 P# F, j% Q

  39. ) u3 {" ?4 `6 F# Y. k% g! H/ R8 e
  40.         UF_print_syslog(msg, FALSE);
    - R1 F; c# q. u; m. Y" t& [  R
  41.         UF_print_syslog(err, FALSE);! i6 J  n. f4 N+ V- C) `
  42.         UF_print_syslog("\n", FALSE);# _0 x( I; f, _/ H5 m  \% R; o
  43.         UF_print_syslog(call, FALSE);9 |# S3 p9 X- x
  44.         UF_print_syslog(";\n", FALSE);) m  {1 K/ W& l9 O  a3 v3 w2 e' t

  45. 1 C8 i# E- H" t$ t" |$ D
  46.         if (!UF_UI_open_listing_window()); q6 {% ~( v! @5 i
  47.         {
    0 T) \! H( r( f' b1 ~3 I% f
  48.             UF_UI_write_listing_window(msg);
    1 h" x4 P$ z' i" i! M- C4 x, S
  49.             UF_UI_write_listing_window(err);
    2 A$ W3 W% [4 ?* O* `/ z) t
  50.             UF_UI_write_listing_window("\n");  h4 T& ]: ~+ h5 O
  51.             UF_UI_write_listing_window(call);
    ' F1 L# _+ Y1 k$ m3 A. Q% O
  52.             UF_UI_write_listing_window(";\n");6 q3 t) ?4 _& V# n
  53.         }
      `1 H5 T4 h! z; f& {
  54.     }2 d# T% O" j& X3 p( H5 O6 w

  55. 9 w$ q* p: n0 `4 O; B. w+ `8 z( \
  56.     return(irc);
    ! u3 f1 F$ E/ ~5 g3 ^
  57. }1 T6 T' Y$ v* F$ N8 J
  58. ) F% |/ V7 |7 z$ _7 ?/ Z
  59. 5 p; @1 }5 n% b9 ~* m, `2 X1 b
  60. /*****************************************************************************
    9 P* U: W9 R& C# l( \6 z9 L# d
  61. **  Activation Methods& U! |& }. k# W- t  |' A
  62. *****************************************************************************/
    5 k$ {2 X* l5 L' j9 }/ a: d
  63. /*  Unigraphics Startup
    ) E4 Y1 H4 N. Q0 _* k; d! c
  64. **      This entry point activates the application at Unigraphics startup */
    % s7 p( ~$ b* N
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )/ K% S# W& Y$ D; h  l3 M
  66. {, u# h* G. S$ h3 ~3 n' S
  67.     /* Initialize the API environment */
    8 x6 L; \! }: E9 w6 ], H
  68.     if( UF_CALL(UF_initialize()) ) ( x  @1 ]$ s9 Z1 x2 z$ z
  69.     {
    2 z! I2 ^. Y! h" T: G9 c2 {
  70.         /* Failed to initialize */& n' A1 m5 x2 ]' S, c
  71.         return;
    ! S4 k  f4 R# o8 g6 ^
  72.     }) L  k& K  X5 O$ x; U3 h
  73.     6 I8 L8 g0 \: Z. c% x# ]: c3 w
  74.     /* TODO: Add your application code here *// D. l: Y. @4 D9 L

  75. $ X9 L0 V' _  i! ?' d
  76.         //测试 uc1600 和 uc1601* r7 Y  N; H) ?
  77.         std::stringstream  ss;2 |' q" Z$ h, f" G8 D9 f
  78.         char *cue = "PLM之家测试ufun常用的UI";
    0 r% q- A: T% B; c0 h; U+ z
  79.         char str[133] = "输入字符串";# R0 A% u. u  O* g6 a5 A5 w
  80.         char msg[133];8 m( X- q3 k! G0 F
  81.         int length,result;
      [  z; L( P: l' ^9 j! ^! O$ `
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    3 f: e6 Z! I+ b; k% e7 B: ?
  83.         sprintf(msg,"%d",length);& {: Q9 G) X3 I4 o0 x& k) n
  84.         if(result == 3)$ Y' s' t! K/ ~1 I; m, P' f/ ]
  85.         {
    7 c! [; R( j7 S6 |- f
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上. d2 a7 e% {1 {8 C" b/ \5 |
  87.         }( `, s" Z, `2 N% r7 ]: M

  88. . C+ _' t0 @% ]7 d  }
  89.   //测试uc1603 --》用来创建带有button的系列按钮1 v/ C8 H- \) U0 Q9 z
  90.         char *title = "测试uc1603";* L6 h# g2 t7 R/ t; c
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};
    0 O' F% v, R" O0 L0 k; T/ F+ `
  92.         result = uc1603(title,1, items,4);$ w' R8 z3 i0 ~. a) b
  93.         if(result ==5)  f0 R" x* \% i$ E) [* ?
  94.         {
    . ~7 Q5 Z! k( _8 n2 l
  95.                 uc1601("这个是对应的第一个选项,创建block",1);
    ' @* P; a: C! U* Q* W/ q% R, Y
  96.         }
    . f5 y8 `2 c6 b
  97.         if(result ==6)5 w4 O% z* I; n: i  O; s' n2 i0 R
  98.         {6 F( Q/ C0 b7 }( f
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);; Z' W1 b/ Z0 t4 V4 }$ q) _' Z
  100.         }, I1 G" k$ \! |. G. I' @
  101.         if(result ==7)
    / u% N3 }& v2 T. a
  102.         {
    : Z2 s8 h& G; v  I2 L! X. y
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);
    2 C( ^" s' M: q6 |5 d
  104.         }
    3 g, `2 F/ Z  N- s5 u
  105.         if(result ==8)
    ; b3 T$ g3 R% }* _! E8 t
  106.         {
      Z# M+ ]4 v& T7 w& v$ o4 n$ b
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);
    4 Y0 R1 K: }! J
  108.         }
    / Y" V  A& C; k. G6 ?+ B
  109. : b: G$ O# {8 {# z$ S
  110.         //测试uc1605--》用来创建复选框
    & x. K+ g! n+ r
  111.         int selected[14];8 t8 G$ m8 j6 Y, P7 f
  112.         uc1605(cue,0,items,4,selected);
    ! }; v1 e7 V2 ]) u$ A7 V  e# p
  113. - ^% `2 M7 ^  \5 n% b9 X
  114.         //测试uc1607
    * R! s* }  Z7 s) s
  115.         char *cp1="测试1607";2 I0 V7 ~8 p2 N0 W1 J- ?1 g2 x& l
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};
    * U$ E7 g. P& I- J% {
  117.         int  ia4[3]={100,200,300};# |3 w8 W1 k1 @) [$ N. J
  118.         uc1607(cp1,cp2,3,ia4,0);: C* p/ a! b. Z) `; A5 b7 S" n
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框
    + M: u/ y0 b, \4 J: U
  120.         char *cp11="测试1608";
    & w6 ^6 P4 l/ g2 i. B
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};- E* c' D$ V9 f* B
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int* H' Y3 @( S- e, U4 ^
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double
    : x. N) P" [8 a+ Q* D" z
  124.         int ip6[3]={0,1,0};  % W$ q+ G# z6 f1 _* M9 w
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);" A+ O% z' X" H, G& k
  126. 6 n" u) G. V) R8 r0 k9 F3 f
  127.         //测试uc1609 -->用来获取real类型的输入框
    ; J6 S6 V7 R! T3 {: B( s% M$ k, d
  128.         char *cp12="测试1609";% x# }$ \. s1 W2 y; y
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    8 g8 t2 S( }5 u
  130.         double ra42[3] = {30.5,50.8,100.3};
    ; V" C7 v7 ~5 k( F2 R
  131.         uc1609(cp12,cp22,3,ra42,NULL);' X9 t! f+ U) g  W% h/ p/ O/ {

  132. 9 t/ u! I, X/ G8 Z# O3 w4 r
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框
    & Z6 e; N) q& A3 S, E5 d
  134.         char *cp13="测试1613";0 D/ h- i1 E2 G2 P
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};, j" w+ V5 _# j2 c. h; d
  136.         int a3[3] ={10,20,30};$ V9 C1 H+ r) q7 [& i& ^1 b' K
  137.         double ra53[3]={11.23,12.45,12.67};
    9 s! {. Q! D: R* Y) F! _
  138.         char ca63[][31] ={"string1","string2","string3"};. @- h2 ]/ j& u5 A( ?; y
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围+ g: L3 S% a+ |! }( h% O
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);$ Q0 [" X& F+ N  j

  141. / Y' k+ S; Y6 f5 O

  142. 2 m- C8 g" R! }  S) r& O4 n) _4 |
  143.     /* Terminate the API environment */# p: @5 u! V" W
  144.     UF_CALL(UF_terminate());
    . O% n2 \* ~+ \: z2 A& n) m0 e
  145. }9 I, ]7 s6 \8 V
  146. " E$ i# |$ m/ d5 v
  147. /*****************************************************************************
    , q7 Y; ~0 [! E  I0 d3 O# P
  148. **  Utilities
    ; S% S% O2 _, a9 F8 |/ }6 W1 b5 ^
  149. *****************************************************************************/4 Y9 N/ X  b* I" g6 u9 U
  150. & L) v, _$ x" D% t
  151. /* Unload Handler
    , z/ F2 }3 J# E% R  s
  152. **     This function specifies when to unload your application from Unigraphics.) U3 L( |0 C& W& R7 R
  153. **     If your application registers a callback (from a MenuScript item or a( J( y3 E) h1 ]* K, h& R, m
  154. **     User Defined Object for example), this function MUST return' L( X: |; e0 ]! Y1 o3 U
  155. **     "UF_UNLOAD_UG_TERMINATE". */1 W, Z$ ?' [3 {
  156. extern int ufusr_ask_unload( void )
    5 F. w. @4 O: G8 y9 _& X
  157. {6 p: ~0 A; y; F
  158.     return( UF_UNLOAD_IMMEDIATELY );# F$ c. U$ J; u: H$ \6 K( u: L/ A
  159. }
    . W8 L% \& [& n7 {
复制代码
% T: {3 T" @! A7 M2 J  S# m

7 K- ~  U4 a5 Y/ R1 N  X- q' m5 f. A3 d. @
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了