青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2158|回复: 7

[疑难] 关于UF_PART_close()的用法和部件保存的两个问题!求指点!

[复制链接]
发表于 2012-3-19 19:46 | 显示全部楼层 |阅读模式
问题一:) v4 i6 }, b# ]& D/ {
    本人在一段程序里 是想将已经打开的一个part部件 保存并关闭,用了下面的程序段:
1 _5 l# N) K( J% v: x, f   const char new_part_name[]="D\\new_block.prt";
& D6 ~. i* p1 \- x' I  UF_PART_save_as(new_part_name);
7 w4 M- a! y9 b* u$ L8 V. Y    tag_t part;0 D: C4 Y$ d0 B/ q( f* F
    int scope=0;9 x4 a  g& J- q3 G+ y
    int mode=1;
( _$ F' t+ D, I* d   UF_PART_close(part);
+ f  z/ R6 V4 [     生成DLL后 在ug里 只实现了部件另存为这一步 但是部件保存之后没有关闭 我用的是不是错了啊!请指点一下!谢谢& [! O& k. f9 @8 e* l, G2 h
   
  [% i4 ]+ i3 o7 M' W6 h& b    问题二:
0 B5 H9 Q; v  W; a1 l
     如果向上述的另存为操作一次的话 那所指定的文件夹就已经包含这个文件名的part部件了 如果再执行一次操作的话就会失败 因为都是在往一个文件夹放同样名字的部件,无法另建立啊!有没有这样一个函数 或方法 可以像Word文档另存为一样,有一个路径选择的步骤再保存??如下图这样的路径选择方式?0 ]2 P9 b: d$ Y! b
P}A$HN~`T`Z}T2{F0]QSO@5.jpg % K; p/ |5 P' f5 _2 h; Q
发表于 2012-3-19 22:27 | 显示全部楼层
问题一:9 m, F7 u/ P# u5 {
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
0 T8 Q+ |" ]8 L+ b$ t0 I$ DUF_PART_close(part);
: v5 z! w  l' {0 K* E问题二:0 z) x1 ~6 W  Y8 z( h0 i( {8 M) R
先用UF_CFI_ask_file_exist()判断new_part_name是否存在,不存在则保存,存在则调用UF_UI_create_filebox()函数让用户自已选择要保存的路径...............
( f5 i7 B. x9 I9 ]% W7 |
* m+ p' ?  w! q" y
7 u, o. x- f1 V1 p( a
回复 支持 反对

使用道具 举报

发表于 2012-3-19 20:02 | 显示全部楼层
问题二我好难处理啊...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-20 16:32 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27
9 r9 k3 ]* b0 P- k问题一:! H$ ?& e2 P0 h* y6 N
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
- D4 h1 S" [$ k. z" I! ]! xUF_PART_close( ...

8 ^+ U, D8 V( o, t2 L$ ?很感谢你!问题都解决了,但是UF_UI_create_filebox()这个函数还是不会用啊,里面有几个初始参数我不知道如何设置,我的程序如下,开始判断一个路径是否存在该文件了,判断如果存在(status==0),就用UF_UI_create_filebox  ()函数选择路径进行保存,是不是可以?红色这段是UF_UI_create_filebox()的程序段 你帮我看看把 怎么修改一下啊 谢谢!8 L- J* Z0 s: f; Z4 @
  const char file_spec[]="F:\\blocknew.prt";
# M& ^& N2 P' t5 S9 f; A, h  int status;% {* I9 e' w2 U0 X0 Z
  UF_CFI_ask_file_exist(file_spec,&status);: t" \5 S6 v2 z! U+ A1 \! X% v2 T
  if(status==0)1 z. V' O; I& {
      {, \. D* n! u' m/ |$ W
         char prompt_string;5 J  ^8 S1 Y/ B" v
         char title_string;
! }7 f6 T5 V; ]4 p7 V. ~$ G8 _- U         char filter_string;
* l# b  M: `+ S, o  R8 z         char default_name;
1 `+ O7 b% `8 H8 ~         char filename[]="blockname";/ i2 h  D7 b+ L8 p$ o$ \, @3 {: q# w
         char response;% Q" E8 Y7 g/ N6 p0 }2 y8 a
          UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,&filename,&response);
7 T1 q+ q5 S  p: q
       }
