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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
' J$ z! P+ ^9 U ) K( l# J9 Z6 V5 E5 R3 `/ c
6 Y7 L  S  x4 D, b& d

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
6 L# r( x2 B  G; g1 O. c! O
0 j/ n& V8 [4 ^7 b/ d: g

2 z" g0 {  y! x) c5 U/ t! [8 u2 \9 n% y
! S4 t* d5 g, p& `; ?
游客,如果您要查看本帖隐藏内容请回复

5 h7 c/ h. v( w/ m# d源码分享:) S  ?2 S. p! }

  F' |+ d9 T7 J7 T
  1. /*****************************************************************************1 C: S  Q5 L$ B  x, F) g3 h. r/ V9 `) e
  2. **+ r8 V* y3 m: ~- y- ?9 ?
  3. ** ufuitest.cpp" a' l6 x3 u# L( A4 `
  4. **' S8 K3 y2 |  j2 o; A
  5. ** Description:
    $ d" ~& p+ [0 ?' G# Z" K* x  w
  6. **     Contains Unigraphics entry points for the application.
    1 ^* _8 ~' D* ^/ ^; t9 y" w
  7. **
    : `, }) u# F% n& t5 X
  8. *****************************************************************************/
    - F7 o0 O5 C. c
  9. % h+ x, }6 o' |; H# e% P! W; m6 s+ l
  10. /* Include files */
    , ?5 e! C, p* a2 _) V: e
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )" }8 g. Z) s. u$ I6 Y
  12. #   include <strstream>% w" E$ z2 ^* u, }# |1 V
  13. #   include <iostream>
    7 m: m% }. l5 G# V
  14.     using std::ostrstream;( |% l* i+ s5 E$ v6 r
  15.     using std::endl;   
    ' _# t2 ?" S. u" F/ C% a0 q  @' g
  16.     using std::ends;( s  b9 B. s5 o# l/ h' U( {
  17.     using std::cerr;5 L) r% z( z8 ?5 e  i
  18. #else
    / ?/ C) S, ]: g8 _
  19. #   include <strstream.h>! f3 }/ O# C% w4 L) b
  20. #   include <iostream.h>
    / a/ X8 z: S. i: p! j+ @0 f) S
  21. #endif
    3 {3 }0 X8 b, Y5 w: I% A% u
  22. #include <uf.h>9 X* Z! y& d5 N% J) U
  23. #include <uf_ui.h>0 Q; E9 u! U1 E6 `1 j, u' {* w
  24. #include <uf_exit.h>3 [7 m$ ~; E5 m$ u1 a, y$ D
  25. #include <sstream>
    2 ^  S4 e9 J) e5 v

  26. * u) O1 T! J! k3 p+ P, G: P
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    . A; Z7 B) X2 f

  28. ' h$ G  d2 O; ^$ Z/ f5 Y7 H
  29. static int report_error( char *file, int line, char *call, int irc)% H2 n5 D/ q4 `+ k9 Y+ S& X
  30. {0 V- t3 ^2 T( Z/ J
  31.     if (irc)' D/ Z9 D) g+ Z" Q9 ^
  32.     {4 ]+ l, h5 h. T+ c" c2 ?
  33.         char err[133],. g5 m! y9 q$ e* G6 s- ^
  34.              msg[133];
    0 ]" Z+ p7 B9 H' c! {6 T6 g; ^
  35. . s% I$ G( B7 i0 A5 _0 y
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",: y* p6 i, q& \) T" Z- ?
  37.             irc, line, file);
    6 @! Y/ m5 a% p- v- |
  38.         UF_get_fail_message(irc, err);& ?: r2 l1 o( |
  39. 7 t7 N. h! O3 m5 i, W. C
  40.         UF_print_syslog(msg, FALSE);
    0 z  O3 F9 e% d1 q9 T+ |
  41.         UF_print_syslog(err, FALSE);$ Q9 a  n7 |  x
  42.         UF_print_syslog("\n", FALSE);7 F: V$ W. Q' \
  43.         UF_print_syslog(call, FALSE);) c! ]+ h* a3 w1 [) ]3 U
  44.         UF_print_syslog(";\n", FALSE);) X) C0 B$ M) n: X  l  @- O
  45. 1 G3 u8 d. \# |' l; Z$ f5 d
  46.         if (!UF_UI_open_listing_window())2 E# c; R5 F/ z" j
  47.         {% c5 S. X5 y9 [6 g5 S1 r
  48.             UF_UI_write_listing_window(msg);9 e/ S! B4 ^/ R5 w. D* {
  49.             UF_UI_write_listing_window(err);, g6 K6 a( S3 ?6 G
  50.             UF_UI_write_listing_window("\n");
    % Y9 b! `5 Z  G5 Q9 J1 B: d
  51.             UF_UI_write_listing_window(call);
    + G4 c; m7 g  R' U, ?, {
  52.             UF_UI_write_listing_window(";\n");
    # C: A, p/ s$ K. l4 j; J# O
  53.         }+ Q3 W# ?) l; t! E
  54.     }- x+ ?) g+ l  D  c

  55. - [$ W4 Y& y: p& h
  56.     return(irc);2 R' N/ I8 Q# m1 Q/ Y7 }# Y
  57. }# b( T# v. Q. e) j

  58. ( w. k# @$ v: Y  s2 _  i# K

  59. / O9 j4 h  f( R+ o& Z. U
  60. /*****************************************************************************
      b# s8 m7 d( @2 C( R
  61. **  Activation Methods
      k5 N% U% C& H
  62. *****************************************************************************/
      Z5 h6 q, X. j5 l
  63. /*  Unigraphics Startup
    6 z" u4 d6 @* G- X& _5 p. F2 Q
  64. **      This entry point activates the application at Unigraphics startup */
    : R* K; c  h; S1 j2 F% ]
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )
    # z; u8 g9 G$ b9 o
  66. {/ D" b; d6 I# R6 {' L7 p
  67.     /* Initialize the API environment */, X) o+ O( u* a
  68.     if( UF_CALL(UF_initialize()) )
    2 E2 P5 K% b9 B" X$ X
  69.     {2 Y, b8 Q$ g& b2 Z
  70.         /* Failed to initialize */6 w; @- v" ]5 t3 c
  71.         return;
    ! o) V& K. o. o( D& }- m2 G1 \' w
  72.     }
    ( [6 d: p2 D% P1 ^- X
  73.     % K9 y; r2 W; ?+ d. q; ?0 Q2 x
  74.     /* TODO: Add your application code here */
    * m/ m! o4 l  e& P6 y% g1 o# d
  75. # O' B# q2 @' f) U9 A
  76.         //测试 uc1600 和 uc1601$ J, N" P; Z# j* b
  77.         std::stringstream  ss;0 J# C6 l8 Z- C
  78.         char *cue = "PLM之家测试ufun常用的UI";: d4 O; K* C; ~  v  g! S3 |9 e4 }1 m
  79.         char str[133] = "输入字符串";
    " h, w. H& Q1 [7 O9 v2 X/ ]1 h
  80.         char msg[133];
    8 a: v( z* l& U& I1 M4 X
  81.         int length,result;
    8 T* g$ \$ Y0 N2 g" K6 r% ?
  82.         result = uc1600(cue,str,&length); //获取输入的字符串. q( o8 z9 ]$ h  @" z
  83.         sprintf(msg,"%d",length);
    & s$ \/ p' p/ m7 D: L* p" c& i
  84.         if(result == 3)$ W0 N4 f3 Y4 ^# c3 Y- k
  85.         {
    2 |+ j& A0 C) o8 U4 \
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上
    ) G& P. m3 X% g# Z& ~; f
  87.         }% [  ^- e: @# ?: o- ~7 i5 R
  88.   a" C  X/ v0 M( z- M/ G
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    9 Y6 p+ p% W& m9 h5 ~( f
  90.         char *title = "测试uc1603";* L$ g, V) ]+ A4 h8 Y
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};1 P6 c5 K, F; b- {5 u5 \
  92.         result = uc1603(title,1, items,4);0 @: x0 G! t- e3 X" a
  93.         if(result ==5). s3 }5 @+ b/ K+ F, z
  94.         {1 S, ], c  n; r' k* B& {  I
  95.                 uc1601("这个是对应的第一个选项,创建block",1);4 e% g6 b4 W1 U# b
  96.         }  Y! U6 v2 r1 d' L: V
  97.         if(result ==6)3 p$ g" m. \; }; N3 D& |! C& p
  98.         {
    & l% s* X5 G( c# K$ ?
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);2 Z3 B4 N' H2 Q! l' ?6 E
  100.         }
    4 h$ \' p9 t* N# j% r
  101.         if(result ==7)
    8 v" c1 o, l! M
  102.         {$ _5 D) l# Q$ V& e" o7 {
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);
    ' K% `! l! y1 w
  104.         }
    - `' r8 M" |+ W
  105.         if(result ==8)
    * Z7 Q# H! l- {9 V) F- z! S
  106.         {, Q' W) \7 O; h& U4 ?  g1 r
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);
    / b! A& y; O. @, y3 w
  108.         }5 ^" S0 B' E+ x
  109. 0 L( F! f9 ]  D
  110.         //测试uc1605--》用来创建复选框5 {- V6 O: P' i- @
  111.         int selected[14];
    ' E4 K+ I- J. W
  112.         uc1605(cue,0,items,4,selected);* Q8 r$ h6 ]% S$ Z& ~; h. J0 [

  113. 6 \# Q  N' S' O4 I0 p
  114.         //测试uc1607$ o# a; n6 A5 g9 W6 Z* h
  115.         char *cp1="测试1607";3 T* {. B+ t. m3 d: {3 @
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};; M1 O! v/ Q1 }+ g+ E4 E6 C
  117.         int  ia4[3]={100,200,300};' X; u0 c; @* u- [
  118.         uc1607(cp1,cp2,3,ia4,0);
    : z; K( [& O# A9 g
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框
    5 x1 F$ A# e  K7 d" U
  120.         char *cp11="测试1608";$ x5 N) O( \' X* N, \: j
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};! G& ]8 L/ U, a
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int4 W$ e% j7 o+ X5 J: z4 d0 ^( y
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double  e8 u$ F$ N  n- O, R  m0 w
  124.         int ip6[3]={0,1,0};  
    3 c% O4 N9 I8 }& N% j# [$ W
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);. O. \3 C6 [4 A' a

  126. ; r% l. s0 y. a4 L2 ^  v3 v: x* Q6 c$ E2 a
  127.         //测试uc1609 -->用来获取real类型的输入框$ ^) Z& z$ g" r, D$ w4 X- M
  128.         char *cp12="测试1609";1 p# I4 F3 y1 g/ x  ~
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};9 z; Q# n9 \8 M7 v) ]
  130.         double ra42[3] = {30.5,50.8,100.3}; : o% c& ?+ {- A& a
  131.         uc1609(cp12,cp22,3,ra42,NULL);2 z1 t2 Q% a$ i  e' e+ ^
  132. * ]( a' i8 g; L/ A4 `4 {, _
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框
    2 b. A( H1 [: b; p1 P( J4 S' ~
  134.         char *cp13="测试1613";
    & }( z2 H" q( I
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};
    % l! t" z7 h+ o& s3 `
  136.         int a3[3] ={10,20,30};: q* |" W6 h) j/ U& F& ~" A
  137.         double ra53[3]={11.23,12.45,12.67};
    % y& b, y+ v; F: f4 \
  138.         char ca63[][31] ={"string1","string2","string3"};4 `% c: t: G, e7 _
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
    , k2 f; n' h6 e' P0 I8 C, m4 R  u% |
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);7 `* \$ K- [$ o3 f
  141. % c4 ~' ~( |3 W  \. ~9 a4 a

  142. 8 {+ t& [. {8 Q, O* ?- ~
  143.     /* Terminate the API environment */( K6 N6 U; _& a, g& j
  144.     UF_CALL(UF_terminate());
    0 K: V' w; j6 v0 _0 ^& N$ L
  145. }$ Z2 h- P4 Z# c# f: v  R0 M

  146. 9 m5 v' @: e3 W
  147. /*****************************************************************************, I9 w5 _1 {% b1 j! D
  148. **  Utilities1 ]4 A7 s) U) d; v5 @8 s
  149. *****************************************************************************/0 O- ]  x* Q6 l8 ~; j
  150. : a. t5 V; ~/ z5 [8 [# g
  151. /* Unload Handler# l& R1 l* R" ?0 I, S
  152. **     This function specifies when to unload your application from Unigraphics.3 W% [0 g' E  i: g- F2 u+ _, j3 \7 ~2 e
  153. **     If your application registers a callback (from a MenuScript item or a5 b3 }. I) N5 d9 r
  154. **     User Defined Object for example), this function MUST return
    9 `, S# o& b2 v# z; V4 f3 _
  155. **     "UF_UNLOAD_UG_TERMINATE". */# L- f; @  v6 D% W9 Q* L
  156. extern int ufusr_ask_unload( void )1 \# U: p  X) W* o! Z: o# S
  157. {4 l0 T* J: K, [5 Z1 W
  158.     return( UF_UNLOAD_IMMEDIATELY );4 i5 u; E7 c6 g9 f& S4 e0 X. p( D
  159. }3 f6 K8 a+ M* v6 s- H# C
复制代码
4 B  z4 p; p8 {; r5 q. L

' {6 @: r! l( B! c, P* y4 r2 N# J. z4 l2 p2 R
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了