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

[解决] 用UF_UI_create_filebox()时UG崩溃了

  [复制链接]

2015-5-5 08:36:17 4748 4

文星和合 发表于 2015-5-1 11:53:07 |阅读模式

文星和合 楼主

2015-5-1 11:53:07

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

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

x

, ], v/ G3 x. \0 C. G/****************************************************************************** ~7 ^3 R. g0 Q2 r
*** a8 j4 e* Q/ `7 Q- w
** createfilebox.cpp. H# @8 \$ |! ?, b& P; A9 O
**
( a$ j( w' V% m) @** Description:
2 r$ o! Q5 M5 W+ {' d) q**     Contains Unigraphics entry points for the application.
: g% H9 J6 n; t9 E* K**
' ?* [  w! f1 K: n8 S/ O& R*****************************************************************************/% i2 [2 v7 z) v4 p: T
/* Include files */
4 e1 d5 d* n  w4 c3 R% {#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
( g' x" y3 @3 l4 P: q3 j3 |5 n, V#   include <strstream>
: j0 O5 a# E+ W# A0 K, u#   include <iostream>- F5 h& H( W3 b5 c' ]: _
    using std:strstream;) O( ]; f) d) ^
    using std::endl;   
' `* }) B3 F& A* z8 x    using std::ends;
% ]1 U9 N: X* ^" X5 L5 @3 B! q    using std::cerr;
8 ~7 A; v% ]( B! a/ o  d#else
8 T% D9 s* ^  r3 V, {8 W6 P#   include <strstream.h>' |% L: Q) S% y" m
#   include <iostream.h>6 [# h- b* U+ P! |9 R* R
#endif/ r$ l  n0 }! m- [0 G- e/ X
#include <uf.h>
; s' N* U0 ^( }8 h3 ?1 D0 ]9 w#include <uf_ui.h>( ?1 e! g( U( h( U4 Z
#include <uf_exit.h>
0 C0 [  W0 u1 f6 g( y#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))0 Z& [% R( W+ F* t6 m2 F4 T% F1 n8 q
static int report_error( char *file, int line, char *call, int irc)9 d" c8 ?- w4 k
{
! t4 _2 R% P/ a1 o* Z    if (irc)
0 U, D& n, q$ d* t2 q+ F    {
' n4 J2 U; b5 e        char err[133],
/ a. C0 u. e. _3 V0 Q5 b+ @: h             msg[133];
1 p  ]5 p; }% O6 w        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
" ~" k8 ]' U( |+ a# d: N7 N            irc, line, file);- ]; A, L& X) z  d
        UF_get_fail_message(irc, err);+ R! D  q$ R1 r, _1 r
        UF_print_syslog(msg, FALSE);& W/ t- R% q/ X: @4 t* @1 o
        UF_print_syslog(err, FALSE);
5 w9 Y5 A+ P2 ?/ U; @2 t        UF_print_syslog("\n", FALSE);
: A) \1 Q* b8 I& i* p" C        UF_print_syslog(call, FALSE);
# A3 ?, t- U/ \! X" {9 y% ^/ P% g6 P        UF_print_syslog(";\n", FALSE);- s1 c# F6 u! h6 L; B
        if (!UF_UI_open_listing_window())
( C8 l, C7 l9 ~: n2 q% F' L        {4 G) H# G# G* L4 q' A% i# ?4 M; `! ?
            UF_UI_write_listing_window(msg);: s: T# W4 h. ]$ V
            UF_UI_write_listing_window(err);
+ M9 ~( f2 c5 y( t; _: F            UF_UI_write_listing_window("\n");
* ^0 _( ]2 a- F/ u% b            UF_UI_write_listing_window(call);
( _' g; ]6 k' Z1 u# Q- u            UF_UI_write_listing_window(";\n");
8 Q+ |9 @0 k1 G& m7 ]% n$ Y0 {        }( u5 ?" X) V) q. n" U8 m, ?
    }
  }# r$ N, m! [" l" H    return(irc);
2 J5 s4 }( ]/ R0 X4 \; V. ]8 Y}% T* E; L: p: j- |  t! ]3 K) d
; F5 Y( A9 u4 Y" l" G. V
/*****************************************************************************
& J' Q  E% |2 f  ?/ B* q% y( r**  Activation Methods
2 I( U7 O5 X# W- X) U, M5 y*****************************************************************************/
2 Q0 W( ^. \1 ]4 j- a  k/*  Explicit Activation" ^& r! G3 P. \8 C2 V# Y
**      This entry point is used to activate the application explicitly, as in5 A: K, C; S! E4 m- O9 ^! g
**      "File->Execute UG/Open->User Function..." */
0 f. p; l) v* a3 ]) qextern DllExport void ufusr( char *parm, int *returnCode, int rlen ). K* f! [1 T" l% j3 `; I/ j' i6 `
{# l7 a6 |6 h& T: s* q/ Q
    /* Initialize the API environment */+ S+ Z% Y) t9 e; Y$ w- K
char prompt_string[]="open file";
0 h: Q  T% K1 X1 W2 J! _3 I/ z char title_string[] = "select file";
0 M% g1 d) s2 b char filter_string[] = "*.prt";
6 c+ `# L! |) i4 g" W3 r char default_name[] = "my file";# R0 F! H- v1 Q" Z4 E
char filename[256];
# K8 J) E6 z- s) E9 o2 x* W int response;
9 Z$ E/ g, V3 r5 v% l- [    if( UF_CALL(UF_initialize()) )
" e' M7 e' ~7 B" ]: r    {
, F. e! S5 X+ H: d6 }( N# I        /* Failed to initialize */" L* m& ?, u; @( w3 V% L
        return;0 `; \: N. g- R1 h; H. ^
    }, Z. u& K7 L" P1 V5 ^$ I
   
) _. k( g1 k# ]# _, t1 B' F% J* p- Q    /* TODO: Add your application code here */& ^: S( {: B3 D" n, T  h, ^$ K1 d+ q% V
UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox
0 P' N6 e% J# w    /* Terminate the API environment */
* s# j  I9 e/ X    UF_CALL(UF_terminate());8 G3 L. [/ A4 T8 _
}( r) y* n/ x# |: n' T; ]/ p' K
/*****************************************************************************
1 y5 J& ~! q  C5 n6 Y" ~**  Utilities" n, T+ b8 f( u
*****************************************************************************/
" J5 E' w7 x1 X5 Z6 C) J/* Unload Handler% N! V; K( T$ W7 m6 U. }% H4 N
**     This function specifies when to unload your application from Unigraphics.& f# N5 l! H$ H9 F
**     If your application registers a callback (from a MenuScript item or a# u: k) J) m2 v/ W: O% i- ?
**     User Defined Object for example), this function MUST return
) O% J: Y, m% g$ U, I- J  p. P**     "UF_UNLOAD_UG_TERMINATE". */, G6 [" ~% f4 P; Q3 J7 S$ c
extern int ufusr_ask_unload( void )
; X) C, K* g3 Y8 b# G$ C{. ?7 f1 t) r; f% n+ }5 z& B
    return( UF_UNLOAD_IMMEDIATELY );
