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-国产软件践行者

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

  [复制链接]

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

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

文星和合 楼主

2015-5-1 11:53:07

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

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

x
1 I4 C* {. N3 O2 }% i
/*****************************************************************************
6 j( J2 x/ H; x! T3 Y1 \**
% @' @5 s+ G7 E** createfilebox.cpp* j; w1 j, O5 J$ E+ ]; |* e
**
$ ^6 Z& G' \: R# V5 V8 O** Description:
. T4 j1 G" f" P5 A**     Contains Unigraphics entry points for the application.
! |+ a1 I: r( \" C' S! M8 }**- ?! l6 k% j: |/ m, Q4 v
*****************************************************************************/0 P0 [8 i% o- Z% {% ]6 ^* o* M
/* Include files */3 k1 B4 ^1 [& `
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )9 x- |4 k) g# w% B; M
#   include <strstream>. ~9 ], U8 ^3 y8 I9 ?+ S
#   include <iostream>& K8 b  p# m' w/ I7 h* |: ?
    using std:strstream;. S" c/ m9 X9 X+ k3 C. I
    using std::endl;   
- j7 r; |8 H# ]% V& {$ h    using std::ends;
' {6 c8 {7 i: d6 a( @1 l& V+ S' m    using std::cerr;
3 {% u9 t2 u% N- }#else
) U2 R% B% Q  b) ]; w* B9 g# k% b#   include <strstream.h>7 ]. T7 s" z0 Y6 z
#   include <iostream.h>' U( E8 N8 m4 ~9 a# |1 C
#endif
* S# D2 Q# @9 Z6 Z7 I9 M#include <uf.h>
, w8 ^! X, q1 o' f, d9 p#include <uf_ui.h>' c1 j' T: R3 H3 b8 G' r) j# ]
#include <uf_exit.h>2 e+ v" @2 r6 I  d6 R
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))% E7 g$ @  O* n& f! S
static int report_error( char *file, int line, char *call, int irc)% Q  ]; \. q' k2 \3 H
{
- a4 x! {: k& w    if (irc)# b- o# B; `7 m1 }( T3 |
    {3 j: z* U. W0 |6 ^
        char err[133],$ l) G7 K1 v2 D- O) `6 |" m1 j
             msg[133];
' E# z7 `2 l# Z        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",8 v& L/ k7 j. D! g* J
            irc, line, file);" c# z* U, I" H) N( [% G
        UF_get_fail_message(irc, err);2 ~2 R$ v" \; p/ P7 m
        UF_print_syslog(msg, FALSE);
0 Z- A3 A2 m: E0 {6 \0 f        UF_print_syslog(err, FALSE);
0 b  x- I, l  e8 Q2 N2 }9 X        UF_print_syslog("\n", FALSE);
2 a* X) b1 x0 X5 c, r        UF_print_syslog(call, FALSE);
9 O+ ?) o+ H5 O' g0 E6 J% A# e        UF_print_syslog(";\n", FALSE);8 O( L& l3 u6 B) i
        if (!UF_UI_open_listing_window())* j, I7 q2 y; I' g- R
        {
/ Z- Q- y0 C( ?( _) d3 t0 d            UF_UI_write_listing_window(msg);0 X) n* J9 _- x+ ]& F! z
            UF_UI_write_listing_window(err);
