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

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全8 U8 @- k( D. W( J' f
5 _( M6 P& t- z. |1 C$ l/ {
: s4 y- O/ i3 |. \9 u

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
4 y+ j$ S+ b+ J! c# V, q: q

& k/ P+ Q1 `* P
! R; {: p4 \  q" K; E
9 \# Z/ D% R2 d/ O0 Y/ e
! a2 ^) |+ {, A9 Y9 z/ k9 \) Q% }
游客,如果您要查看本帖隐藏内容请回复
8 L  x( N' m+ e: f
源码分享:! q  O, _0 n2 l7 p9 S
2 r* `! w6 U; g# N2 y
  1. /*****************************************************************************
    1 R: D- |; |4 r' m4 c
  2. **' }& w, E, |! Z* D6 F
  3. ** ufuitest.cpp" K8 t; Z, v7 ?- X$ j' H
  4. **& b2 {/ }2 H2 {2 L2 S+ T
  5. ** Description:* S$ I$ @: W/ j7 U
  6. **     Contains Unigraphics entry points for the application.& ?/ D7 x1 G  k( \
  7. **
    / ~( x& p: A* h- ]7 r$ c. O" s
  8. *****************************************************************************/
    * a7 X- m( G. m

  9. 8 g4 Z8 l6 l+ t2 T. P  i4 L
  10. /* Include files */
    : L9 i% [( L. o) z  x
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun ); w8 F, v2 t2 O4 H) D+ m& [
  12. #   include <strstream>! z: j5 g0 {0 o$ O  C
  13. #   include <iostream>8 K) U* O# m% R
  14.     using std::ostrstream;
    0 @! Y- K  h2 V- b5 c7 g+ ~# d; t; X
  15.     using std::endl;    , U" Y6 i5 w: s5 |4 m/ ], l; B5 t* K
  16.     using std::ends;
    ( R3 t" V7 Y9 |1 `2 a
  17.     using std::cerr;
    & X' Q5 G  F5 h
  18. #else
    2 X  G8 J4 L# @7 \9 R
  19. #   include <strstream.h>; V# T' B" G3 M# Y
  20. #   include <iostream.h>6 b2 R; H4 H: N0 v* e
  21. #endif
    $ ^! v# s" {$ u: _5 K0 z
  22. #include <uf.h>2 `2 m. r' k% k) R
  23. #include <uf_ui.h>
    * b$ b# \% N; e- ^8 A
  24. #include <uf_exit.h>3 f8 A* m1 l& E3 g) p
  25. #include <sstream>' y$ T2 |' d3 T1 y! Z0 U
  26. ! x/ X9 l2 z: R
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ' V+ d- s2 |$ Q' j: P

  28. ! t0 k8 n1 U% w4 }( Q: T1 R& j; J
  29. static int report_error( char *file, int line, char *call, int irc)) K- w' [5 v8 n" u$ z( ^: r
  30. {
    " i, ~3 T& E" V% o
  31.     if (irc)" l5 c( d% k' z* w% b! [
  32.     {
    0 m& ^" M+ e/ O# L
  33.         char err[133],
    ( ^# W5 D' ^2 R6 e4 r
  34.              msg[133];& E9 \  \3 ~9 Z$ c! N

  35. 2 C1 _, u& ]  E4 F- D0 ]+ a
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    * I* I5 A0 X  D# ]& A! t
  37.             irc, line, file);! c8 N  X# H4 o- \  }
  38.         UF_get_fail_message(irc, err);
    " a, G9 t9 Z, C5 Z" V

  39. 2 U$ O. L* T$ o) _
  40.         UF_print_syslog(msg, FALSE);3 t7 H1 y4 m4 J# O9 g& `8 j
  41.         UF_print_syslog(err, FALSE);7 Y, {; Z! j8 Y* |: [
  42.         UF_print_syslog("\n", FALSE);1 J# _/ `' t; r, A
  43.         UF_print_syslog(call, FALSE);
    # `, d* O: |+ I, P5 N4 `
  44.         UF_print_syslog(";\n", FALSE);  O& z8 z1 V( l7 d4 S

  45. * M  e( [7 T+ W: c) s" t& C
  46.         if (!UF_UI_open_listing_window())$ s% V' W' O2 @5 B# k
  47.         {
    * A1 }, g6 ]' a. e# M! q
  48.             UF_UI_write_listing_window(msg);
    0 s/ {! w* X7 x: \% r" z- }
  49.             UF_UI_write_listing_window(err);- D0 Y/ Y' M4 k) _1 p- V
  50.             UF_UI_write_listing_window("\n");
    1 t" X9 H0 @1 s# u/ b1 b& O: w8 P
  51.             UF_UI_write_listing_window(call);% X2 d2 n) j" {5 l% i" i+ J% u4 k
  52.             UF_UI_write_listing_window(";\n");
    & G4 }, I3 n6 N1 C
  53.         }6 v- ?' ]9 B7 r+ J% ?4 s" P( T9 d
  54.     }4 V- ~8 c% W( m+ C% N+ \
  55. 9 |% \5 Q/ W" x
  56.     return(irc);8 S" T9 P. |! d7 X! U4 N
  57. }
    $ T1 d+ n# ~' W6 ~/ x
  58. 3 m" F' \- b0 r* ?0 s+ [, A( ~& D
  59. & s8 A9 C; k  w3 S
  60. /*****************************************************************************
    + i1 n4 P: A! @8 o! ~: a9 ~+ u
  61. **  Activation Methods
    ' R; m6 z5 F+ B, {, D5 d4 r
  62. *****************************************************************************/1 Y8 |, f  n! Z6 j. O9 o- H" p3 i
  63. /*  Unigraphics Startup, w9 D  J3 ]" }! D9 n
  64. **      This entry point activates the application at Unigraphics startup */0 X- Q8 n' n9 p: b6 B
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )
    % \: z2 }/ Q9 c# X* O
  66. {
    * ]. E; J# j  f9 q5 i1 j* f+ _" k
  67.     /* Initialize the API environment */
    7 u! }; {5 G' a( [- N1 K4 G
  68.     if( UF_CALL(UF_initialize()) ) . t0 W' p, ?0 v2 l+ |: |& j* b
  69.     {6 K1 u! a, F1 @  X) u6 m
  70.         /* Failed to initialize */- B* @- E7 c9 p; P6 R2 J" T! R2 ^
  71.         return;
    2 f& J: Z, }( k$ U% p+ [5 h
  72.     }8 i5 Q/ k. \" o# S0 x$ H- z' _
  73.    
    + X- n6 Q2 V& X1 l3 V
  74.     /* TODO: Add your application code here */7 T! I9 L4 Z5 {
  75.   \# C2 a; ^- r$ ?/ l4 q
  76.         //测试 uc1600 和 uc16016 y, y1 X3 L) \6 [/ a! d* |2 J
  77.         std::stringstream  ss;
    : N; z' ^, j. Y& m! L. U# k
  78.         char *cue = "PLM之家测试ufun常用的UI";
    - P5 j3 Z% t# l2 A
  79.         char str[133] = "输入字符串";7 j( Z* o8 V/ i* |& e) P0 K7 d
  80.         char msg[133];
    8 W" ~3 u0 C( v  I# R
  81.         int length,result;
    9 U) {& X: }+ [: u7 e
  82.         result = uc1600(cue,str,&length); //获取输入的字符串5 ^6 Z8 ^0 q! a2 Y1 h- P0 c
  83.         sprintf(msg,"%d",length);
    % y( k) I& p* R9 d. j
  84.         if(result == 3)
    : E2 f  E8 z! `) d8 g& ^
  85.         {
    * g* A; ~( \( @3 R. r% G
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上9 S/ W' ?0 I; b
  87.         }
    0 u' Q& l! B; v

  88. + S) L7 q4 _, z" L9 `+ _' o
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    ( H7 v0 H8 g2 @: f! p+ X$ s# v. s
  90.         char *title = "测试uc1603";# i* n* \; t' h( p2 I% \
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};
    / ^  V" t5 e5 X$ u, A8 M7 m
  92.         result = uc1603(title,1, items,4);0 d; S- U6 C+ I7 y* E: f; e
  93.         if(result ==5)
    + t6 j' s% r! T: A
  94.         {" Z+ s4 z; }1 {/ t
  95.                 uc1601("这个是对应的第一个选项,创建block",1);5 `7 f9 r$ z& H: u0 H
  96.         }
    ) j# ^5 H8 [2 {1 k
  97.         if(result ==6)
    ) O  Y1 L7 L3 L9 F
  98.         {
    / @) K# y% E  {9 m; ^5 q
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);9 @& W+ U4 x' y4 H
  100.         }2 c% y+ b5 T1 q" @: r  e
  101.         if(result ==7)
    + B3 z; a. J5 J/ w8 i9 M1 b
  102.         {& m/ R0 C) g0 D' r- O" {+ L
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);6 d0 }7 K7 s3 J* k, c; b
  104.         }
    1 B) [; ]8 O0 l, T
  105.         if(result ==8)
    3 g6 b, |2 O( J" O- t0 |$ A' e
  106.         {% B0 [4 ~7 {; x! C4 e! p
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);  q0 v7 b5 a9 Y6 _) u! W
  108.         }. f6 V/ L& q7 q8 K, k5 Y

  109. ' ?% I, D, O7 N. y
  110.         //测试uc1605--》用来创建复选框
    7 B% q5 |4 W1 r
  111.         int selected[14];
      c. q0 Q6 y3 N" Z
  112.         uc1605(cue,0,items,4,selected);  r, `1 s, g* _% A0 h3 e6 M' d  ?
  113. 3 _# S) R% x( t6 x0 V
  114.         //测试uc1607
    % f7 G5 i# L1 r9 z+ j7 ~3 \  _$ I
  115.         char *cp1="测试1607";. t  `, N8 b" O$ K( W: K$ L
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};* ?( L- @+ Z- [" `. H* t+ J3 b- G
  117.         int  ia4[3]={100,200,300};  p& u  `0 F6 ~( g+ k( ~9 j8 W; k
  118.         uc1607(cp1,cp2,3,ia4,0);
    1 ]7 i% j' V2 g+ e
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框1 N; B! W' |9 e7 b! o2 x
  120.         char *cp11="测试1608";/ o3 v9 @6 C) @6 z4 h0 p$ a
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};) m% R0 q( F% O6 p. W4 T
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int+ c# Y4 k  U( h# L( a3 u
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double/ N; _1 Y# P7 s, X* u) ~* u
  124.         int ip6[3]={0,1,0};  2 J$ b# @: ?0 k9 y4 v6 z
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);: A: r% N/ X) x7 j: p0 C' e; N7 t$ y
  126. & L# f/ {/ \, m- i
  127.         //测试uc1609 -->用来获取real类型的输入框
    " @$ q0 \; k4 J0 [6 [
  128.         char *cp12="测试1609";! b' L; B' O5 r8 p
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    9 |4 x! A" @3 `7 h' Q
  130.         double ra42[3] = {30.5,50.8,100.3}; 3 h' H/ O6 M% p& t- i2 D4 o/ G( @
  131.         uc1609(cp12,cp22,3,ra42,NULL);
    " g' m: O- i! u/ K- k/ d

  132. 4 c# X- m3 L; ?( o% O
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框/ [- w8 m$ U) r6 v& }1 ^$ L) w
  134.         char *cp13="测试1613";
    9 O) [; G" }( d& e6 _6 b* [
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};4 ^; [. L6 o, z0 T& C
  136.         int a3[3] ={10,20,30};
    8 U" t3 A( x! Y5 F- ?3 T3 }3 z9 r
  137.         double ra53[3]={11.23,12.45,12.67};
    " I- g9 J" f) \" m( h
  138.         char ca63[][31] ={"string1","string2","string3"};
    $ w+ [& a  y! ~2 Q
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
    / p8 R" n7 j* }" r: `" U) k
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);  q" J$ c6 U8 ]3 y
  141. ! y- {$ e8 s: A4 h; ], ?

  142. $ @# W+ y9 \4 _5 \6 h% @# f
  143.     /* Terminate the API environment */
    % }; O) J8 L0 w& E) a
  144.     UF_CALL(UF_terminate());
    ' c7 B  U- W& @  h
  145. }
    4 P+ d! a5 f( a! @1 T

  146. 0 U4 M0 F4 I/ j
  147. /*****************************************************************************
    : D; l! o; C/ k$ }$ }. Y; e
  148. **  Utilities
    3 h+ e/ e& X+ A7 o& K
  149. *****************************************************************************/
    ) ^. I  d& }5 a2 }

  150. ( v+ y4 j; K4 e  |* n# f
  151. /* Unload Handler4 v) b% I8 P' _0 I$ d! X
  152. **     This function specifies when to unload your application from Unigraphics.: o  J  @1 p  `, L
  153. **     If your application registers a callback (from a MenuScript item or a& C* S8 O$ e; p, D
  154. **     User Defined Object for example), this function MUST return
    7 l6 c* g8 @2 }3 J7 v( }; y9 {
  155. **     "UF_UNLOAD_UG_TERMINATE". */
    : p7 z) C% J' z& q/ i/ r! T3 b$ N! g" K
  156. extern int ufusr_ask_unload( void )5 A8 ]4 s# U. f% G8 d: u& g
  157. {
    $ e# s$ P( C9 E8 R6 I8 c! }
  158.     return( UF_UNLOAD_IMMEDIATELY );
    8 ?/ d, M7 p, ?; F/ I9 j' Q3 R3 s
  159. }
      K  Q. s7 i0 {' Q8 q4 x3 r
复制代码

- b# H" |- i2 O* K( y
1 L8 q2 O5 ?4 D" c" }4 P3 o0 ?2 ]$ Y
! n* Y3 ?4 O: [! o( i4 i
该会员没有填写今日想说内容.
回复

使用道具 举报

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

    我知道了