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

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

  [复制链接]

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

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

文星和合 楼主

2015-5-1 11:53:07

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

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

x
3 |5 d$ m; w4 V# y/ o& ?
/*****************************************************************************
( V7 @- I$ c+ S; k, I& p**: e% o& }7 R9 ]  p" q0 w
** createfilebox.cpp" D8 k. C% w# w
**
0 D# L5 v9 v+ G3 B+ Z, D( v% p** Description:7 J6 C+ t$ n: J0 ]7 H
**     Contains Unigraphics entry points for the application.
1 z- C# [0 `8 e% d  P5 W7 s**
% P8 f( _. ^; O9 X+ z*****************************************************************************/% v3 B6 d4 s2 |( u4 |; `3 v- l
/* Include files */
% F3 L  u+ ]$ q: y/ G4 D#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )+ i" ~2 P, c' u# B* _
#   include <strstream>. M( M# G6 R2 \
#   include <iostream>
! e( l5 j5 @) G- Z) z( A. g    using std:strstream;- V1 N0 C* [- |- z/ L# |3 Y
    using std::endl;   
$ ]2 u% z8 R8 N5 m! w4 v    using std::ends;
2 x" f2 `( Y8 J. F8 j! }" }+ y    using std::cerr;
! V2 T) W# |; a9 P/ |#else
  X# o8 H* E% g, y4 r& d. h! q#   include <strstream.h>6 }/ H( T5 d$ I2 L/ k' ^4 F2 D! F5 b
