PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

4

主题

4

回帖

83

积分

培训VIP会员

积分
83
发表于 2015-5-1 11:53:07 | 显示全部楼层 |阅读模式

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

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

x
- F9 e1 u1 q' N  f+ ~
/*****************************************************************************
* d% g6 f- O! G; F, Q7 s- k7 X**$ v% b6 i* S9 ?- Z7 j  ^7 ?
** createfilebox.cpp
$ c6 @' E, X/ q**) l5 }! |( m! P/ r
** Description:
6 C8 R. Z- l7 m5 K- R' j2 V; h**     Contains Unigraphics entry points for the application.5 `+ f1 \7 U. o. g
**- a$ u- d( m% B6 K
*****************************************************************************/
4 Q7 }6 g9 P# C' F" v/* Include files */
. ]! W1 a3 C# F7 j7 \  p- m/ Z$ A#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )1 I7 ^1 k( Q: G! |& E
#   include <strstream>
3 G3 }5 Y8 T  a#   include <iostream>* w( L( A: x7 B) N/ U0 ~5 D* |
    using std:strstream;
1 _9 R2 \1 x# G: u    using std::endl;   
, Y8 u5 N& i& p# B( D# ^+ U/ ]! W7 d2 f3 M    using std::ends;( H/ j7 u! l* S" r
    using std::cerr;2 u. s( c1 ~; j& `
#else
% q9 {0 H4 z  U& P#   include <strstream.h>6 v4 N9 S* J9 d
#   include <iostream.h>
; Q; ?" O# A% ]( }- c: ^- f0 ?& b#endif
0 ?; S! ]/ s' E& \& _1 n$ h#include <uf.h>
% I8 o; l, v" V! ~#include <uf_ui.h>
7 t: F* i0 z2 k' J+ Y  b, R0 @  V#include <uf_exit.h>
) Q8 Y0 N9 K6 T0 p5 \#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))2 Z! I( F# R- ]2 z1 F3 x% \! }- R
static int report_error( char *file, int line, char *call, int irc)4 W: k; u0 l8 m# H) T4 P9 ]
{
: l. o# Z2 Y1 D    if (irc)- r( P1 b. j+ I" X+ l- `- ]( c
    {* D0 s/ B0 s& N6 h' N+ E
        char err[133],2 }6 f  E: a$ s7 Q1 N
             msg[133];
4 v/ X7 v" t  X/ a8 O        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
: H+ M& K8 L$ ?            irc, line, file);
2 M& j  |& w; w        UF_get_fail_message(irc, err);4 `7 d6 ?! J6 _- L
        UF_print_syslog(msg, FALSE);
6 H) p/ }- O& d; l; l3 i1 Q        UF_print_syslog(err, FALSE);9 I. A2 u/ D" {3 v
        UF_print_syslog("\n", FALSE);2 R4 d$ d- W: ^# S- J
        UF_print_syslog(call, FALSE);: G* Y" z7 V3 A9 ^: b) y0 b
        UF_print_syslog(";\n", FALSE);$ S, H$ f: G/ n. _
        if (!UF_UI_open_listing_window())
9 E$ [7 S3 c. ~        {
; f5 a% ]+ ~% b            UF_UI_write_listing_window(msg);5 E( d' ^; j4 w' a* H
            UF_UI_write_listing_window(err);7 F1 I, V0 v6 e' P* O2 U
            UF_UI_write_listing_window("\n");3 ^+ k0 n# t4 s9 ^5 P& I
            UF_UI_write_listing_window(call);
% x1 }" M( ~2 s/ P9 n            UF_UI_write_listing_window(";\n");4 X5 L9 q. ^, _% A3 ?
        }1 ]1 E. @7 K% Y3 g+ k3 n$ \
    }4 |) B& v7 e4 S/ x0 I
    return(irc);
& J0 J8 U- T9 l) G9 Y}& f4 N4 e! Z! i8 w4 w5 x

9 u/ e9 X( v+ j, W/*****************************************************************************/ q$ _5 n: O" U& H6 C, K# t3 U
**  Activation Methods5 P) y+ G3 e) C4 i3 _* n8 R" l
*****************************************************************************/; f2 p$ M! @4 o& ^
/*  Explicit Activation
8 F/ Z9 L( S4 }0 m) O9 f**      This entry point is used to activate the application explicitly, as in
' W0 j+ Z' F# w% R1 a3 V**      "File->Execute UG/Open->User Function..." */
, H1 K* i. T7 L# ^extern DllExport void ufusr( char *parm, int *returnCode, int rlen )7 w& g+ {: ]) K( W" O/ h: [3 R
{
& {7 n4 ?- d" |3 `& S6 n    /* Initialize the API environment */
: L' s' P$ Q- p' r; M. ?3 o char prompt_string[]="open file";
# r0 S0 c/ g! i; N2 R% j( G& V5 z char title_string[] = "select file";! j) C0 r/ {3 y5 x. [' _3 }
char filter_string[] = "*.prt";
. m2 A5 J; Z, n/ Y char default_name[] = "my file";3 [3 ~8 c4 w& _& ^, b2 |4 a
char filename[256];
  S7 I) g' [( ~4 X4 E+ t int response;; }2 s# p$ ~& p/ S. x
    if( UF_CALL(UF_initialize()) ) / b( _8 ?4 X- i; d" O- s8 M
    {
7 B2 P7 s6 m' Y* }        /* Failed to initialize */
: d  h" y! g: x        return;
" L0 @! ?8 j* @. \- Y$ I6 q% Y    }
/ k1 s3 }' p8 V2 S. j% _" E/ V   
8 x3 L8 d& @: p8 `    /* TODO: Add your application code here */
/ S/ z" x& j1 o9 \5 ~0 ]6 U" n UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox7 K6 P3 B  d$ N3 Q0 |  z* N
    /* Terminate the API environment */1 z2 \7 o: i" O7 ]( {. O; C
    UF_CALL(UF_terminate());, S4 f& L( G8 r* c
}
& N* P& y7 o5 J  v* Q/*****************************************************************************3 E7 C  n# p: ^+ i
**  Utilities! S/ i# u1 b) h; b* c! \
*****************************************************************************/
" E3 J+ f/ {) v: |4 x6 H+ u/* Unload Handler; J* J# a( k5 _
**     This function specifies when to unload your application from Unigraphics.' U6 U1 _* f; ]+ o6 [$ d
**     If your application registers a callback (from a MenuScript item or a8 m6 L/ W7 ^$ l
**     User Defined Object for example), this function MUST return+ m; G, B& a1 v; O0 R
**     "UF_UNLOAD_UG_TERMINATE". */" Q& C( W3 i. B( l
extern int ufusr_ask_unload( void )
+ m6 s* P+ D: ~! S. u6 T% q{& m* I' W# I& w6 N1 x4 P6 o# i
    return( UF_UNLOAD_IMMEDIATELY );. T* b. b/ Q9 {* t( T5 p) w) Q3 U* y
}
. T4 V) p8 U8 E1 _3 K
8 y2 c- g/ ]6 O' c, a
CreateFilebox.png
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复4

320

主题

226

回帖

9784

积分

管理员

PLM之家NX|TC专家

积分
9784
发表于 2015-5-2 20:07:06 | 显示全部楼层
UF_UI_create_filebox 我没有试你这个 & ]- o( K: C2 r' }, b  B& V& f
2 j! }  g7 u! m8 v( e6 s$ x
不过你加个uf_call或者看下syslog 啥问题 , s" R3 x& S; a: I: n

9 d2 m  ^6 u9 n- R( V1 H
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

4

主题

4

回帖

83

积分

培训VIP会员

积分
83
 楼主| 发表于 2015-5-2 20:18:39 | 显示全部楼层
mildcat 发表于 2015-5-2 20:076 j% `( |$ ^) w" z! A& T, A: u: _
UF_UI_create_filebox 我没有试你这个
  n" e$ `& m2 [3 D. b1 W/ h; j; \3 j( l# X
不过你加个uf_call或者看下syslog 啥问题

  }7 N& R& n6 A1 |UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。. F7 o% W' V8 P0 C8 i5 C0 Z! m
