PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

文星和合 楼主

2015-5-1 11:53:07

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

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

x
0 ^1 ~, D5 z' H) j0 ?& `1 e
/*****************************************************************************+ p- Y  s3 I' Z3 o' Y7 q
**
9 P+ P2 c) E+ `6 Y% b** createfilebox.cpp
$ U' C* I. s1 ~- _**
' O( p6 d3 a0 I3 f% F** Description:( w, r* Q! Y2 m
**     Contains Unigraphics entry points for the application.
- O/ ?- l& D: `: }6 ^7 R**
4 d. q/ d0 C2 M9 U$ H7 G*****************************************************************************/8 @0 H5 w; k) F& |# I' ^
/* Include files */: ]) v0 G  K. t2 F
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
% t+ a7 r9 p: g4 @% @#   include <strstream>8 ~: h  t( P9 |# c; A
#   include <iostream>
4 c6 z! P$ m; N3 b1 @, J; F    using std:strstream;7 W4 B' Z5 K, E$ L* J+ G% ^
    using std::endl;    . i( q3 X3 n+ e$ Y" x
    using std::ends;3 p3 O$ Y3 i3 h) d% C
    using std::cerr;# j  d4 B. A5 w
#else6 n' I7 w; M+ d4 X- O) L0 m
#   include <strstream.h>* H  `. ~2 ~5 {! Q( S
#   include <iostream.h>
% \0 ?# J" @/ r5 g#endif
) i! Y7 g: A4 d. ^/ k7 R1 w" _9 R#include <uf.h>
8 D0 B: @* O2 _9 }( y#include <uf_ui.h>
- \8 [" m7 K; D8 j* u& G+ g( f#include <uf_exit.h>5 X7 S- W3 B5 z- M( L) I/ z
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X))). w& z. }1 X' }! B0 j: r( A9 r
static int report_error( char *file, int line, char *call, int irc)0 p3 n6 f( P* }
{8 z0 w* N, U, F( N6 J
    if (irc)9 d1 \( I: d: q! ?, B! l, j
    {
7 b1 e# J: L, ^% ~/ ~        char err[133],  X* G, u  d+ z
             msg[133];' L) J8 }' F9 O1 D2 J4 d
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",& [/ y8 U' {/ o! x: E, e; _5 J
            irc, line, file);
* u# g2 D6 X3 k3 H        UF_get_fail_message(irc, err);
  j0 d( b  h) w; R        UF_print_syslog(msg, FALSE);
# ~# c4 W- h8 u- q        UF_print_syslog(err, FALSE);: W: T; p5 v; p: [3 q4 f
        UF_print_syslog("\n", FALSE);1 T* C) b: M9 C# ]1 j( ~2 ~6 D7 S
        UF_print_syslog(call, FALSE);
. b( r. w5 c# Q9 L$ ~        UF_print_syslog(";\n", FALSE);! R4 f. X8 ?4 s# I$ `7 q+ d$ M
        if (!UF_UI_open_listing_window())
! ]' K! Q/ u9 \3 ~4 k' o        {; E$ `: Y8 Z' |/ @0 Y1 h$ G3 D
            UF_UI_write_listing_window(msg);) b2 H0 y& z! q: F! `, h
            UF_UI_write_listing_window(err);
# D% j# C; K7 r0 R7 o  K/ ^6 z) e            UF_UI_write_listing_window("\n");
' X7 _9 ?4 Y! V, l5 h            UF_UI_write_listing_window(call);
) A4 A: Q" Q$ G2 t% p1 a            UF_UI_write_listing_window(";\n");9 H1 x; O5 c& O" `0 E9 r4 y2 o" c
        }
- \2 d8 O' x% P9 m5 D# w2 U6 I    }
4 ~" L1 [' A. ?7 s    return(irc);
+ [" a9 w7 v5 C6 f: j}
: `: Z9 J8 ?- X5 V2 x, l. P  x& Z2 ]$ F7 K/ |' E
/*****************************************************************************5 a4 ]" g* u+ s0 m0 C2 j$ X
**  Activation Methods& J& r% E7 P, k3 e5 q5 x& D
*****************************************************************************/
& m: @/ U: H9 R, G; b/*  Explicit Activation
# T2 F0 P) g5 O) l' M  _) x" G7 D**      This entry point is used to activate the application explicitly, as in
* F& t  T6 \" E5 p4 |6 W. d**      "File->Execute UG/Open->User Function..." */- B/ x/ g* [% m8 Y
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )9 M" [1 X4 p. y8 b) y0 m$ i
{
8 P' W( C9 U5 U" P2 G6 U& _    /* Initialize the API environment */, o' e8 F  @0 {7 P0 z$ R' E
char prompt_string[]="open file";
  u3 i* z' D- p5 E char title_string[] = "select file";6 i6 X9 Y' ~1 M2 K/ E
char filter_string[] = "*.prt";0 C4 O1 S+ S0 H' J2 ~& }
char default_name[] = "my file";
/ g) B( ?: T( ]" n$ W8 l7 W1 v char filename[256];( g1 [' ~2 I  L
int response;- A; x! a: l. p3 q) K4 l3 d/ j
    if( UF_CALL(UF_initialize()) ) 4 v& y4 L7 G0 x; _# |
    {
  c0 V" ?6 h: N        /* Failed to initialize */
) `7 b' X& E- _" Q( w: i3 A        return;- c9 T2 `0 j- w3 T4 Z
    }. \8 i' }. d$ [. B  d& }' R- [, l) Z
   
7 q, Z% G) B5 J    /* TODO: Add your application code here */
7 P# P' r8 ?" {5 F/ k UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox
& N. P' `3 G" W, t. {' b; O    /* Terminate the API environment */( c. c) F: t4 i) t" [+ E- ?1 R" f
    UF_CALL(UF_terminate());" ?# }: E6 f' \5 U0 O
}
" _- {8 [+ J, L: S. g/*****************************************************************************( @5 Q0 c# v. F
**  Utilities
/ L+ o" r0 [% P7 O*****************************************************************************/
& l) @/ _3 L5 ?6 j/* Unload Handler/ E' U9 g. p7 Z8 t. u% W8 w
**     This function specifies when to unload your application from Unigraphics.
9 x( O& G' v7 J& a  h**     If your application registers a callback (from a MenuScript item or a
4 X6 [* R, z& Q" Q# S6 y) k**     User Defined Object for example), this function MUST return
  c7 I2 {" O1 q# L" S**     "UF_UNLOAD_UG_TERMINATE". */
