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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
2 o+ O5 O: j; ]( Z- q* Q, B; f ) z$ j3 k5 \( b1 i- Q1 V+ U2 L+ r

  \+ X2 V5 D3 \% m1 d

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

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

! i9 s) I% W  N2 v
- Y/ k. w( O: q" p/ s) Y, v/ c

+ \" i% }& e' |$ `2 s! E$ D( V
, S5 T& w! Q' b) f! i! O
8 G% A0 e5 }5 W, `1 {" S) m/ w
游客,如果您要查看本帖隐藏内容请回复

3 y. ?, @. e, F( i  a% ~源码分享:
+ ^4 A# x/ B. _2 C0 E
& Z5 h: ]! d. R) C. R1 ]- M
  1. /*****************************************************************************
    9 t) C( s" w  p5 C/ o# q. K" \
  2. **' q! `% G9 F& g, b" c
  3. ** ufuitest.cpp* B+ U" u+ C: f* ?1 v) Q1 p( s% g
  4. **
    % u0 |; Y. Z4 c9 O/ V
  5. ** Description:6 D. u* M' A; }* \( N3 c, x6 ^
  6. **     Contains Unigraphics entry points for the application.+ L, E1 g* b* [& w% x
  7. **
    6 r) w+ U) O$ Y8 S! g1 m
  8. *****************************************************************************/! b( X; i; X9 b, R3 P0 I: ~$ g# U0 j

  9. 8 a" L1 u% ~$ v1 J- V* Z( ]7 R
  10. /* Include files */
    : X, P1 [# e( x* J
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )4 ^& O  n7 J( t" _6 M
  12. #   include <strstream>
    & X- I1 q& @8 Z% _4 m
  13. #   include <iostream>
    ' T# j. `( o# |, T  y: v( x8 f6 d
  14.     using std::ostrstream;
    ( |. K# }" r6 M/ u: L5 x2 U
  15.     using std::endl;   
    8 z  e! h4 X" Q8 ]
  16.     using std::ends;
    8 w5 `% @- A0 k  I; s+ j6 z
  17.     using std::cerr;2 D: q& d: k" `  O
  18. #else+ d) E9 r4 S- X3 T8 X$ l3 L! Y
  19. #   include <strstream.h>" [" m+ J( u9 ~$ w( k
  20. #   include <iostream.h>
    ) h. a, T) N0 }, g# A2 I( m. H9 K
  21. #endif9 j) t$ q& f) f# v# I
  22. #include <uf.h>7 I! M  r) t1 C5 F; G# `1 ?+ Q
  23. #include <uf_ui.h>' p5 P8 S! M' u5 G
  24. #include <uf_exit.h>
    * j6 M( f0 R: ~/ M
  25. #include <sstream>& I( `  @8 U6 |+ H: Q

  26. 6 h( f+ j, @( D& q8 Y, t! X
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    . j" M0 T- ?, ]4 I

  28. * G# U& E( V1 W3 N
  29. static int report_error( char *file, int line, char *call, int irc)
    2 ?2 C' `1 B2 S' _) q; s0 K! t# B
  30. {
      u( N1 W& d" Y# g9 q
  31.     if (irc)
    0 L# f6 R* A0 A/ e$ B
  32.     {
    8 T+ M6 _5 G. T2 G. j/ P
  33.         char err[133],: t3 ^3 R! }* z3 f* p8 L
  34.              msg[133];
    9 Y& u1 y4 t. H& T
  35. 3 J4 ^3 L* w* _. x) {; }; v8 ?$ x
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",) k# z0 W0 g6 U2 x& ?% u7 l+ F# A
  37.             irc, line, file);
    - N/ Q2 W$ |" t# D0 }2 K
  38.         UF_get_fail_message(irc, err);
    / h5 W* K9 m' ~: p/ W* W
  39. # o% z- |1 Z5 K* u
  40.         UF_print_syslog(msg, FALSE);4 P, f0 a# U, J  n) K' H
  41.         UF_print_syslog(err, FALSE);
    . t: \2 o9 d# K: D7 r7 C- ~% x
  42.         UF_print_syslog("\n", FALSE);: l( i3 r* z2 b9 r
  43.         UF_print_syslog(call, FALSE);; N! |& m/ s, X! {
  44.         UF_print_syslog(";\n", FALSE);
    : \2 B8 {' x1 V* V& a9 k

  45. " h: A# O' x4 m# _; @
  46.         if (!UF_UI_open_listing_window()). R3 K/ T/ s/ i
  47.         {% g3 g( Z; e0 ?! S5 A- P; Y
  48.             UF_UI_write_listing_window(msg);! I6 w1 M/ Z3 y4 q" }/ b
  49.             UF_UI_write_listing_window(err);
    : Y' Q" e/ _% ^* r* |3 Y
  50.             UF_UI_write_listing_window("\n");6 \" |- g2 S' c
  51.             UF_UI_write_listing_window(call);' h3 G" J* ?! F4 k' `* W
  52.             UF_UI_write_listing_window(";\n");  R8 ]8 W* O: V" J% R) P# c
  53.         }. q  J; {# n. ^% }+ v& ^& r
  54.     }0 A% ~) w0 d, `0 B4 I8 F  g
  55. / c5 D+ C( G, A6 i' E( P, Q
  56.     return(irc);1 N4 k. Z0 B: y5 a
  57. }$ h$ z/ U- o* }1 ~1 a

  58. # m. ^" T3 ?/ O+ r  g
  59. - c( m7 I* ]$ t
  60. /*****************************************************************************6 l+ w( X" G) N$ n  O" {& Q3 y5 M
  61. **  Activation Methods1 u: y# g, V! S- z, {8 u
  62. *****************************************************************************/
    1 w$ Z8 e$ c/ H) n- c2 _  O/ H2 V
  63. /*  Unigraphics Startup
    / T# [4 m* ?3 }( a) w$ O
  64. **      This entry point activates the application at Unigraphics startup */" Y% V+ `; A, i+ F+ A
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )
    6 p! a+ ]% J, G0 s4 M- J* i# l
  66. {" ^: z3 L5 I3 {" Z/ K
  67.     /* Initialize the API environment */9 O* W4 E* N' E- a& d/ c
  68.     if( UF_CALL(UF_initialize()) )
    1 g1 }0 E* W& ?% F1 v. B
  69.     {5 S0 ^' M* v4 Y% Z5 v9 E( b3 N
  70.         /* Failed to initialize */
    4 o+ v2 ^# p5 _. I2 b( o
  71.         return;
    7 W% U8 ]; b0 k" D- q) F; j  s
  72.     }3 ?* g' ^% }7 i  i
  73.     1 }  Y4 I4 A+ L" a* c
  74.     /* TODO: Add your application code here */
    + w4 Z$ R; p  t3 g! ~

  75. 4 M8 B% ^0 ^9 c; Y5 K0 B
  76.         //测试 uc1600 和 uc16013 R6 m7 E# I1 Z! k+ o$ m, j
  77.         std::stringstream  ss;
    ! `" G* Q( J8 v; Y2 p) \4 F
  78.         char *cue = "PLM之家测试ufun常用的UI";4 k7 l) [+ n/ Q8 S1 ~! a
  79.         char str[133] = "输入字符串";" ~' q! h5 g( ~7 i9 o; E3 y. v% q
  80.         char msg[133];
    , i4 |9 I7 @. s  y  B
  81.         int length,result;5 \6 e7 i" C6 J( W
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    " @% z8 n; z! F; R7 b, ^( s' f
  83.         sprintf(msg,"%d",length);
    3 l+ C+ G( F4 |4 S  |
  84.         if(result == 3)
      f) b! i  W2 ^& B3 H
  85.         {* G, j, p4 q3 U2 F. U
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上$ f9 d, H7 P0 u, h- v' l
  87.         }
    5 [% X6 S3 K* u9 y
  88. # A9 J2 j% l% i% f3 |/ B3 k# k+ `
  89.   //测试uc1603 --》用来创建带有button的系列按钮: I$ W8 x* w8 R2 K6 b9 j5 C. H
  90.         char *title = "测试uc1603";" z4 a, M3 ]' P4 c0 ^9 W
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};2 u  p& p6 F8 e4 ~
  92.         result = uc1603(title,1, items,4);  i. |# y: {; b5 n6 D
  93.         if(result ==5)
    , H! ]5 L! A4 m' O5 W  G; D
  94.         {
    & H4 n; A0 |" P7 K2 d
  95.                 uc1601("这个是对应的第一个选项,创建block",1);
    4 T" S2 L5 q8 O& f& P
  96.         }6 s% a: ]* A7 @6 t$ [+ K5 U+ `
  97.         if(result ==6): z1 v& d8 u3 ]2 R" `% z
  98.         {
    * n8 X7 C4 l- i' y. S( U
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);1 h& f7 M; q* K! V" C1 b' _
  100.         }" h; m: g8 p* U' h2 v
  101.         if(result ==7)
    5 @6 F, i8 K5 z6 V( B% K2 q, s
  102.         {
    ' a+ R/ k8 d5 @# ^5 F8 w
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);
    5 ?6 l3 _0 }/ D3 S  c$ \
  104.         }
    * O8 j+ V8 P& T8 [9 D1 F6 L
  105.         if(result ==8)
    & [" }. H" P5 o
  106.         {7 l6 ?! g& [( V8 H5 e
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);
    % |1 Y( p, F7 `% z* d' y
  108.         }4 \" j2 _& g' _; j

  109. ( D% g) ~9 ?6 X4 E( m
  110.         //测试uc1605--》用来创建复选框
    0 c7 n. w) O) `5 K! Q5 A
  111.         int selected[14];
    % ~* g+ \9 l* F! @+ u
  112.         uc1605(cue,0,items,4,selected);2 A; v! B1 W5 j" V+ p, Y( d2 n' X3 A

  113. # n! Q# S$ \( F6 L9 v% y
  114.         //测试uc1607
    5 B, v; P2 L& l6 y8 {
  115.         char *cp1="测试1607";
      X4 [6 s8 f+ a8 a" U1 I; x2 G5 q
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};' ?! k  U2 G2 K- N( a6 `
  117.         int  ia4[3]={100,200,300};
    ' c) p' {5 V, g8 A# b3 {3 N
  118.         uc1607(cp1,cp2,3,ia4,0);
    ( q) v7 s1 l/ x6 ?$ o; e2 N
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框) {4 c# t  Y" X7 b; ]
  120.         char *cp11="测试1608";$ [7 b' j5 I+ d; U, o4 i
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};
    5 m, K5 f5 w2 {2 e9 f
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int
    # A: s7 d/ z3 }  c& p
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double
    ( m, l- a; U5 g2 @% Z, ^" W: a
  124.         int ip6[3]={0,1,0};  
    ( A3 ?1 h! ^; [; c- G; ?4 w
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);
    - b. n8 O2 s% C* `) i2 m) S
  126. ( _6 @3 g0 i! D  v+ L( W1 Y
  127.         //测试uc1609 -->用来获取real类型的输入框1 O. m- e  U9 v) s/ \! G: G, y# O
  128.         char *cp12="测试1609";- P1 E  q% W- g  }5 i5 P- H
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    8 n& m4 p$ \* d. s5 ?/ b
  130.         double ra42[3] = {30.5,50.8,100.3};
    ' R3 g) p* Q. |; P
  131.         uc1609(cp12,cp22,3,ra42,NULL);6 s6 H+ h" w3 `' j! ?7 t
  132. # a4 C- s8 ^! Q* q) n1 h2 o0 Y# Q
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框
    0 O4 u4 ^/ A( L7 S$ r
  134.         char *cp13="测试1613";
    ; E- f4 C9 q% P4 L2 h2 Y6 c
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};+ z* m9 F3 p3 P: |* y* Z8 E
  136.         int a3[3] ={10,20,30};) O+ E, i( R* T9 P' y: A' j! a6 m6 {
  137.         double ra53[3]={11.23,12.45,12.67};
    6 T7 h* p" ~9 {5 c2 p: d* S
  138.         char ca63[][31] ={"string1","string2","string3"};
    0 N' E! ]" F1 t- P
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围0 I4 T4 |+ b8 x+ G9 m% P
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);5 n- X; r, I0 O$ Q6 K/ I. ~! P# j& B
  141. 0 b# w' S, {8 R# L3 B" E9 K
  142. ! J! t. h- g, O6 Z
  143.     /* Terminate the API environment */% t3 R  G2 j$ K2 E
  144.     UF_CALL(UF_terminate());
    2 m4 Q4 W& A) @3 F9 Z  }
  145. }0 P, n$ N' M9 P! E

  146. : r' A& ?! D, o3 Q
  147. /*****************************************************************************
    3 G" D: W, N5 k( s* f4 d* e5 o
  148. **  Utilities
    : a9 U6 \" \% W2 O, {0 S
  149. *****************************************************************************/, P$ {& H5 _+ h- i

  150. : r' s. t2 }' @2 ^$ S9 r
  151. /* Unload Handler
    , q7 ?) P1 o0 A3 s/ u9 U
  152. **     This function specifies when to unload your application from Unigraphics.
    7 z* ]8 I: Q0 X  w9 d1 e6 B6 t
  153. **     If your application registers a callback (from a MenuScript item or a& U. `( F- V+ H% k8 `5 j* l% c+ q. m
  154. **     User Defined Object for example), this function MUST return
    8 u3 \+ {: m9 c- A' c& A( x
  155. **     "UF_UNLOAD_UG_TERMINATE". */. x; n3 p  |0 n) h  y; i# _
  156. extern int ufusr_ask_unload( void )
    4 W) x* {+ p* a  K; d$ ^
  157. {
    ' R5 r  z2 V/ X
  158.     return( UF_UNLOAD_IMMEDIATELY );+ v0 @" m; P& I/ ^0 d# U" a
  159. }# f! ?" }0 n5 r! c7 @- Y) b
复制代码
/ ?; F- y& G  W; I: F. V

* j4 c3 M$ R! ]* [. `- Y8 E- U6 F3 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二次开发专题模块培训报名开始啦

    我知道了