PLM之家PLMHome

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

2013-11-14 17:46:31 33162 131

  [复制链接]
mildcat 发表于 2013-11-8 21:29:41 |阅读模式

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
% m2 G0 L+ G! R; X5 v( L, n
) {( J# Y# X  z2 \6 ]  l* S . Z$ ?/ g0 H4 h: x/ J; S- y

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

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

  Y! M9 B6 \7 x. J: H# F0 G
" P% Z, R( l* T. M; k2 W) J
' {$ Y( r8 ~9 S* {; R
; u' D% ]0 @" \7 u+ ?2 q( a

# I2 @% q! I+ c
游客,如果您要查看本帖隐藏内容请回复
1 B0 q4 q/ L! d) V) H) o6 c6 W2 J
源码分享:% D6 S" |3 c0 w6 |

4 j4 s& b, q% _0 v# Y" P$ [
  1. /*****************************************************************************
    ! S. V2 F$ e  p
  2. **' [' }6 R5 c0 g$ q' H# @
  3. ** ufuitest.cpp4 @( o8 k. {+ [: }& v, j+ Y
  4. **& I! l0 _7 _/ x$ f- w" h
  5. ** Description:/ P+ T' D  T/ B, v3 j
  6. **     Contains Unigraphics entry points for the application.
    7 J4 r& C6 j9 O/ y
  7. **# u# x7 W' R4 d; L
  8. *****************************************************************************/# M% i/ U, e9 f/ z5 [1 y$ e/ t

  9. 7 w6 v5 E0 _( B3 a& H( p" ~
  10. /* Include files */! b& C9 ^2 ]7 e/ i& b
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )4 p9 J& C( g- x$ F; l
  12. #   include <strstream>
    ) P6 n$ e! Z5 ^1 X: ?. U# b
  13. #   include <iostream>2 i9 B  w' [7 f
  14.     using std::ostrstream;+ |" N7 {& l' @9 E* }" K
  15.     using std::endl;    + C. d% m1 Y1 y# m9 e9 D$ g7 P, d
  16.     using std::ends;
    8 ]8 x) i  o; v' g# h, Y
  17.     using std::cerr;
    8 b0 u+ L/ d) U. `
  18. #else1 C  _3 N9 w& L  y8 U3 F/ ~
  19. #   include <strstream.h>; b: n1 _5 r  G. p
  20. #   include <iostream.h>
    0 ^6 T5 z6 B' P1 q/ K4 s
  21. #endif
    8 g9 W, D! V  e
  22. #include <uf.h>
    1 B: i& [3 W' C( a* h
  23. #include <uf_ui.h>' ~2 h" S$ l7 J# \
  24. #include <uf_exit.h>; H, ?4 ]! v6 p* w/ T. h/ {/ k# `
  25. #include <sstream>
    & P5 j5 h% q1 N6 R2 }5 O! _0 B* q
  26. , O6 M9 q3 e9 |. [# p, h$ W
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    % l8 c( k* D/ J2 B* c

  28. " }: N. [) T6 L- q/ @1 C$ s
  29. static int report_error( char *file, int line, char *call, int irc)
    ) S" T9 `9 o; T9 p9 f
  30. {1 G% A$ Z4 s! H; n: x0 I
  31.     if (irc)/ b' S1 ~4 I3 X$ X: k
  32.     {9 ^7 I! N  T% V& d3 J. a
  33.         char err[133],
    4 g1 E7 D: [# P' u; D+ X
  34.              msg[133];
    3 D3 y8 a2 w  h) x0 t% I
  35. 6 I6 J8 @2 K5 O0 K7 ]
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",1 n" {+ i$ h# s/ ?) ]
  37.             irc, line, file);
    ' h; y& z1 s. @% B" f" h7 s6 W: ~
  38.         UF_get_fail_message(irc, err);
    ! C- ]3 J4 N5 ]: y

  39. 8 a7 x/ r  }! L8 ~- |, T
  40.         UF_print_syslog(msg, FALSE);: Z! q* C- B& N) p! j6 r
  41.         UF_print_syslog(err, FALSE);, q1 ?+ y3 X, [; o
  42.         UF_print_syslog("\n", FALSE);* b& b9 g0 D" d
  43.         UF_print_syslog(call, FALSE);
    . o) I9 q7 {% E
  44.         UF_print_syslog(";\n", FALSE);
    / V$ Q3 P' L$ y; r% h& g+ r: b
  45. * z* X6 F8 ]5 @
  46.         if (!UF_UI_open_listing_window())/ M1 s' T6 Y: s6 `3 |. R6 ]
  47.         {
    % E( z/ ~; @9 m9 n3 Y
  48.             UF_UI_write_listing_window(msg);
    3 _# K6 q. u9 `" E- l! d1 E
  49.             UF_UI_write_listing_window(err);# r+ g$ M, ^# t. O+ \) p. j/ k+ R
  50.             UF_UI_write_listing_window("\n");
    1 m- j4 E0 @5 c+ d/ t: e9 j9 z
  51.             UF_UI_write_listing_window(call);
    ! Q: A' u5 h/ M* h! u
  52.             UF_UI_write_listing_window(";\n");
    6 Y4 t) t* I2 S7 a* N, ]
  53.         }7 K! D' p/ \7 [) m& g* r
  54.     }" d) f+ T4 s+ ~7 f0 T
  55. % s# T2 L! F' s
  56.     return(irc);
    5 |! V" l# r/ o$ K* q2 X5 E8 G& l) t
  57. }9 V: D9 f& d. l1 @

  58. 7 S3 K- m* g0 J
  59. 6 a  D. G/ g4 I" C. I
  60. /*****************************************************************************' N4 `" p+ S  m  P
  61. **  Activation Methods
    . @( x3 W7 Y4 u8 c
  62. *****************************************************************************/
    $ }# |0 O- @; ^0 R: r2 t: }
  63. /*  Unigraphics Startup
    ; I& L# B! j( \/ S# m
  64. **      This entry point activates the application at Unigraphics startup */
    % Z% M( q7 S! J! \) _. T
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )
    & U2 @( V$ x) ^# I; ?; Q
  66. {
    $ i7 o9 ?0 m3 r2 ?( a1 l& s
  67.     /* Initialize the API environment */
    4 B0 v4 D" F8 s! j3 u7 K
  68.     if( UF_CALL(UF_initialize()) ) 2 H# H1 ?" p# J: b+ o' }6 @7 P
  69.     {
    3 f6 H* B* u* u& U
  70.         /* Failed to initialize */
    4 Z9 g7 ^, J* v6 N( m
  71.         return;
    & r/ X$ [! H" u* M; Z  w/ u
  72.     }/ x7 x0 M0 z  f" V1 ^+ I6 z9 j* T
  73.     # d$ M5 o- g! @! y1 ^
  74.     /* TODO: Add your application code here */5 B% B! u0 O& u' F4 J2 D

  75. * r& B8 ]9 D8 q, i' l; m: f7 ?
  76.         //测试 uc1600 和 uc1601
    , p# i* t) x+ g+ [$ ?
  77.         std::stringstream  ss;
    9 G( B( M: K" Z3 S$ l
  78.         char *cue = "PLM之家测试ufun常用的UI";2 s, V" I- X8 N
  79.         char str[133] = "输入字符串";* ]6 G3 e4 ]! h& L# w0 d/ b8 {; i
  80.         char msg[133];$ k- b0 h7 g! X5 d; t/ j6 y
  81.         int length,result;
    5 v# T6 E7 y2 D' v# j+ ]9 K, N
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    " H7 R4 ~) R4 w: \
  83.         sprintf(msg,"%d",length);
    9 C5 O& w8 G2 b$ @/ b& ]
  84.         if(result == 3); a4 w+ I) K* b" i8 M6 Y
  85.         {
    . U- U6 ~! `& {# J0 k
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上7 l9 Y5 z8 K5 I6 L; T3 Y% q" N0 K
  87.         }
    % p% ?. `2 J$ b2 U2 X4 C
  88. , U* H" e  }/ r: i
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    0 z9 B4 M3 Z5 P* h6 t$ c9 Z1 V
  90.         char *title = "测试uc1603";# `$ W- t; s2 M) X/ B
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};
      D+ o  ^+ L6 L& [& ?# E
  92.         result = uc1603(title,1, items,4);0 {* \" b6 G6 c9 m5 \2 s
  93.         if(result ==5)
    : I% E, j0 P, [. ?5 `% P
  94.         {9 R8 w5 N8 ~; e( i+ |7 c6 [/ ~
  95.                 uc1601("这个是对应的第一个选项,创建block",1);
    ' X, J2 Y! \7 E" j
  96.         }/ B4 k% s" q0 t/ w
  97.         if(result ==6)2 ?/ L* U/ r' P! E3 z* ?: G
  98.         {& k+ {# s5 a/ N6 j4 q$ J
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);/ p5 _7 m- ]2 T; d* P2 q
  100.         }' C0 S; E2 r5 m; P5 e/ l7 P
  101.         if(result ==7)
    - I6 a* u2 Z$ D! q
  102.         {# u5 \5 P3 C5 C7 e( y% ^
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);4 n. i) T! K& b' ]4 |
  104.         }7 y) |/ P+ ^. k3 d$ u  p
  105.         if(result ==8)
    0 `, L- H$ Y& _% E8 q3 D/ f5 o9 [
  106.         {1 C/ B9 }% W7 X! p
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);" |7 r- d  _0 S) m$ ~
  108.         }+ K$ M( i, G8 U. u8 G
  109. # P! ^& X% |$ U3 X) _+ s
  110.         //测试uc1605--》用来创建复选框
    0 `1 @% K$ J* P6 o2 ^6 l' m
  111.         int selected[14];
    : R- X: v4 u0 d4 T
  112.         uc1605(cue,0,items,4,selected);
    : t5 ^- o) j: F7 l" B

  113. : I! t# {: y) Z1 K
  114.         //测试uc1607
    2 I4 b7 p% ]4 x
  115.         char *cp1="测试1607";3 y. B! F0 L$ N8 ?& w$ A* N( j4 n& s. l
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};' \  B' U) {" w9 p) d
  117.         int  ia4[3]={100,200,300};
    6 U0 P6 {4 I/ D; n  K
  118.         uc1607(cp1,cp2,3,ia4,0);
    ! P: ~' u2 X% D. ~# l( a
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框
    4 c& H' p9 J, E  T9 _
  120.         char *cp11="测试1608";
    7 Y' X5 _) C" d. q- F) N1 U- m
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};
    . k; l* ^7 d$ {
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int9 L7 P- c" J4 u0 R
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double! o* a) N% X  x& ^" H# n$ U' E
  124.         int ip6[3]={0,1,0};  
    ' o$ l, C6 n, B5 D7 ?8 t$ F: w  P
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);0 p- M" d" S# C! V: C
  126. 3 @  X1 x1 W( M& N  f% \+ V
  127.         //测试uc1609 -->用来获取real类型的输入框: }$ T# p. c( B) X
  128.         char *cp12="测试1609";
    % O1 R+ E1 m3 h. e' u$ u
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    6 L0 f3 o$ [; U" y) @
  130.         double ra42[3] = {30.5,50.8,100.3}; 6 O( ]) E! v! K# u- w
  131.         uc1609(cp12,cp22,3,ra42,NULL);
    9 w; b" b$ q7 K  Y

  132. 0 `) ]. Q& E! C  W( {1 U- e
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框1 l1 l" d! C! j# X& M* M) _% {
  134.         char *cp13="测试1613";
    1 r' k5 L: M7 z( `
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};/ t2 f- L6 s. t6 i2 L
  136.         int a3[3] ={10,20,30};) p5 a5 E8 d: D" m% S* l1 R; ^  z
  137.         double ra53[3]={11.23,12.45,12.67};
    % }7 q: b7 l( s- C" M- X! ~
  138.         char ca63[][31] ={"string1","string2","string3"};. C( ?0 t; C0 F) V; m* Z& `
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
    , ?! Y! x1 b' `1 v
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);
    6 l2 i. V( J& C1 D; w+ R& W( |

  141. : u+ ]9 A5 A) s8 w8 Q. Q

  142. , N7 Y8 q2 \- ]6 H4 P2 y* N
  143.     /* Terminate the API environment */- [" S# |% x5 \! A# P1 k
  144.     UF_CALL(UF_terminate());$ o$ X0 H- ~7 n7 A
  145. }' z: b2 X! a3 y! b- p- \2 j
  146. ; g# a/ Y$ U6 @2 \! ^8 _: E
  147. /*****************************************************************************
      D* i7 V* ]' w5 {1 f3 B( b+ d
  148. **  Utilities
    6 d; ^9 D: X7 k& e7 i5 V
  149. *****************************************************************************/; U- l8 @# Q" k1 k4 ^  V3 ?# Q
  150. % O5 u$ P% p) c- G- K
  151. /* Unload Handler
    1 c. V  ?+ D/ d. ?  Z% H
  152. **     This function specifies when to unload your application from Unigraphics.; {- Q- j. X+ M4 p/ D0 p& B
  153. **     If your application registers a callback (from a MenuScript item or a
    . i, @) ~& B) T3 d: n0 k
  154. **     User Defined Object for example), this function MUST return# z7 J1 M/ o4 ]9 t* t# v6 b6 I/ w
  155. **     "UF_UNLOAD_UG_TERMINATE". */
    ) z- B4 u; B/ A: _% N+ |
  156. extern int ufusr_ask_unload( void )1 I6 L5 w! g5 w- D9 O
  157. {2 p# N0 I& |/ M( ~% c7 g9 z1 r
  158.     return( UF_UNLOAD_IMMEDIATELY );4 w0 n4 u" E$ }; ^$ B9 c
  159. }
    7 F7 G% I3 v. o# J  \9 d9 n* _