8 ?- `4 F6 ^/ l, Y0 D6 Textern int ufusr_ask_unload( void )
5 G# h$ n* C% M1 e: C% v{
& M2 h* E. l1 n8 z+ }    return( UF_UNLOAD_IMMEDIATELY );
% q& D* j9 x& b' S% K}
: b" {. f+ C  U! X/ M. ?0 }1 K- \/ v) x: |
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 我没有试你这个 . e2 I1 K3 J1 d% v) o
$ H5 b% x* d2 u  h# X* a( l. R
不过你加个uf_call或者看下syslog 啥问题
. }0 j0 ?, u' F8 }) R' g5 n) M2 G1 B- T4 [5 Y
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

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

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:07
& b- O+ q" l2 |  Q7 @UF_UI_create_filebox 我没有试你这个 & D2 i; E' H. w3 O& \$ u3 z6 U

5 v0 f- y6 K8 h不过你加个uf_call或者看下syslog 啥问题
* O5 t: j& n5 K! b/ e; Y7 L9 }* U
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。" P2 z, N4 D0 W, |- t+ ~( T7 m2 j
我想用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: p  ~9 I7 h: w5 z! [# A' `
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
* R3 \) X) E) n我想用UF_UI_create_filebox ...

3 U! Y" K" r! s) g4 }4 C  O- ^  U. K9 n( y
#include <uf.h>
2 W: G4 d% O1 y0 d0 ?#include <uf_ui.h>7 n* Z5 F9 Y! g. J: j
#include <uf_exit.h>
% F3 g5 G0 r" v& Cextern DllExport void ufusr( char *parm, int *returnCode, int rlen )* r1 G9 |. C1 }+ P0 K% b- l( z# d
{( v9 B# x- B- G! I3 J5 i
        /* Initialize the API environment */& V: Z2 c- S: s$ }: ^; O
        char *prompt_string="输入文件名";1 _3 Y  a9 W1 h% x2 t0 f4 k+ Y
        char *title_string = "另存为";5 T% N' k" N6 z: c1 z  j8 l
        char *filter_string = "E:\\+*.prt";
5 H. l, g" O* k/ _* U# ^+ F3 j( d- z& [        char *default_name = "OK-PRT";" Y# y) v2 r9 }: C* {7 L
        char filename[256];
/ @( h; T. v1 n- g, H        int response;
* Q6 c* Q. A/ q( A  F        UF_initialize();/ _1 `$ `# D. d9 G0 f9 _
        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);" m$ H8 ?9 c  F2 Y( G- _& G# A7 q
        if (response ==UF_UI_OK)
8 @* L" }. b) b0 {, ?# w                uc1601(filename,1);2 s& S+ D9 A6 a$ G% ^
        else if(response ==UF_UI_CANCEL)
0 Y" O+ T+ H% R  W                uc1601("取消",1);  n/ U: A5 ^" V* j4 b* x8 S+ \
        UF_terminate();
$ P3 O/ h0 G$ K7 e; }# s& |}' D7 }" j  P: a' t8 L# A% X
extern int ufusr_ask_unload( void )
1 E2 g/ s, n/ q- z7 D8 O- Q) U# o{
, A; Q8 ~% @5 o. }$ N; C' a        return( UF_UNLOAD_IMMEDIATELY );  @5 p: X# ^! ^' l
}

评分

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

    我知道了