$ p. r4 T) Y  Y6 @, d$ X+ A) o}
9 L5 N" K7 |: Y1 u3 }# m3 k: I/ l/ L8 I* r0 Q" A6 z
CreateFilebox.png
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复4

mildcat 发表于 2015-5-2 20:07:06

mildcat 沙发

2015-5-2 20:07:06

UF_UI_create_filebox 我没有试你这个
3 t: u6 o) t) o- B$ G* K, X6 `0 f; N1 ?4 n, X  {- F
不过你加个uf_call或者看下syslog 啥问题
3 L1 h4 L9 o% }" k7 r
) I1 J3 [# ?2 R5 n! M- a& a
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

文星和合 发表于 2015-5-2 20:18:39

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:07
6 S5 e- A: |6 }" r' ?8 ]UF_UI_create_filebox 我没有试你这个 9 C$ X  t2 Z* x4 @
& f# G% ?; Y5 K6 L7 b/ v
不过你加个uf_call或者看下syslog 啥问题

. r" H' X- z9 B( w* Z: E, F0 V- ^UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。. m, Z  w$ t0 o+ y0 p: ?! x: G
我想用UF_UI_create_filebox()创建一个打开文件的对话框。UG有别的函数可以创建打开文件的对话框?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

简简单单 发表于 2015-5-5 08:31:59

简简单单 地板

2015-5-5 08:31:59

文星和合 发表于 2015-5-2 20:186 B5 H- b. h/ P: C! Y1 p4 K8 {
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
2 h- e4 h: e( D5 c' @4 B$ X我想用UF_UI_create_filebox ...
' P, Z9 Y$ S& O( Q

* }  l! F* j6 Z5 D$ }/ B#include <uf.h>$ o( m  p0 e, A2 T6 _. C- a; _, n& n. _
#include <uf_ui.h>
6 n$ P" R* @" ~#include <uf_exit.h>2 M: T9 {# q7 |0 h9 Y6 |/ M. y, U- y* R
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
2 t$ ?5 Y! R# E* P: g1 ?5 V{* e. f: x9 V1 i8 X9 }
        /* Initialize the API environment */4 b- y" u- @% c! @7 Z6 P2 f
        char *prompt_string="输入文件名";
1 F: }6 c7 |8 C; O/ u" S  ?+ C        char *title_string = "另存为";
' S, d7 t" i4 ^; g& f: l/ x2 q        char *filter_string = "E:\\+*.prt";1 [( l; `6 a0 G/ C. y* i$ K
        char *default_name = "OK-PRT";
6 z* U9 Y" }( l  _        char filename[256];5 v5 |/ R, I  w* a
        int response;
! n: Z/ x5 A, |) |" E4 ^' a        UF_initialize();2 Z6 n8 _" ~1 O; @! K, O
        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);0 Q" Y+ j0 _1 m6 F
        if (response ==UF_UI_OK)
: b7 Z+ z, b. Z5 E  J1 u                uc1601(filename,1);2 {; `- N" C2 b5 f5 o3 F- W9 a. ^
        else if(response ==UF_UI_CANCEL)
/ u1 e# }1 L2 O* ?( F) J6 x                uc1601("取消",1);4 }0 H# r$ a* U9 s# ]* M# h) [
        UF_terminate();
  l' n# j* A' b, W}6 F( k' Z  G; X
extern int ufusr_ask_unload( void )
: B* z. E  }" E) A{3 z6 c0 ?" c! o* l/ {. }+ o
        return( UF_UNLOAD_IMMEDIATELY );+ n3 R% I1 v; K5 c
}

评分

参与人数 1PLM币 +3 收起 理由
admin + 3 很给力!

查看全部评分

上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了