#   include <iostream.h>( H  X  Z0 h5 j$ V) b3 N
#endif
+ f- Z- u% E: V& Z! L# G. A1 x#include <uf.h>
! \5 n2 |' V2 ~9 `% @#include <uf_ui.h>5 j; B  g  }* M- j) o
#include <uf_exit.h>( l$ X% n. T& C# R8 |
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
3 m5 m: @* i' J" M- Y* ]8 wstatic int report_error( char *file, int line, char *call, int irc)
5 {# V8 B5 [* u6 J- E{
+ k& T4 ~5 N1 ]* y! h    if (irc)
5 S: o2 \  c' h4 E$ g+ J3 {" z% s3 c3 X    {& J* j" {  \) \, A! _, q/ Z, e
        char err[133],- J" S8 h$ y) }, z" b, P
             msg[133];1 J: h% {: e/ m- p( ~, X2 v8 k
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",6 D4 ?) w% F3 S. L; T
            irc, line, file);
) f& \# T8 W- J, y0 N+ L        UF_get_fail_message(irc, err);
) U' @' t1 [  O% u; i# }' `4 r        UF_print_syslog(msg, FALSE);
& z) r" e& w/ S% ~        UF_print_syslog(err, FALSE);6 s0 Q8 e& ~- i; \+ [+ p+ ]5 B
        UF_print_syslog("\n", FALSE);& J1 |2 |) A5 C: |
        UF_print_syslog(call, FALSE);5 Y: R( K0 Y! I8 d* @: t
        UF_print_syslog(";\n", FALSE);
3 i9 p0 N# u$ A7 S( h6 Z        if (!UF_UI_open_listing_window())
# ]& q% l5 i- D        {
! X- p' h' j' M3 @$ X. H: T3 H) [: T            UF_UI_write_listing_window(msg);
7 ]- }9 y$ Q. [' b3 s            UF_UI_write_listing_window(err);
3 W. [# R, X' b3 J0 ?9 r            UF_UI_write_listing_window("\n");
$ r- p, C9 G, G) @7 G8 _: u2 A            UF_UI_write_listing_window(call);
0 Y0 d7 w6 ?& X* r            UF_UI_write_listing_window(";\n");
- m5 i" h2 D6 v8 A) K: c        }
7 S  x7 c7 @7 W/ M' i9 F    }* }  B2 E7 [3 M7 G4 }% c
    return(irc);& @" J  j4 w# \( m3 @  K) E
}; c0 [+ Q- n8 G
  U4 J$ J* C! i, W
/*****************************************************************************
' ~/ c' j6 X7 P  v**  Activation Methods& ^* ?; u+ A, _& }0 ]; s. X, }
*****************************************************************************/
5 Z% S' Y- S$ r# _/*  Explicit Activation
4 i5 D' r5 A, S1 G**      This entry point is used to activate the application explicitly, as in
4 e5 j' h$ r. ?% a& P, Q3 G**      "File->Execute UG/Open->User Function..." */* T& K5 U: P7 L
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
6 f$ C4 O8 |4 D{
1 ~) d1 ?$ e1 Y( I% d" P5 r    /* Initialize the API environment */
' B8 r2 J+ |5 j  l char prompt_string[]="open file";+ o, @$ U8 x9 ?8 h" f- J8 O3 T& X
char title_string[] = "select file";. r! p+ @* B/ ^" y# a" F5 D
char filter_string[] = "*.prt";
$ A0 r' @# Y' H+ y char default_name[] = "my file";
; d' C" P7 E& `0 N( v8 X char filename[256];( ?0 R  x& k$ e9 I
int response;
- S3 V' g4 o& p" W# }  b    if( UF_CALL(UF_initialize()) ) 5 M; S2 ~$ s% k7 W
    {7 a; z% K% s6 M6 Z9 H. m
        /* Failed to initialize */
, F) h/ x0 n# a8 d& O; _% X) A        return;
" L3 }' d! z' i  L% n    }
) X5 e, L* Q! {( ~6 n1 r   
% @3 d1 s6 T" }9 o- {7 |. J    /* TODO: Add your application code here */
" |; \& y0 p: g$ E1 c0 m UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox- c$ @$ D0 g3 z- g# `7 Q. T
    /* Terminate the API environment */
( C$ `! {) o# H    UF_CALL(UF_terminate());- ?( e0 C& s" p9 y' b
}
+ N5 Q* ~: K# Z+ l/*****************************************************************************; h" ^/ W+ ^% e( i% E
**  Utilities
( I, J' K. r* x*****************************************************************************/
* o( H1 {, h1 _% j( Z! G% l/* Unload Handler9 k# H9 c* ]; i* h4 N2 f& p
**     This function specifies when to unload your application from Unigraphics.! |* x- K( j7 U! ^
**     If your application registers a callback (from a MenuScript item or a- V8 T7 z  P' W/ C
**     User Defined Object for example), this function MUST return
6 w' X2 o( Z% f- g2 M" O**     "UF_UNLOAD_UG_TERMINATE". */
1 C, v2 t7 Y" L0 U* iextern int ufusr_ask_unload( void )& u' I. \0 l% f! G$ i) N/ v  f" Y
{8 A: ^" p) B9 d% f0 _
    return( UF_UNLOAD_IMMEDIATELY );
! u& j" }- [5 |2 m6 \; `}( Y5 }; z9 _  ^

" A# H  o9 o& [, t; [
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 我没有试你这个
8 u5 w- X. T3 m1 r: X7 K, q: |% a3 q$ Q* F5 F: P- y
不过你加个uf_call或者看下syslog 啥问题
' {8 H% l8 ]- V- y2 w' K! J9 G0 z; H, `% {- G, g
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

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

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:07
# w5 @7 [! c; e8 U4 s: uUF_UI_create_filebox 我没有试你这个
( c3 N  |& G7 D
" m- J( ~6 Q4 u. W1 w不过你加个uf_call或者看下syslog 啥问题
4 S8 y$ N8 E6 x- [+ O6 G
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。7 f4 a$ h+ Y2 C3 m. K6 ~
我想用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:18) Y+ q1 q, H  K4 `5 m8 D* K  b' q
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。# N4 r9 B1 p3 U- Q9 }
我想用UF_UI_create_filebox ...

. j9 Q* h' ^8 J2 s! {+ Z( g+ F' d8 x
#include <uf.h>3 H+ @4 i; M- `3 J
#include <uf_ui.h># M6 ~5 P9 Y& Q- y
#include <uf_exit.h>
7 s  g0 u, z/ Z; t) L4 ^: [0 w0 Iextern DllExport void ufusr( char *parm, int *returnCode, int rlen )
& |2 L( p) |! L" Q7 k{, F) R! x5 h  B; O. n8 t. ~! {
        /* Initialize the API environment */
6 u) D0 K# n2 z        char *prompt_string="输入文件名";6 f9 a: w+ a' ?- o. ?! s/ k: ~
        char *title_string = "另存为";
% g9 j0 d5 E8 ]0 y, l3 _        char *filter_string = "E:\\+*.prt";0 X; @" G* M" l+ |3 M1 R
        char *default_name = "OK-PRT";
; e! j; r# E* P4 ?3 r        char filename[256];
- h* I& t, o( p2 A- m        int response;$ U& v/ i" j0 l7 N# f; e
        UF_initialize();
, R$ |5 ~2 [: {4 L1 R        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);2 k; W8 {; W1 y* d% m
        if (response ==UF_UI_OK)
5 q3 i7 U$ R! n* g0 x0 F3 v                uc1601(filename,1);: r4 [- Y4 r" j1 l
        else if(response ==UF_UI_CANCEL)$ P  k3 Y' F) R! @  J1 `" F8 z+ j
                uc1601("取消",1);
3 A/ Y( r8 P* w' e* k. o. H        UF_terminate();
, e2 Z$ h: A$ w}
  F+ R3 k7 s" M, g3 Xextern int ufusr_ask_unload( void )
2 [- d0 I$ S  Y+ c" k0 E) y) }{
! i8 p3 I5 |# {! z# P! u/ s        return( UF_UNLOAD_IMMEDIATELY );( l" i( e4 R7 e8 v) v* M
}

评分

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

    我知道了