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 48423 141

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
! L- K% U% \* o( ?' J+ R$ y* l1 B : ?3 n! g5 ~# t9 W3 O- q) G$ n- l, U
1 L( c. D* A/ H3 D3 b

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

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

& S  |; x8 ^& k* [& `* N

$ v% |" s* V) l2 W) N0 e9 i
: X" |9 P/ F0 w& `% h! Z7 P
# w  u' I/ x. u% w
2 z/ [2 h* d# V7 y; \! v
游客,如果您要查看本帖隐藏内容请回复

" _6 b8 m$ l9 z8 @  E/ `) I2 k源码分享:$ |9 q$ C0 _8 p# s* ^! \- O, `) o! ~

6 X: v$ @3 S; }' I: J' p
  1. /*****************************************************************************
    $ X0 p, H1 z8 U( O# M
  2. **$ ]7 Q9 n+ T3 L
  3. ** ufuitest.cpp
    1 b/ k8 p3 \8 K4 `. L; B3 F
  4. **
    # C' z; i9 ]6 v  G' Y, E3 s
  5. ** Description:% X' S  H/ B7 R7 ^3 d
  6. **     Contains Unigraphics entry points for the application.
    2 A$ W! p* v9 R3 e/ l$ M+ K
  7. **
    " c8 U$ }) e' [- h  m* w
  8. *****************************************************************************/
    + I" ?2 q4 x1 G1 |3 X3 z7 O

  9. 6 W; Y5 F0 U7 R7 C6 ~8 s
  10. /* Include files */: A; x2 z3 p2 P, @, ?$ c
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
    % S, A% |+ f  V1 d8 w/ _/ o$ I3 L# [
  12. #   include <strstream>8 j4 M$ ~( l$ y; ~
  13. #   include <iostream>3 Q  h# e& l+ o1 i) F9 n( q
  14.     using std::ostrstream;& P$ Q. R5 o0 I% O' W4 l
  15.     using std::endl;    * a5 b. N- I# K8 k9 h. i
  16.     using std::ends;8 S7 D8 }+ `% }" Z2 f& e
  17.     using std::cerr;
    4 E/ G6 s; e4 \6 P; {9 N  Q
  18. #else
    # r- k% b7 j  j+ W
  19. #   include <strstream.h>% K3 i5 m) \5 |5 s/ j
  20. #   include <iostream.h>
    * F' d/ k* A0 [0 `3 g
  21. #endif
    + {. g: O* }/ Z6 r
  22. #include <uf.h>
    - l- V+ n5 z. Q+ _' [
  23. #include <uf_ui.h>
    - W: m, d7 N. T% M/ R
  24. #include <uf_exit.h>
    ; k( N2 M' Y, S1 s; x# V5 }
  25. #include <sstream>
    % O3 c" r% m5 R  B

  26. ) j  a1 Q% F/ s7 E4 }7 Y
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    * e% ~' e3 J6 Z  G
  28. % O7 @! Y' n0 N' b
  29. static int report_error( char *file, int line, char *call, int irc)% [" }9 O) R7 R* c0 I+ n0 C
  30. {5 K- Z: n6 z5 }$ O5 w0 D
  31.     if (irc)9 L# N4 |& m( ~0 H
  32.     {6 Y. J# \6 o% H% W" L5 n
  33.         char err[133],
    2 u5 y) F1 h/ j9 e
  34.              msg[133];% X( ^( S! B5 {7 q& j
  35. 4 R! l4 ]! O9 c9 g
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    0 G0 _, ?' J' v. V5 I8 Z0 A
  37.             irc, line, file);
    # Z  a- c9 R. R$ A+ M0 p6 u: C
  38.         UF_get_fail_message(irc, err);' f8 g# _3 ~! \& j

  39. 9 [8 x4 f& F+ D! M3 ]' A: e0 k
  40.         UF_print_syslog(msg, FALSE);7 d* W. e0 t3 R2 e# V' e/ Q
  41.         UF_print_syslog(err, FALSE);
    7 L! N. h0 b5 g8 r0 D$ J
  42.         UF_print_syslog("\n", FALSE);3 M- B' i7 X# @! T
  43.         UF_print_syslog(call, FALSE);# I6 s3 W% b+ Z' Y# ]9 J
  44.         UF_print_syslog(";\n", FALSE);5 G0 A: L5 H, `; ], `4 m
  45. 6 U$ q; G9 x- S$ `
  46.         if (!UF_UI_open_listing_window())
    7 r3 h4 s* u( h# y4 }8 {  I
  47.         {
    5 q, }( `9 ~- R2 V7 u( c
  48.             UF_UI_write_listing_window(msg);
    $ z( w+ j, V# _7 [8 J1 B* N
  49.             UF_UI_write_listing_window(err);9 ^, ?! q; s' p0 R; W" k! l' |3 X" \
  50.             UF_UI_write_listing_window("\n");+ B* ]8 V* X- N* t! p/ @/ l
  51.             UF_UI_write_listing_window(call);
    0 l& U6 _3 Z/ E4 {
  52.             UF_UI_write_listing_window(";\n");
    ' r0 D3 E* [+ @
  53.         }
    . b) r7 [& Y# a' b- k5 \
  54.     }
    ( f% t' V9 A7 e' h

  55.   u) v. P( t) }3 C+ Y* g- }
  56.     return(irc);8 M/ E; h4 ^. f; y
  57. }$ D5 ~8 h8 g( b# j+ H
  58. ; U$ ]2 F* C4 l0 m! u
  59. 1 ?; @8 p9 w+ c- ]& ?0 J* Y
  60. /*****************************************************************************3 C% @! ]2 C6 i% H
  61. **  Activation Methods
    0 X" ^2 J; [4 j  c8 D( t# R
  62. *****************************************************************************/1 e1 S4 h7 m; b2 k% n; A: j8 A
  63. /*  Unigraphics Startup: r+ N- i9 a! [9 ^! C0 W, @- y" W
  64. **      This entry point activates the application at Unigraphics startup */' x  T0 ^6 C* z. l5 q. x5 K5 F
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )
    ! a9 S4 M0 o9 F0 A0 L/ ?
  66. {
    " W  f; R# o6 C
  67.     /* Initialize the API environment */1 \+ X, V5 K. [& a
  68.     if( UF_CALL(UF_initialize()) )
    9 ]0 r/ ]8 }8 z3 N; L
  69.     {) c6 p# j% D% \0 W/ t, o% d; m
  70.         /* Failed to initialize */
      X, }" z" l' z" V% |" T3 o
  71.         return;
    9 F+ ~: l' _- {. z
  72.     }
    0 R8 V3 ]7 p& u. b. _3 F* U
  73.    
    $ m/ X$ h% ~# s0 B4 T7 K% f& I
  74.     /* TODO: Add your application code here */+ H' B3 w3 i, @; Y. q% m
  75. 1 O0 E5 ~/ T  R5 ^  S( X0 E
  76.         //测试 uc1600 和 uc1601: m  _9 v! H/ B$ E7 S  h5 X/ V1 f8 E/ ?
  77.         std::stringstream  ss;& t. e4 q6 [( b4 h4 ^% l
  78.         char *cue = "PLM之家测试ufun常用的UI";
      U. m6 R: o8 M/ E
  79.         char str[133] = "输入字符串";
    8 W0 J9 {" Y: O, \8 P, e
  80.         char msg[133];4 x% K% e# `9 f6 f/ o) Z
  81.         int length,result;5 t" {& M- @: K- d7 s
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    / {  {4 {6 w' E
  83.         sprintf(msg,"%d",length);6 _, I3 V6 [: W9 k3 o6 [
  84.         if(result == 3)
    2 d+ `4 ^  q: q5 v' X
  85.         {6 I" l3 q) I) b3 n. B6 [4 q, ~
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上
    8 q% c5 T( C( d8 e% e5 ^
  87.         }
    ; @; ]9 u& H- g! P
  88. # ^2 e: x  `0 C# ]
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    $ R" W! E" I% E) [5 t* L! s, i  a/ d0 V
  90.         char *title = "测试uc1603";) e6 N: u& z  K
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};
    8 k/ S( D+ ^- b5 \8 m: g$ [
  92.         result = uc1603(title,1, items,4);1 q, [* t5 N" z
  93.         if(result ==5)- J; n( m) Y( N$ g8 g
  94.         {4 N% [! M' r; p2 s, f5 X/ v* @  g" G
  95.                 uc1601("这个是对应的第一个选项,创建block",1);# \5 i5 w7 f7 Q$ R+ E8 E
  96.         }% @( }$ ~# T! ~! `( W
  97.         if(result ==6)
    . i- ?, e% N! T; m9 g
  98.         {
    & N  W. K- m# `& |
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);: k( Q( Z9 {; x/ O) j  l
  100.         }
    4 Z# x! P. e) w! [5 h" a9 \
  101.         if(result ==7)
    # w! G* o( `: g( W
  102.         {
    ! c9 h$ |, d: K8 p4 k6 _4 N" y& q
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);$ m: T' ^' q7 k( r( T+ X. l. c
  104.         }. E! p! I9 K/ |1 F- ?, ~1 L1 G
  105.         if(result ==8)
    ) V. W( {1 \% V6 b
  106.         {& }! n) |" x$ F0 H& H
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);
    7 P2 O! j: n2 w5 @. U
  108.         }
    # P% x# R1 n+ H( C+ y

  109. 6 p3 v# h% |. r' v) B3 F" N
  110.         //测试uc1605--》用来创建复选框
    $ P7 ^3 Q, Z) ?. l8 }2 P# S
  111.         int selected[14];
    $ e6 B" N# y  O: Z1 v6 ~
  112.         uc1605(cue,0,items,4,selected);
    1 c! B% H. k5 b* z& y/ u! ~9 d+ G

  113.   u+ o$ l4 ]) U; u
  114.         //测试uc1607
    - Q: X6 }8 T9 V9 N0 M
  115.         char *cp1="测试1607";
    2 Y, G6 H% d# ]: g
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};
    ! M9 H2 G9 S- F/ v1 u
  117.         int  ia4[3]={100,200,300};6 n5 G, X; m8 U9 _
  118.         uc1607(cp1,cp2,3,ia4,0);
    ( [$ P) T) V$ c6 I0 h* ]
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框6 B* J, c& d9 d. r/ I5 p
  120.         char *cp11="测试1608";
    % R6 K; b; K6 C+ E
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};9 |) O; S, E; |" i
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int
    2 \1 Q9 d- Q# u# D0 \
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double# z* S/ x7 j% N5 N9 O+ s2 k
  124.         int ip6[3]={0,1,0};  : y! p3 j# \' q. g6 K* T* }
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
    ' a4 K3 R; I* t  Q' N
  126. ' n0 ]$ G8 u& H7 j, K
  127.         //测试uc1609 -->用来获取real类型的输入框9 r4 }7 A0 g: B( d' K
  128.         char *cp12="测试1609";
    ' C& L1 u0 {% k+ ^
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    ( A. s1 S" p. `7 U
  130.         double ra42[3] = {30.5,50.8,100.3};
    0 F6 N% e  u2 T( Y1 E1 r  s, D4 i
  131.         uc1609(cp12,cp22,3,ra42,NULL);
    , V& R4 ]3 d% }0 ^8 p# b& p9 R. `
  132. * I! p. D) g5 D4 a( o* H2 x! N
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框
    $ x' ?- I. ]% Z$ e
  134.         char *cp13="测试1613";
    , \( _: ]. s3 q+ V# ~4 R9 f
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};
    $ b) D8 s4 _1 A$ |3 A+ s
  136.         int a3[3] ={10,20,30};
    ( H( I6 Z3 M* u; _2 K
  137.         double ra53[3]={11.23,12.45,12.67};& ~; W. Z! E: F& H
  138.         char ca63[][31] ={"string1","string2","string3"};7 V8 `) F1 B% j- W( u( I' R7 T
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
    " K" l" }7 M  Z3 ~6 ]
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);
    8 X; [  s3 V# a! j6 `4 a) f5 l& w
  141.   e6 A# _" `' l! j5 o

  142. . X9 L' Q0 T/ T' M; t
  143.     /* Terminate the API environment */7 K( M. F3 D. c3 H/ H1 L
  144.     UF_CALL(UF_terminate());- _4 u% O2 W  P
  145. }
    * t, @7 \0 g+ ^& Y+ ~2 B

  146. ! v. ]) N- L) I( w& j$ g
  147. /*****************************************************************************
    6 \. h( _9 L' W1 s
  148. **  Utilities
    " v4 z: Q3 c0 |/ e
  149. *****************************************************************************/4 S, B& F6 t. [+ h/ @8 e

  150. . V; ^1 ~# ?6 w. `4 t
  151. /* Unload Handler
      j, W, B5 s9 G( _- Y, k
  152. **     This function specifies when to unload your application from Unigraphics.- {% d9 Y& u: B# `
  153. **     If your application registers a callback (from a MenuScript item or a/ r* J3 C6 g/ T0 w4 w" L5 _; I
  154. **     User Defined Object for example), this function MUST return: `7 C. d  r& U- B1 w' S0 q
  155. **     "UF_UNLOAD_UG_TERMINATE". */
    # y- h; _7 r, i
  156. extern int ufusr_ask_unload( void )
    1 M# h" J, F3 x/ @5 H  ~4 j' t% @0 K
  157. {
    + W4 y* e; g4 c; q
  158.     return( UF_UNLOAD_IMMEDIATELY );
    - Z. s  c* `/ N- ]0 n' |9 L
  159. }5 D! }, V8 x& f# W  ^& q# q6 u7 k8 {, x
复制代码
1 z# S. g1 @2 [) q. c& s% b+ w

5 P: ^2 A! N- N! X6 _% O3 w# I
. ?* e* i5 k# \2 A. B4 j+ A( V
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了