我想用UF_UI_create_filebox()创建一个打开文件的对话框。UG有别的函数可以创建打开文件的对话框?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

8

主题

58

回帖

896

积分

培训VIP会员

积分
896
发表于 2015-5-5 08:31:59 | 显示全部楼层
文星和合 发表于 2015-5-2 20:18
7 E8 L% n$ W% d) c: L. tUF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
' i7 }8 \3 x, q! Q/ T) H2 E; @我想用UF_UI_create_filebox ...

, F, f, A  c3 e% _$ n$ L4 ~& J
#include <uf.h>$ h# z6 ~; M+ Y' k
#include <uf_ui.h>
4 T& I; Z  Q0 `#include <uf_exit.h>/ m' W; n% n8 K8 t9 O+ a3 q) P
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )/ @: _) @4 a1 W5 U+ X3 h
{! L- O5 F8 M/ e7 t& z* u2 X
        /* Initialize the API environment */& ?& {4 I+ G' [/ \- x$ [
        char *prompt_string="输入文件名";; b: V- ?  Z5 q5 o
        char *title_string = "另存为";( y: e2 A  ]4 A* W( ?8 R
        char *filter_string = "E:\\+*.prt";
7 k' t. E- f! Q! K# v, w        char *default_name = "OK-PRT";
6 U/ `  F4 |- R- r  M( a        char filename[256];
; r/ D- ^+ s6 Z* E& r( B        int response;- m/ A- U% M$ c! x# {9 A$ r
        UF_initialize();) T" q% Q  A& [7 ?$ F
        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);0 X8 \4 m: B: e4 r, A
        if (response ==UF_UI_OK)
* J& j( M, D3 p, D                uc1601(filename,1);* G+ Y+ t! v+ `- c# t7 a* x
        else if(response ==UF_UI_CANCEL)8 O7 m8 b8 m+ Y% A4 w1 G/ ~
                uc1601("取消",1);
* _- J& @6 Z7 \" ~        UF_terminate();
/ o2 ]: n2 {" N  g& J4 b) i( l}
' p  {% ^9 `% q4 q# h# Zextern int ufusr_ask_unload( void )  w, S$ {$ R4 s7 }: o5 Z
{9 t* s' P8 }, T3 G
        return( UF_UNLOAD_IMMEDIATELY );
6 @6 e8 J. j% H6 J}

评分

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

查看全部评分

上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了