0 r( F! Y# Z9 n3 a( ]  else1 V- T( i, r9 F- P' C* t, n$ K
      {. v$ y& R  u% E9 o  W7 J& Q4 [+ C9 g, Q
       const char new_part_name[]="F:\\blocknew.prt";* }! n' c5 g$ k9 I5 O* T
      UF_PART_save_as(new_part_name);7 U* P/ Z0 V4 y
      }8 k/ p7 @9 D( c5 L& K1 `, Q. r
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 17:48 | 显示全部楼层
qindongjun88 发表于 2012-3-21 16:25 % l4 Z9 Z& [  m% E$ a
char prompt_string;
0 G! e3 ~' T, N& L) @. O              char title_string[]="另存为";
4 I$ b3 w- `8 \              char f ...
+ a8 b' P5 ~. s! E; l
谢谢 你 我弄成了 在你的指导下,之前就是filename的大小没设定 ,我生成连接后只能存到四个盘下 却不能存到某个盘内的文件夹内 现在可以了 ,真的很感谢你 我做二次开发学习好些日子了 但是在一些函数上还是有疑问 希望有机会多跟你请教好吧...谢谢你
回复 支持 反对

使用道具 举报

发表于 2012-3-21 16:25 | 显示全部楼层
本帖最后由 qindongjun88 于 2012-3-21 16:30 编辑 # A0 g( x% |+ J' F5 I
9 K) ^1 f" E: C3 Q. W
              char prompt_string;
2 [0 m, N- Y- c              char title_string[]="另存为";" L4 `, N" g* c9 E
              char filter_string[]="*.prt";
3 Z3 z; Z: W4 O/ T3 R6 Z              char default_name[]="F:\\blocknew_1"; // ????& r; [1 ]: x1 E" w! j. d9 M: e  H
              char filename[256]=""; // ?????2 X! q" f6 Q( `9 v. z: Y9 p
               int response;; n/ J( V( ?. x, j7 F7 G+ G
              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);
, o8 ]3 o; n! w0 N1 \6 w- o/ l! g             uc1601(filename,1);//看看输出的结果是不是对的....
1 G4 O# Q, i0 C& v% q             UF_PART_save_as(filename);      
" w. b# T& b' I. p  g, q
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 13:05 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27 - ?$ ^0 L+ S# ^
问题一:0 ^; w' E" R0 B8 A' Z  ^
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);. U2 `4 T5 ]4 c1 K0 W% r
UF_PART_close( ...

4 z) m4 R! p2 e" }0 x现在另存为的对话框出来了,但是我点击确定后,一切都对,但并没有在路径下找到保存part文件,是不是我对于input和output变量理解错了?或者是不是prompt_string这个input我漏掉了怎么设置?红色这段是UF_UI_create_filebox()的程序段 帮我看看把 怎么修改一下啊 谢谢!
) V, V9 L- i9 V6 R2 t  const char file_spec[]="F:\\blocknew.prt";+ y3 k$ A. p# U! x) @
  int status;
+ Z) V; ?* A) {  UF_CFI_ask_file_exist(file_spec,&status);+ E9 V1 `. m$ V8 _3 e4 a
  if(status==0)9 h* C3 U( X$ A- @" _, Q+ {- _
      {7 v+ M6 O6 Q! O' d$ |
              char prompt_string;
5 f' P0 V! A$ g; B4 q( [              char title_string[]="另存为";2 C# J! d( r8 [; K7 L  D; e0 M( n
              char filter_string[]="*.prt";
8 ~- Z- ]. Z% ^              char default_name[]="blocknew";- v! W, |# Q8 N" E- ]* c$ H
              char filename;
$ c; Z! t+ r+ E$ v+ S               int response;4 w+ B6 @3 b1 [& v$ `
              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);" u8 F. Z( u* `& F
             UF_PART_save_as(filename);      7 X: N& u: ~2 E" v4 w& [) R
       }
# p) Q4 S9 S1 z7 J' j  else# ]; M5 C, o5 H: e. {( d
      {( _& \# b5 D7 E" Y. a! ~, K$ n
       const char new_part_name[]="F:\\blocknew.prt";" {4 ?) C  E2 k/ {7 `
      UF_PART_save_as(new_part_name);9 T) {( d( `# r% G* n
      }
+ C4 a: x& R1 D8 A% @. Z4 t
( i* d& n: Z3 E  [. a/ B' f4 F" F  X
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-26 09:37 | 显示全部楼层
本帖最后由 kanggeng 于 2012-3-26 09:41 编辑
# g& ?0 O) j3 i: q/ s. M1 D; ^
qindongjun88 发表于 2012-3-21 16:25
0 c) {' u/ _" F, ?( D, |char prompt_string;
& l3 f5 b+ K. Z% U5 i              char title_string[]="另存为";+ P- ]' Q: F7 j9 U+ x, d
              char f ...

, K& v- |/ Z# ?/ `- E4 r
7 ^, H0 `' V8 K1 c$ ^$ z& _! @! r* b还需要麻烦你一下,用到一个UF_UI_add_to_sel_list()函数,我的程序是想把输入字符框的内容添加到选项菜单中去,初始的设置有点疑问。麻烦您看一下吧:
! \3 X' C8 b9 x. P/ ~$ q. h     UF_UI_selection_p_t select_;    //这里是不是选项菜单的设置啊? 我的选项菜单标识是CHANGE_OPTION_0, i  j+ m$ _1 T
     int num=1;
7 Y4 n' K3 E" \( E% {     tag_t objs;    //这里是设置输入字符框的标识吗?我设置的字符框标识是NEW_STR_0
: v2 ~4 b8 O7 K     logical highlight_flag;
1 k/ c2 P& D+ L1 O, Y8 ?     UF_UI_add_to_sel_list(select_ , num , &objs , highlight_flag);; ^( u) v+ V% g# {- X
& W8 @; Z6 l' }4 [1 b. b- a; y
还是我在理解上有偏差啊 请你指点一下好吧 谢谢你" D7 @3 C' C2 G: d4 g' f
下面点击新建进入添加型号的对话框
7 l- D( N1 [# q. e3 B$ [+ X 截图07.jpg
9 z7 d' _: @# h1 w然后在线串里面输入的字符点击OK后添加到型号选择的选项菜单中。
3 |* F, D  R( Y6 J- A% v# u 截图08.jpg - c- `1 o5 N8 [" [0 h1 h( Z( {
" B: X% a2 q9 n% m

( p$ ]! U3 ~% Q- X1 M* S9 }$ r- R( U. J3 u; I
2 k% b8 V' E" H

% G. Y7 @6 ]9 O" @, K) C7 y补充内容 (2012-3-26 20:28):
1 A8 m, h0 I% m  l, E( {. qdata.item_attr=UF_STYLER_VALUE;
" e% S! L# C) }% }+ t         data.item_id=CHANGE_OPTION_0;
( j8 {1 E' D9 j: a& C/ }; e         UF_STYLER_ask_value(dialog_id,&data);, C- C- `+ `, t0 K# h
         &data就是字符矿的输入量了吧?这时候
& J+ r, U& c. l         是不是UF_UI_add_to_sel_list(select,1,&% y! q5 k* w/ r2 D) o
! w  i- t4 d& k6 F8 A5 U; Y
补充内容 (2012-3-26 20:29):
/ l1 X: Z7 `" C+ L! t& Idata,highlight)
& |, y% l0 M$ p4 K4 n         就可以了啊 那这个选项菜单的select是怎么设置啊
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-9-16 06:24 , Processed in 0.062399 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表