6 b+ d& P9 W8 x, L8 c            UF_UI_write_listing_window("\n");
. p) L6 T8 n% r, Q            UF_UI_write_listing_window(call);# w' C+ k1 w3 a/ w
            UF_UI_write_listing_window(";\n");+ |# T8 E3 N+ s- p
        }8 o, w0 F! n& g: x) v* X% [; }
    }9 b  T9 y" w% i1 i
    return(irc);6 k8 \1 u1 v& j6 x. o
}
/ a% }$ Q8 d$ C* t9 z# I) s& f9 N5 Y5 e; m( N# z
/*****************************************************************************
% O# s5 U1 ]( |& E3 _**  Activation Methods
9 ?3 e: ?+ O" B$ Q2 Z/ ^2 t2 u1 L8 M# x*****************************************************************************/4 u. q2 a3 l' H8 j. F. F
/*  Explicit Activation% E# ~2 M% `6 g, h4 u
**      This entry point is used to activate the application explicitly, as in/ Y. s$ _. ^% G5 Z' B; J  t
**      "File->Execute UG/Open->User Function..." */$ ^9 d; ~' z0 s4 M8 b4 ?& a, n5 p9 Q
extern DllExport void ufusr( char *parm, int *returnCode, int rlen ); U( H3 s2 a5 v! O" L  ?
{8 A9 E9 {; P+ o! m- R/ M5 \$ Y) ^
    /* Initialize the API environment */; t( T% S( X3 r- T1 ~
char prompt_string[]="open file";
6 z7 ~+ T9 E# Q4 Q- N! i# U char title_string[] = "select file";
, a0 F7 I/ E- K6 V char filter_string[] = "*.prt";
- t$ y5 @  U% U8 c char default_name[] = "my file";) r( M0 H. C; h4 k7 C
char filename[256];2 ^- t$ j9 \9 U) Q% P4 \
int response;6 d+ T, ~7 i( X" r. L+ Y# e
    if( UF_CALL(UF_initialize()) ) ' u. D* C4 G: p" l. o
    {0 B7 b, o- y- h7 Q' I; J6 N! m, \
        /* Failed to initialize */8 R& Y: T% K$ j, m- }; v
        return;
( C4 h) b5 d% B' ^" g8 O    }
5 E  ?. t1 {3 `% Q5 c6 o    & M6 m6 d% {& n
    /* TODO: Add your application code here */$ @( J& y2 @4 X7 n7 u
UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox3 _" [$ @/ n1 C' ~9 U5 a- `6 L
    /* Terminate the API environment */
% ^/ p! s0 [4 w7 d9 M& s3 d    UF_CALL(UF_terminate());
$ L6 |/ |1 z( O4 `6 d0 M6 ^" c}! x1 e+ O& d) d5 s& S, `! D6 K
/*****************************************************************************! O: O4 ^1 L; i: r  h
**  Utilities% Z1 Z5 ?# a$ [( ~4 K5 A' u' H1 t
*****************************************************************************/
2 ~( M# l: _7 {6 z2 r/* Unload Handler. z5 v* A. ~8 z' s6 W
**     This function specifies when to unload your application from Unigraphics.
) }( k/ ~& S8 ~% M7 t**     If your application registers a callback (from a MenuScript item or a8 @. Z0 D8 c4 u- a& d7 l
**     User Defined Object for example), this function MUST return
) g! l, w0 ~' E7 Q; w9 Z* O* W) J**     "UF_UNLOAD_UG_TERMINATE". */
1 e' z7 P4 n  j5 Q( m+ p8 m" Bextern int ufusr_ask_unload( void )/ f- N. O) t. D, i9 G; |
{
5 r$ h6 a  _* e- B    return( UF_UNLOAD_IMMEDIATELY );
* R8 ?; x- E/ E9 i3 t8 N! f}/ Q$ k3 y$ J4 ~1 W" h' e( |
9 H. }5 e' w: v# h7 b
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 我没有试你这个
& x1 O  h7 V* {8 c5 v; r6 l0 j9 S" m2 D. c' o
不过你加个uf_call或者看下syslog 啥问题 % c/ T# M, y- d1 r3 W, f! `

7 R, i/ ~+ X7 b# Q" E
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

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

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:07
- u8 l+ e* e0 \! ]; S, i3 b& F! tUF_UI_create_filebox 我没有试你这个
: ~/ {/ r' A& o4 p- W" u9 v+ m: f) _0 b4 S! Z  T) P1 i, M$ Z; M
不过你加个uf_call或者看下syslog 啥问题
! l/ l* Q/ B# Z4 u; R% J- J
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。" @+ F6 B' d  _: W
我想用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( m3 T& W4 C4 R( i* ?0 Z: B+ L) g
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。- E$ z4 F( `9 _
我想用UF_UI_create_filebox ...

; B% J# a- l: T  v
+ t7 K2 c& G" ]- [  |#include <uf.h>  F2 T0 m( ~! Q* m# C
#include <uf_ui.h>
; D8 }, G4 }0 i$ Y1 ?- s#include <uf_exit.h># f+ ?' h, k, f, p4 U# L/ z
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
$ S$ V( ?. a, g6 q  }/ Z{) ]8 U  U5 W$ j+ e8 z9 t
        /* Initialize the API environment */& D9 p% E+ P* q" c7 a
        char *prompt_string="输入文件名";
/ U) y+ a  K4 h) J; T( @3 N+ n        char *title_string = "另存为";% ?7 |! b6 ~( O# \1 {
        char *filter_string = "E:\\+*.prt";2 p4 }, r9 J! ]1 e( F& Q
        char *default_name = "OK-PRT";
6 m. M+ M: |: \* l  V        char filename[256];- i2 h) O  i8 J) }1 N$ H
        int response;
! W! C( E, S8 H% b        UF_initialize();
$ ]/ ]1 C! A+ x: g! k        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);+ ?. j) b; e( ]9 ?' c0 O; ?# ?! J
        if (response ==UF_UI_OK)2 V/ f9 b. D9 E9 ~0 o8 w  z7 q
                uc1601(filename,1);$ v$ Z9 T5 w/ s$ S- J* m, X; R% c
        else if(response ==UF_UI_CANCEL)
- u# d" J9 g' t! Q2 P. y                uc1601("取消",1);
; J1 X& J. c* j; L        UF_terminate();
2 L) A" }/ G0 ^1 A* N$ k}
7 w) u6 k4 f) k: [5 I- L5 L/ Uextern int ufusr_ask_unload( void )
- `( q" e- t9 l3 R  e{
- m7 v' a6 F- t3 @  |  `        return( UF_UNLOAD_IMMEDIATELY );
. W" U' o$ _& b. r% U* y& f}

评分

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

    我知道了