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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全& N$ O& h6 @9 x# G6 I

' I7 x; G- m% Q0 y
4 R/ P; c5 F8 Q  Q& `# l& F7 V2 R

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
' N3 s6 C; O" x- V5 Z! {
- T% {$ X: a3 S1 ^1 f" d5 x3 I
( j; }( W1 i3 Z
) _5 |+ p) y/ g( Z. ]

: i! j% ^, f( g1 s3 z
游客,如果您要查看本帖隐藏内容请回复
' y  z: `( \/ t& }% F0 _6 D6 e( {' H
源码分享:# Z5 L( V. q% ?& m
) T5 G) K: [" T  o8 s
  1. /*****************************************************************************
    5 z- e* P7 {2 G' ~) P! F0 N  l
  2. **
    ; M( I  y; l; Y$ w+ ?& I
  3. ** ufuitest.cpp
    $ T9 c0 B( n/ s/ @/ I2 l5 v
  4. **) I; E  r% Q4 y) ~: j6 Q/ \5 q: r
  5. ** Description:
    / E7 r" \6 _2 f4 x0 j) m$ t
  6. **     Contains Unigraphics entry points for the application.7 {8 s; p5 l, @
  7. **
    ' z% Q/ t  M( z) X. w
  8. *****************************************************************************/
    : [% R: p" R* b' @3 o6 F

  9. # ]2 d0 Z7 H7 w7 l: Y! F0 r- U
  10. /* Include files */$ ~, Y( `+ u- }% Y
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )- G! n) Q& v# A% m, [
  12. #   include <strstream>
      w( b: G7 h- V8 ^8 i1 B: G* U, n
  13. #   include <iostream>
    # F! q; O+ L3 S3 ~6 Y/ P$ y
  14.     using std::ostrstream;5 d1 e; b1 K$ z* M8 g: d% D
  15.     using std::endl;   
    % A& }! i- }# F2 W
  16.     using std::ends;4 C" c& M7 }/ D* O9 J
  17.     using std::cerr;3 T+ P6 b  b; M( O" W# G
  18. #else
    6 W6 I* X6 \( |4 _, l
  19. #   include <strstream.h>
    " {+ @' Q: [6 R4 `/ \3 Z" D; M
  20. #   include <iostream.h>
    4 e5 s8 _; U) n
  21. #endif: C  {4 @. c( g* H% z, y
  22. #include <uf.h>3 j0 X/ j( v  U( |5 |) I( ?$ ^; s3 {
  23. #include <uf_ui.h>4 `! a  d+ H: ?& g3 e
  24. #include <uf_exit.h>0 v& ^. f9 A! L. I" p. e/ @
  25. #include <sstream>- O+ }$ [  {9 _4 {9 Y6 W
  26. : [8 ]/ F( d. b6 U9 N' b: `2 H
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    3 n1 o/ A, T* q' @
  28. 5 }# f7 ~0 b  w$ M, F' _0 {! r3 a$ m
  29. static int report_error( char *file, int line, char *call, int irc)
    ' u% i9 [  C1 Z" ]
  30. {
    & [1 k. E: \6 ?2 a$ @- U6 m
  31.     if (irc)) w/ _6 [+ x& q, T
  32.     {" S" g" _6 b0 ^
  33.         char err[133],
    * B: |- H% B9 ]7 X2 L0 v
  34.              msg[133];" p, x1 k: {0 ?# b, a  M5 U
  35. % ^9 q. ^# c1 p; h# c& Q$ N, w- _% e
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    ) }4 G6 Z: ?; d
  37.             irc, line, file);* `7 x) ?+ S1 h. |  ?, e( r
  38.         UF_get_fail_message(irc, err);, D" d# G" N3 o) e% B8 h

  39. 5 T! p5 P: T& k1 u& p9 m+ K% K
  40.         UF_print_syslog(msg, FALSE);, p7 z8 v, e- k8 E* y
  41.         UF_print_syslog(err, FALSE);
    ( p! j8 N8 ]  q( d" ?3 v
  42.         UF_print_syslog("\n", FALSE);4 D) F! v" Y: y2 C
  43.         UF_print_syslog(call, FALSE);
    % W/ F3 h$ E( ~1 c9 Y" J4 [7 W
  44.         UF_print_syslog(";\n", FALSE);
    ' z  S2 p" R' m$ G

  45. # u" a8 \5 {  @$ i" V9 L
  46.         if (!UF_UI_open_listing_window())
    3 ^* M0 p: W% G* @% _' g2 {1 M, o4 |+ i
  47.         {
    : r4 ~2 J& [4 G8 _5 h8 G
  48.             UF_UI_write_listing_window(msg);. Y) Z* \: g( j5 v) o
  49.             UF_UI_write_listing_window(err);
    5 _+ D1 B, ^& ~, m  {0 ?9 U* J
  50.             UF_UI_write_listing_window("\n");
    & ?' \7 F" h3 J; e3 W
  51.             UF_UI_write_listing_window(call);
    6 R- b4 s( ]1 z* v* K8 C
  52.             UF_UI_write_listing_window(";\n");  x0 r6 m8 [: X- T7 v7 S
  53.         }
    0 o& q/ D3 X5 y* P' E* d8 ~
  54.     }
    , L5 h  P" [- A' M* j" Z3 }
  55. ( @& |$ `6 Q6 S9 G
  56.     return(irc);
    5 X, u1 e/ _; ]1 ^2 {" V: b. ~+ @
  57. }0 o5 F* s- n% \
  58. 0 v& Z* Y4 v; Y  z) y& Y3 s
  59. ) G$ y& |: Y& E/ d% r: W
  60. /*****************************************************************************
    * R" Z- z" B7 g
  61. **  Activation Methods
    9 `( e* S* S0 k+ S5 ~3 d
  62. *****************************************************************************/0 d0 T; v7 U+ R) _& W
  63. /*  Unigraphics Startup
    5 U" P# c. G+ @& ]  {
  64. **      This entry point activates the application at Unigraphics startup */
      c% l- p0 G2 T/ o
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )
    8 g' r( p% y" W, t$ f
  66. {9 |8 i' l# ~7 H- t
  67.     /* Initialize the API environment */, f! S. N: E* e. g0 {; _; b* n2 o) J
  68.     if( UF_CALL(UF_initialize()) ) & S& W% C/ ~4 i, k
  69.     {
    ! Y, P- H" }/ H$ d6 Y8 t/ O$ I) \
  70.         /* Failed to initialize */
    % E' v+ X# E0 d& Y( d9 S& @
  71.         return;  J0 R  r( w# d% c6 ^# m4 \" D
  72.     }9 K, o! I" ~4 _! }$ m" o! g
  73.     9 m% x" D5 s; g: i
  74.     /* TODO: Add your application code here */. s/ L8 M4 o% B) t

  75. ) C% P- x# O/ y3 L/ c9 y! w3 g
  76.         //测试 uc1600 和 uc1601
    . G& l/ G, ^' t
  77.         std::stringstream  ss;+ |- B! @: }5 O
  78.         char *cue = "PLM之家测试ufun常用的UI";# r* V+ c" |1 R" G
  79.         char str[133] = "输入字符串";+ t$ ^8 H) `* A( X; c' ?
  80.         char msg[133];/ z/ t3 E& N( \7 `" \
  81.         int length,result;
    0 v7 [1 a' |3 }( O  Q) _) m% I
  82.         result = uc1600(cue,str,&length); //获取输入的字符串- H3 C- k8 O4 @
  83.         sprintf(msg,"%d",length);
      p5 I6 q* P2 w. c3 v
  84.         if(result == 3)
    " V& B2 r& V3 }: |/ v5 k* n" J; ]) g
  85.         {
    / u$ n9 L. H' v! e
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上
    $ R0 f) i, [! ^" o: R0 f+ ?
  87.         }
    5 G% @9 t5 ?- H! `

  88. 0 S1 a) y3 @# L; x  B
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    ' z( s/ N$ i! b& `0 d* {
  90.         char *title = "测试uc1603";9 }5 c& M; g9 g& q- L
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};  Q2 K! X8 E+ h, O
  92.         result = uc1603(title,1, items,4);
    * |5 `7 |7 X1 f* `5 X. e
  93.         if(result ==5)
    ( ~6 r7 z! [1 m, {$ c* D$ j
  94.         {0 [, i: p4 R; S* h2 [; k
  95.                 uc1601("这个是对应的第一个选项,创建block",1);
    % ~" k8 D) E2 X/ K+ u, s. D, J
  96.         }$ V% R& K2 R1 B$ S# ^1 l% ?
  97.         if(result ==6)1 l  U3 w4 g6 i
  98.         {+ w% h/ K( B) F& }
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);
    : Z3 L6 x& C. u6 u5 ~
  100.         }1 y. g; S9 b! K- i; `/ ]! x7 @# X% F
  101.         if(result ==7)9 J) q; H7 [' u5 H: C
  102.         {
    * O: R' C* L4 b' r: i
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);
    9 D: b# [8 ?7 ~
  104.         }
    ! P8 @- q5 Y+ Y/ I7 ~4 L/ A( r4 Q  o
  105.         if(result ==8)" D7 T. g( E4 `8 U* e/ O! O. F
  106.         {
    & s( p0 ^: }9 c9 c: ]
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);
    % X4 V3 P; X4 Y# z; M8 |/ q
  108.         }
    & y" y& H( x- ?" l+ {  x
  109. * S1 w6 z  z# j' U% f
  110.         //测试uc1605--》用来创建复选框
    9 I+ P- h) o+ m9 u7 v+ O) j
  111.         int selected[14];7 b5 c& `8 `/ F7 G1 w- h, d5 O
  112.         uc1605(cue,0,items,4,selected);; ]0 P0 g: K0 B: @+ X$ x
  113. 1 Y2 t  s" h9 L; L
  114.         //测试uc1607: E; ?( `# N% n; z# ~: G
  115.         char *cp1="测试1607";, ?: w$ m( T9 `# j
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};8 k/ P8 J' p& G/ G
  117.         int  ia4[3]={100,200,300};
    ; Y9 Y( ^, b. t! @7 e; G. ]
  118.         uc1607(cp1,cp2,3,ia4,0);
    & S: T% |6 i' s" k
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框$ e$ J$ d; \; ^9 O/ T! X( A
  120.         char *cp11="测试1608";) r( |# z3 u% _2 u5 K
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};
    & N: S3 m* a; G7 j$ d+ t
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int! V3 q" e# i5 [# Q& K
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double% _! r& T% A& Y* }* R
  124.         int ip6[3]={0,1,0};  
    8 i# n) W: t! |+ J
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
    - z- Y8 U/ a( `) [  ^. k( }
  126. 9 {( m* h) I3 h0 G
  127.         //测试uc1609 -->用来获取real类型的输入框
    1 i1 m4 p# O9 x* `
  128.         char *cp12="测试1609";$ c: \" Y! z6 V
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};0 Y9 m; J/ Z7 k# n( d2 M( i: ~
  130.         double ra42[3] = {30.5,50.8,100.3};   K2 q4 y4 m" K7 I$ A
  131.         uc1609(cp12,cp22,3,ra42,NULL);3 W' [4 R3 d: r0 E8 Z4 d( X

  132. 3 ]( a, z0 e" \0 b' ?! b2 d$ x
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框
    / H& @& ]6 R4 ^7 D3 X. Q
  134.         char *cp13="测试1613";. f5 C! |$ C( H: e" n+ x/ _- v: C
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};0 ?* Z' y7 }) D
  136.         int a3[3] ={10,20,30};2 B) S1 ~8 W  W" h$ b( D5 J0 y
  137.         double ra53[3]={11.23,12.45,12.67};
    ( C# S; J5 c! ^3 S% Z! Z
  138.         char ca63[][31] ={"string1","string2","string3"};9 Z+ B- S: d! q4 Z4 a* O* `# i
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
    2 y( D0 f! [% d
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);& k1 M8 e5 }0 N" {' M
  141. 8 ]$ J. ]8 a8 f3 f1 S7 g" c+ T6 f7 }
  142. / R* v5 i6 I1 n7 z; u" B
  143.     /* Terminate the API environment */
    5 D# A1 k  ^1 V8 A, F5 A
  144.     UF_CALL(UF_terminate());4 ^; C8 F3 }6 U" N
  145. }
    & a  v  T5 K7 ?. S
  146. 5 [+ ^) E! p/ j. x& {
  147. /*****************************************************************************! R" l! [; e2 }4 g3 |' p
  148. **  Utilities
    # x- C* l* s- P8 A0 t1 n& \* [% K
  149. *****************************************************************************/+ w( c4 c9 t9 W6 S6 }1 k) B

  150. * P, F! S+ }; H4 z& O+ s
  151. /* Unload Handler
    3 r7 e7 o3 ]( m* F" I! i
  152. **     This function specifies when to unload your application from Unigraphics.
    " n, _+ @: o5 B  Q! \9 j
  153. **     If your application registers a callback (from a MenuScript item or a0 U: d% J- f5 Q7 f# D
  154. **     User Defined Object for example), this function MUST return
    " a- |6 W' {$ e# @8 Y& k
  155. **     "UF_UNLOAD_UG_TERMINATE". */8 I% A, i) z! T' `
  156. extern int ufusr_ask_unload( void )+ {+ R, _! }4 u0 S( d
  157. {
    " q% y" Z$ j+ Y  y  _% z2 `
  158.     return( UF_UNLOAD_IMMEDIATELY );) B* q0 y& e9 ?& ]6 ^7 E, s8 E
  159. }
    * y- g# o' B, X+ }9 N1 g( p* i
复制代码

5 g5 s$ K4 Y- f- }5 V3 h2 P% x
! f% c, M0 P' H* M9 K. @4 |* ~. }* l6 D8 T! W
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了