PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

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

  [复制链接]

2013-11-14 17:46:31 49045 136

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全( d9 a; _, i/ m$ x

( D4 h& s* U, H9 e
! s, b$ W9 a( v# r( ?

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

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

+ ~. }8 l3 O1 I* Z1 l/ Q3 w

8 M1 \/ q+ @& y# [
* P* Y! z8 k$ o! A; j" G8 A/ t  ], ^2 E+ }; e8 H% G

0 i! m1 t, F5 p2 {8 K  a) T
游客,如果您要查看本帖隐藏内容请回复
8 |+ i1 P$ G- A' j8 ~, I
源码分享:
6 Z- X. Q- ]1 N5 o& u. s  ^) S3 Y6 o. {% _3 y! F' E' j/ @
  1. /*****************************************************************************5 g0 \/ G$ U( a+ s/ e1 z1 t
  2. **
    , z& {* n) ~, V
  3. ** ufuitest.cpp
    # E1 l  h% ^, p3 ~% D, U3 w
  4. **+ R+ a0 T3 q8 z8 A' C. }, l
  5. ** Description:
    # Q8 W5 \3 C5 \7 m, v8 J
  6. **     Contains Unigraphics entry points for the application.* z/ z+ v% B& [/ J9 o
  7. **
    ( ]7 X* w# ?- @! i
  8. *****************************************************************************/
    & D; R- V: O7 l/ e: ]7 i. F1 }
  9. + ]1 L( [5 G4 d
  10. /* Include files */. q. W- c! I4 V* M( b# M& v
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )* u( Y1 s( L% @6 \
  12. #   include <strstream>1 ~& B, d2 O+ L( D& }
  13. #   include <iostream>! e2 C) T* E' l9 O9 ]  _
  14.     using std::ostrstream;8 f& I3 o$ n) Y( f' W' r$ Q
  15.     using std::endl;   
    9 Y0 b+ l( b* w& W; j
  16.     using std::ends;
    % t" q7 F  W7 Y7 m) f% p
  17.     using std::cerr;
    " g9 S) |! [3 ~' C0 T0 n. |
  18. #else
    8 N$ U$ B6 h& m4 M3 ?7 Y- {# u
  19. #   include <strstream.h># f# c- T* _' M' i! |% h" ~
  20. #   include <iostream.h>6 u1 i2 j. [/ h* h, M  ?" g2 N
  21. #endif4 Q* V( i4 c+ {1 y4 K! S: O
  22. #include <uf.h>
    / P& f  x) ~4 _. U4 @3 n
  23. #include <uf_ui.h>' h4 Q- Y- s# `" x5 T
  24. #include <uf_exit.h>+ y) z: D" `; S. C* m
  25. #include <sstream>1 Z7 d2 t8 T7 t2 S+ x

  26. 0 V" D+ W0 h! M9 b$ b- |+ U
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))- ~, V+ ?- g* D2 ?9 O
  28. 3 x, h0 q( I! k$ Z
  29. static int report_error( char *file, int line, char *call, int irc)
    5 o2 V3 P1 f1 ?% k" k, c/ B& N. @
  30. {0 Q! S: H: I# M* @& S- i" H
  31.     if (irc)1 J  s  K% a1 s3 N% c$ [) o- ?8 w: E
  32.     {
    - c) |( g, l; }5 }# \
  33.         char err[133],
    0 A- z  |* B  I: S  T% M
  34.              msg[133];2 y) i  s% U" j7 L" g; Z8 r7 O

  35. % k. W3 z7 j: O, T- a$ H6 W
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    ! j0 _0 K  O0 k5 p
  37.             irc, line, file);
    0 o2 v, f2 g  T  {$ L
  38.         UF_get_fail_message(irc, err);
    ! t1 z) @) }3 {. e* q$ |. ^9 A
  39. 3 O$ ~* X% t3 N
  40.         UF_print_syslog(msg, FALSE);3 C7 u+ _: m! C8 h
  41.         UF_print_syslog(err, FALSE);1 s3 E. s, e5 D
  42.         UF_print_syslog("\n", FALSE);3 d6 z- z# k5 w
  43.         UF_print_syslog(call, FALSE);
      i+ m& d' v# ~$ }/ p
  44.         UF_print_syslog(";\n", FALSE);
    8 V3 o, M( v( I" ?3 o

  45. 5 G! h' f$ `+ H- }1 [
  46.         if (!UF_UI_open_listing_window())" n" r; x6 B# ^' S+ W
  47.         {
    % z8 v! h. e. P* l( F- [3 q$ H' x
  48.             UF_UI_write_listing_window(msg);
    2 W! o. J% W. L/ s' |: l# A
  49.             UF_UI_write_listing_window(err);
    % W2 F2 m. M$ K4 a4 ?  E3 v
  50.             UF_UI_write_listing_window("\n");* s4 K! O' _) x5 ]; I
  51.             UF_UI_write_listing_window(call);+ m+ `* \- W( k) r, T/ i: @
  52.             UF_UI_write_listing_window(";\n");
    # A" r2 j5 M5 G% C- |0 K
  53.         }
    9 @. q! v5 @. |3 M$ ?1 [9 N. \
  54.     }0 v/ d5 L" \5 h$ {2 m
  55. 3 \& n( G: S* ?" A6 }; }) f" W
  56.     return(irc);
    - C9 _- W3 H  ]( ^$ L% z
  57. }, l+ z1 `: t/ m+ Z; q. @7 q/ e. h# |
  58.   I) w7 w+ l& [( r/ u# s

  59.   _7 D* @& j8 G7 {; F. y
  60. /*****************************************************************************/ _, n) E! R/ ]6 I
  61. **  Activation Methods
    4 h# g* z: f/ J  k" c" x
  62. *****************************************************************************/" A0 k3 R) X6 d& W% p( J" j
  63. /*  Unigraphics Startup
    + K8 R, l4 x, G! A
  64. **      This entry point activates the application at Unigraphics startup */  Y$ T2 N! o+ D% }/ B
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )1 ^  z# e. }" o+ T  I
  66. {
    ; C1 {7 h& O. S3 d
  67.     /* Initialize the API environment */
    1 t3 m* }; n: U+ E1 B
  68.     if( UF_CALL(UF_initialize()) )
    ) h: D6 M. E9 O0 J
  69.     {3 J) O$ `! ?/ k7 A2 C* _
  70.         /* Failed to initialize */" v4 M8 N8 ?7 G" }- b
  71.         return;0 S  X0 ^) ]' G
  72.     }, N; U! c& M8 u+ X4 b) ^
  73.     ! B/ b: ]9 s4 ]: y
  74.     /* TODO: Add your application code here */2 f& q7 M" m3 v# k% Y* O

  75. # H, P; o& q$ ]! ^9 F* b
  76.         //测试 uc1600 和 uc1601
    2 A+ ~+ |% v" {: T
  77.         std::stringstream  ss;' X$ F# y$ ~: f7 p
  78.         char *cue = "PLM之家测试ufun常用的UI";
    " z9 d# L3 p/ i) E
  79.         char str[133] = "输入字符串";
    - t7 I, i9 ]0 ^+ H
  80.         char msg[133];
    ; ~0 ?/ M( M/ Z3 F3 i, D
  81.         int length,result;
    5 G5 E/ t% {. P( ~$ z
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    % R* r$ X% g% K
  83.         sprintf(msg,"%d",length);
    ; E8 S% Y7 ~, c9 P- M( ]- @
  84.         if(result == 3)
    1 f1 G7 H4 Q; D# C
  85.         {% x, ?8 o' v8 F8 ^
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上+ @% o- d9 a6 {) O" a
  87.         }
    6 t% ]6 P# R( R+ y

  88. / E, R# P* u: U
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    : a; ^: a9 y+ {+ J
  90.         char *title = "测试uc1603";
    6 Y  b9 o. D" ~, B0 s2 F0 z- ^
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};3 e! L0 r" z. F& [7 }& f8 {. f
  92.         result = uc1603(title,1, items,4);
    3 H3 u/ t! [3 G! \5 D
  93.         if(result ==5)$ \6 V& P8 U1 h* X+ w6 g* f% G
  94.         {5 }2 b- |& _2 n; `
  95.                 uc1601("这个是对应的第一个选项,创建block",1);
    - v/ o+ m2 ^7 t: Q% u" B8 S
  96.         }& Q: n6 z- ^3 M
  97.         if(result ==6)/ N1 A1 K3 L0 G  A2 z/ w8 |7 k
  98.         {8 D, H: ?, s) ^/ a' ~
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);; g9 c# D0 Z/ a8 [: @* s1 ^1 j! Z$ N1 Y
  100.         }
    4 ^) B$ B$ C3 b" K
  101.         if(result ==7)2 j& X# U5 w. L! w' ?$ Z7 A
  102.         {
    4 j3 ]# J* D8 [
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);* o  @0 u  c% A2 x/ Q& O5 J
  104.         }0 ?+ ]% ^- x) G8 C
  105.         if(result ==8)6 h; e, c( T) f7 u! {" I! d
  106.         {
    : {2 E5 A0 T1 O3 b' Z
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);
    $ M& z# v/ ~" u' l5 [7 U2 {/ h; r
  108.         }
    - H1 E5 n/ D7 x; O9 I' ~9 [
  109. $ d$ L3 w) `' ?
  110.         //测试uc1605--》用来创建复选框2 @( |) ~! v/ X
  111.         int selected[14];
    & F7 {6 M# j6 e' L& ]4 A
  112.         uc1605(cue,0,items,4,selected);
    * J  T! [( l0 j4 s" a9 j9 t2 p

  113. % c% d# C4 X5 a7 G7 g* I
  114.         //测试uc16070 R; }- |8 G3 f* D
  115.         char *cp1="测试1607";1 }: q% S& w3 ]" L" t8 \
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};$ m; K2 [, P$ c3 n6 Y8 h
  117.         int  ia4[3]={100,200,300};  f/ {. }% F, D5 R7 m8 Z
  118.         uc1607(cp1,cp2,3,ia4,0);
    # V' a& _% ?4 ~+ `) a
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框: S6 n$ T4 C% M, t# Q- P( C
  120.         char *cp11="测试1608";! U/ }  j9 K4 B/ o7 S" ?
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};
    % z9 j" N% l9 t5 g. g
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int9 \5 G  }: b8 c  n3 P
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double3 T% `2 f( `$ t7 B" y7 M0 K
  124.         int ip6[3]={0,1,0};  
    9 w1 P! q6 Z( x6 a! `2 w% Q
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
    $ [% T: ^/ N' ?# h7 V. Z$ @

  126. - f/ q5 u' C+ s% _  l
  127.         //测试uc1609 -->用来获取real类型的输入框
    - Q% X9 a2 V) S* n
  128.         char *cp12="测试1609";% j' c0 ^9 j6 t0 r( z/ @
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    9 p4 X6 x# P+ ~
  130.         double ra42[3] = {30.5,50.8,100.3};
    * o8 r; C- v* X1 p8 ]
  131.         uc1609(cp12,cp22,3,ra42,NULL);7 E7 }  B- |4 O2 v9 T

  132. 9 m, U8 r+ n& `
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框6 X/ }, W: A6 ]3 v+ |' g( t5 p( w
  134.         char *cp13="测试1613";
    4 J" R$ v2 d% V) t
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};
    9 W- i' M5 ~4 [
  136.         int a3[3] ={10,20,30};
    . `' X- i! @$ [. J1 G% \9 ?
  137.         double ra53[3]={11.23,12.45,12.67};
    ; M: X: ]% I  w& a
  138.         char ca63[][31] ={"string1","string2","string3"};
    # |4 @) @4 p  R6 F9 {- t
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
      u( q$ e/ L7 T- {; z
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);
    * ~" q, }( _3 ]5 u
  141. $ r* B# v) G' u, s& s- y
  142. 2 E& D' |, v9 h' T0 [' x( O
  143.     /* Terminate the API environment */
    " P9 _. ]9 ~3 `' W
  144.     UF_CALL(UF_terminate());
    4 L" t) Q+ q) H( i
  145. }
    # u" c# U5 {  K3 o3 m7 b( x$ c' P

  146. 2 G4 d! a0 ~$ E6 X6 J& V
  147. /*****************************************************************************
    , ~9 }& }, |6 \' K" m( v+ q6 w
  148. **  Utilities* l2 {9 \6 p& j1 O$ k9 C4 }
  149. *****************************************************************************/, V! ~6 H3 q* p: q/ C1 f, y
  150. - @9 v# K* Q, m  z+ Y+ k
  151. /* Unload Handler
    6 l9 c0 }* @) `  u. D3 f% g
  152. **     This function specifies when to unload your application from Unigraphics.9 |1 o8 w$ l. o0 g) M& y8 E. U
  153. **     If your application registers a callback (from a MenuScript item or a
    / |+ Z  G) t( X3 ]* C, }4 n% D
  154. **     User Defined Object for example), this function MUST return
    : _. B- T5 j: K) M: q
  155. **     "UF_UNLOAD_UG_TERMINATE". */
    2 B# Y9 Q/ @) e' ]
  156. extern int ufusr_ask_unload( void )+ I7 V# A: E3 F3 Q
  157. {
    9 O: V; [* F& w! A
  158.     return( UF_UNLOAD_IMMEDIATELY );7 @% w8 ?8 j; J
  159. }4 q' s# `! o! X2 j$ h, P
复制代码
7 g& |% i  x# K2 n# V5 X

  y+ m' U9 a  Y* Y( s
( g, N" f3 ~% t
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了