复制代码
  B3 V5 p, x5 n* m- N: f* q
" M% g- l4 C% u$ \

' H- ?4 x( j  u( T( I1 N
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复131

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
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

:
管理员
:
mildcat1985@qq.com
:
未填写
:
http://www.plmhome.com
:
&amp;amp;lt;-sina_sign,2662245355,45ea3138,9-&amp;amp;gt;[color=DarkGreen][b]PLM之家[/b],专业的NX,Teamcenter学习视频网。[b]PLM之家科技[/b],承接二次开发,视频定制,实施培训等业务。[url=http://www.plmhome.com]www.plmhome.com;[/url] &amp;amp;amp;&amp;amp;amp; [url=http://www.plmhome.net--&amp;amp;gt;]www.plmhome.net--&amp;amp;gt;[/url]欢迎联系我们--QQ 939801026[/color]

主题315

帖子538

积分8172

图文推荐

  • Tecnomatix 二次开发入门教程 4 设置图标

    Tecnomatix 二次开发入门教程 4 设置图标效果如

  • PLM之家NX插件V8.0.0.0发布,支持NX1847版

    PLM之家NX插件 ============================

  • 安装最后一步报错

    安装teamcenter12,使用网上的破解方法,但是到最

  • tecnomatix和teamcenter如何共用一个PLMLic

    tecnomatix和teamcenter如何共用一个PLMLicenseSe

  • 关闭

    站长推荐上一条 /1 下一条

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部