PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

2013-11-14 17:46:31 51443 138

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

mildcat 楼主

2013-11-8 21:29:41

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

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

x
UG NX二次开发Ufun关于对话框UI的使用案例大全
2 X! [9 m# f: K  i0 {7 D2 z 9 u+ A0 i% P% N9 J

$ x9 |6 ]1 }. v  G( q

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

UG NX二次开发Ufun关于对话框UI的使用案例大全
. r! F" X5 q, g
: _9 K: Z; E; F" m

; e* H+ `6 y0 |. d5 h( y+ ~: L* @/ \+ A# l4 w1 p
8 a$ n1 x+ h  z. x
游客,如果您要查看本帖隐藏内容请回复

$ w' _' `* y$ N源码分享:
7 o0 i0 O! X; U* y% V
7 [5 T( r, i9 ~" @
  1. /*****************************************************************************
    / B$ o9 W# ]. l2 x+ F
  2. **8 u( y3 P+ _5 n9 O; p. t5 ^
  3. ** ufuitest.cpp
    ; R0 e' M/ q" U7 K+ v4 G7 L8 }9 z
  4. **
    8 y" B3 }+ N$ i/ `
  5. ** Description:
    / B% @. f2 i" T/ Y  C
  6. **     Contains Unigraphics entry points for the application.
    . e5 S1 W3 K- v6 N
  7. **2 v! g" `" a+ R7 [) i$ P% s
  8. *****************************************************************************/
    " d7 G% x; O1 [- p' y4 Z
  9. ; `* v4 B! P. a0 M) S. h  v
  10. /* Include files */2 l* N/ _6 v) d. A% p1 |* [& W
  11. #if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun ). m- Y" V7 a% H9 H; |8 q
  12. #   include <strstream>  r6 F$ o4 t) K! s
  13. #   include <iostream>
    8 G. `7 a8 V; [- R" ]  K0 a$ y
  14.     using std::ostrstream;( Z6 f2 t& c: l2 l( {$ c* M+ J& \* Z
  15.     using std::endl;    ( q  P' x2 q! k
  16.     using std::ends;
    5 K% a5 S% @1 i# L" ]$ b. s% j
  17.     using std::cerr;
    * C9 j5 L5 @# O
  18. #else  O/ D8 A$ s" H. H
  19. #   include <strstream.h>
    + h; f- ?6 B! W; B3 ]( n; k
  20. #   include <iostream.h>
    * [* W& c& D+ o4 t/ G: f
  21. #endif
    , m$ K4 x! ]: i- O% H! q: ?  M
  22. #include <uf.h>
    0 ^" _( i2 j) H: O( [/ x( y8 w" T& ]
  23. #include <uf_ui.h>/ a. \" S; n! U  p, V7 s, }4 k
  24. #include <uf_exit.h># a3 v% u8 a' O7 [
  25. #include <sstream>' {/ |' N9 A2 }: @6 v9 u9 `

  26. " k+ R9 p3 ^) \: T. `& A
  27. #define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
    9 F6 Z3 X: x& c% v( a- X

  28. % ]+ f8 Y1 p  R4 s, ?/ D
  29. static int report_error( char *file, int line, char *call, int irc)
    $ C) _$ j$ G" C' u. t/ b+ T+ ]) B
  30. {% Y. |8 k  r# D# m; R
  31.     if (irc)' \3 z( Z! O- p/ n9 y+ Z
  32.     {5 v, M, y! I) v7 g$ ?' X
  33.         char err[133],  m* N: C# D( }% I' p
  34.              msg[133];1 R2 ]8 H5 o- [1 d

  35. ) ], G! V$ {0 O# C$ Z" r
  36.         sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
    ' @7 x6 `$ W$ {% X6 i3 X
  37.             irc, line, file);8 N2 C0 c8 a  y3 J$ K; s' r0 l$ l
  38.         UF_get_fail_message(irc, err);
    + W- d) f9 q# W0 P& v
  39. - l1 ?' r# c- \, V
  40.         UF_print_syslog(msg, FALSE);
    . |* @8 l- \4 q) y
  41.         UF_print_syslog(err, FALSE);# `; V1 }: X& \7 M/ d
  42.         UF_print_syslog("\n", FALSE);
    9 x/ O+ P9 U# V" q( M
  43.         UF_print_syslog(call, FALSE);5 i9 t& l3 L: K( C( K) b+ S
  44.         UF_print_syslog(";\n", FALSE);/ R" L0 `6 ?7 M3 B

  45. + e* }* T; x3 r7 \! v
  46.         if (!UF_UI_open_listing_window())
    3 p9 t( K) ]3 R+ H( s
  47.         {
    1 }  }0 b3 z+ O5 V9 S
  48.             UF_UI_write_listing_window(msg);
    / e  P; F1 j$ ~9 |6 ]
  49.             UF_UI_write_listing_window(err);& Y' f" T+ H# o, E5 u8 O: i' h$ ~
  50.             UF_UI_write_listing_window("\n");9 g4 K2 x5 j% A( f
  51.             UF_UI_write_listing_window(call);% W+ _) v9 g+ [3 g5 c
  52.             UF_UI_write_listing_window(";\n");5 ^+ X7 ^; \# f, `/ j# G
  53.         }
    5 }( r0 C  e: `2 i1 A* S4 E
  54.     }
    & i% Z: w" P$ j2 p
  55. " H' H/ X3 g1 f0 C, O
  56.     return(irc);. z' K- q  j+ I7 W' s1 R
  57. }0 D# z9 y, T# I' \' i
  58. - @$ m+ f7 M# }: K: a

  59. ' H0 c! l, P( v( J! d6 m2 N( n
  60. /*****************************************************************************
    8 z( u) j* n" S1 q. F
  61. **  Activation Methods
    5 K+ k" m. t9 H! I
  62. *****************************************************************************/# d  q' m) D. @7 N' R
  63. /*  Unigraphics Startup
    ! }8 w( @/ K/ l
  64. **      This entry point activates the application at Unigraphics startup */- u3 A5 O% g, x( v, f8 ?( u
  65. extern DllExport void ufsta( char *param, int *returnCode, int rlen )$ s) P6 J! |3 L) Z
  66. {& q8 ~1 ~1 ]5 n; S5 i8 {: H7 W+ p% X
  67.     /* Initialize the API environment */
    ! |% Q5 x% {7 T. u# c" s& N- X
  68.     if( UF_CALL(UF_initialize()) )
    / l  z- q8 j) b$ E7 A
  69.     {0 y( j( k9 q1 y5 z. C! v
  70.         /* Failed to initialize */
    - p3 i/ G( \4 E. ^/ I# e& v- P  y& P
  71.         return;
    0 R% e+ P& O% Z; f
  72.     }
    7 {3 f' [3 D, J+ c# P3 q+ C; K
  73.    
    9 W4 F0 L& }7 e/ J0 \9 j
  74.     /* TODO: Add your application code here */% d# o9 j$ z1 o2 J0 T+ L
  75. ( v, O8 Z( d9 C/ S: E" u. B" S
  76.         //测试 uc1600 和 uc1601
    % r6 l4 }& G4 F% a- r* V& V
  77.         std::stringstream  ss;
    2 Z% E. i$ B4 P- Y, r
  78.         char *cue = "PLM之家测试ufun常用的UI";7 p9 ^! Z1 J  E( D: q
  79.         char str[133] = "输入字符串";
    + M( U5 ?0 F3 i  k, E
  80.         char msg[133];
    & D; L4 A5 d, G) g+ S
  81.         int length,result;% P  ~9 d; s$ f5 V- i8 q
  82.         result = uc1600(cue,str,&length); //获取输入的字符串
    * l+ \' \: H- t' k; q! Y5 v
  83.         sprintf(msg,"%d",length);5 ^' V  @$ `8 Z4 _
  84.         if(result == 3)+ ^% O% j$ o1 j+ Y# a
  85.         {
      H0 \& m, z& z. u/ \$ W) j
  86.                 uc1601(msg,1); //弹出消息对话框,1代表是对话框,0 代表在消息显示在状态行上
    7 E' ^5 [! V( \2 m$ e4 U* w5 ^
  87.         }
    5 A" u! d  o0 \9 R0 z  N+ B# x
  88. 9 T# P) z! X: D7 b/ Q7 C/ h
  89.   //测试uc1603 --》用来创建带有button的系列按钮
    8 y$ v: ?/ o8 C  M! E: v! A5 n
  90.         char *title = "测试uc1603";
    7 g0 C  F- v" H
  91.         char items[][38]={{"创建block"},{"-"},{"创建Cylinder"},{"创建sphere"}};8 k! r$ C) e, P* w5 ^/ c$ q$ D+ W
  92.         result = uc1603(title,1, items,4);* \0 H+ B9 _5 K6 S9 \5 G+ ~
  93.         if(result ==5), V1 c1 o3 H& G4 M3 _
  94.         {8 r7 V0 {2 D. q# f2 D8 h! z2 N
  95.                 uc1601("这个是对应的第一个选项,创建block",1);9 _% K  F" O2 W5 K+ s" o3 \
  96.         }
    ! `0 W% j6 W; R5 d8 W
  97.         if(result ==6)5 I; R5 d  m8 t- K. i  ?$ W7 O
  98.         {
    8 J8 Z" H& C0 T
  99.                 uc1601("这个是对应的第二个选项,此处是一个分割线",1);
    - P9 N0 t- b4 t2 x1 G+ r
  100.         }
    ; T! }; I% n4 o( b! }& R
  101.         if(result ==7)' I# ?! ?: D" [( G& K
  102.         {
    : m! i! X3 }3 n4 p8 Q1 G0 x
  103.                 uc1601("这个是对应的第三个选项,创建Cylinder",1);* `/ ?0 i. G7 C; v8 N' h
  104.         }
    9 I6 K+ ~+ G+ ]3 m# m
  105.         if(result ==8)3 n7 l$ v: g4 a) \
  106.         {8 Y3 k' _2 |, U
  107.                 uc1601("这个是对应的第四个选项,创建sphere",1);8 w2 R! o  O$ z1 j6 {' t, }
  108.         }
    ' F9 ?  I) l3 o, u/ Z2 E
  109. 5 R2 U4 f) F/ O
  110.         //测试uc1605--》用来创建复选框; {' D* g! ~% g
  111.         int selected[14];; D2 i9 |) h# T! P" `/ K  a/ [; T- `
  112.         uc1605(cue,0,items,4,selected);
    3 Q: O& E* s* s% V! G
  113.   k& i0 _& R  V6 S% ^1 f" u$ K
  114.         //测试uc1607& p1 Y1 k$ S0 _( H4 S% ?
  115.         char *cp1="测试1607";
    % f" t. B- G2 Z% s
  116.         char cp2[][16] = {{"Length"},{"Width"},{"Height"}};4 n  w  {# R4 c
  117.         int  ia4[3]={100,200,300};. ]2 K0 K) u2 X: e
  118.         uc1607(cp1,cp2,3,ia4,0);- G2 l! ]& F) Y
  119.         //测试uc1608-->用来获取int 或者 real类型的输入框
    8 ]$ `6 U' B: N( U  B5 ~" z
  120.         char *cp11="测试1608";
    , r, e* e. `' V$ \
  121.         char cp21[][16] = {{"integer1"},{"double1"},{"integer2"}};/ o6 H4 }. Q0 \: |
  122.         int  ia41[3]={100,200,300}; //ip6 的值为0的适合选取int
    ) [9 u' m7 A3 N( K$ i4 }
  123.         double ra5[3] = {30.5,50.8,100.3}; // ip6 的值为1的适合选取double8 T* l7 c# L+ p/ U, Z
  124.         int ip6[3]={0,1,0};  
    . B. Q. R( B/ i2 k
  125.         uc1608(cp11,cp21,3,ia41,ra5,ip6);9 q6 ]  r# b4 H3 {: R
  126.   g; C5 {6 Z  g
  127.         //测试uc1609 -->用来获取real类型的输入框
    / e. r$ Y! F8 k% Z9 f; A  {7 S1 R
  128.         char *cp12="测试1609";. E9 [- \1 a: R" B5 ^5 F9 T
  129.         char cp22[][16] = {{"double1"},{"double2"},{"double3"}};
    4 e/ ]6 i3 l* s2 R6 r9 `
  130.         double ra42[3] = {30.5,50.8,100.3};
    0 d2 I. n: Y, {( J7 [
  131.         uc1609(cp12,cp22,3,ra42,NULL);, I- K1 ]/ [% V8 a  k
  132. " M. _3 w3 q+ |
  133.         //测试uc1613 -->用来获取int,real,string类型的输入框
    8 q/ E# v3 D& T# l2 w( w
  134.         char *cp13="测试1613";
    1 ]$ i+ U5 w! V- c, z
  135.         char cp23[][16] = {{"integer"},{"Double"},{"String"}};
    4 v2 K1 T6 A' B* x  C& c5 r- ?# s9 t' k
  136.         int a3[3] ={10,20,30};! N" a$ y- l2 W. m( _$ F1 s6 u
  137.         double ra53[3]={11.23,12.45,12.67};# z7 V" g& M/ y. K, d
  138.         char ca63[][31] ={"string1","string2","string3"};8 h5 x( Z$ }$ `* W! M' C3 O! g
  139.         int ip73[3] = {100,200,300}; //指定对应类型的范围
    9 X0 h- s) W/ O' D& q
  140.         uc1613(cp13,cp23,3,a3,ra53,ca63,ip73);
    ! S4 S# k. H' q2 P  |# y- Z

  141. ; {* V$ F4 Y' C- r* B8 F

  142. $ c+ R, h. ^% `& ]" [4 t1 A% g
  143.     /* Terminate the API environment */
    ! L; G9 Y7 J# K6 n
  144.     UF_CALL(UF_terminate());* y0 r2 V  o* ?+ i6 \! h5 v+ B3 L2 [
  145. }
    $ J2 m  _. z/ y
  146.   M3 B% F8 b7 `) j+ y
  147. /*****************************************************************************3 |  ?: }) q; x( A6 i' G1 l
  148. **  Utilities
    6 z" w1 S+ Y7 c3 P. p7 C
  149. *****************************************************************************/9 N. p3 N( M$ r+ r/ _  T
  150. - I5 N1 h: c. `+ {- v
  151. /* Unload Handler
    0 B1 {. q1 c+ W& l* l9 O$ c: [
  152. **     This function specifies when to unload your application from Unigraphics.& K8 ~  n% P5 i4 L$ X$ g- P
  153. **     If your application registers a callback (from a MenuScript item or a
    " X  ]( ~8 g4 G. a
  154. **     User Defined Object for example), this function MUST return, ~- N4 B9 K( [0 e& ^
  155. **     "UF_UNLOAD_UG_TERMINATE". */
    7 T8 B7 i9 q$ \* ^6 A1 Q& \+ k
  156. extern int ufusr_ask_unload( void )
    % h- m! X; @  E" U% [% b
  157. {: I9 i$ M6 C4 g; Z5 Y# J2 [
  158.     return( UF_UNLOAD_IMMEDIATELY );; z/ ?& A3 i  M" N* b) M( Q
  159. }
    1 _0 u' I" x* D: }# \
复制代码

1 M9 `0 x' H& k  P; G" H% f; ^$ g1 u4 r- l$ V# V
$ V, L1 q* X5 k
该会员没有填写今日想说内容.
回复

使用道具 举报

全部回复138

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

    我知道了