青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2012-3-19 19:46 | 显示全部楼层 |阅读模式
问题一:
7 y7 D* |- _0 ]* A" M" \1 N
    本人在一段程序里 是想将已经打开的一个part部件 保存并关闭,用了下面的程序段:! X$ J- |1 u1 X' E! Y
   const char new_part_name[]="D\\new_block.prt";
- j$ H- |! b8 H. f( N  UF_PART_save_as(new_part_name);
5 V  W; y2 f/ h! y# I7 m6 D    tag_t part;, i) m- T  S8 Q$ Q+ E( V4 E4 _
    int scope=0;
: x: p4 \! c: W4 n) Q0 B7 M    int mode=1;9 q0 T8 s" F, a5 f" Z6 @
   UF_PART_close(part);- |2 X2 D" P' p
     生成DLL后 在ug里 只实现了部件另存为这一步 但是部件保存之后没有关闭 我用的是不是错了啊!请指点一下!谢谢
  `0 l! r; l. l9 b
   4 b( {5 C( B7 k/ G
    问题二:) I7 H, i8 @% ?8 B, T& }- }
     如果向上述的另存为操作一次的话 那所指定的文件夹就已经包含这个文件名的part部件了 如果再执行一次操作的话就会失败 因为都是在往一个文件夹放同样名字的部件,无法另建立啊!有没有这样一个函数 或方法 可以像Word文档另存为一样,有一个路径选择的步骤再保存??如下图这样的路径选择方式?
" k& V% K4 b# q+ R, w$ [ P}A$HN~`T`Z}T2{F0]QSO@5.jpg + L* D0 L- B/ x
发表于 2012-3-19 22:27 | 显示全部楼层
问题一:
+ o9 ?1 e4 u' Kpart=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);! F; U" C) P: z
UF_PART_close(part);8 `1 ?4 D# B8 d( h
问题二:
' y) f9 Y, {5 b2 j7 k先用UF_CFI_ask_file_exist()判断new_part_name是否存在,不存在则保存,存在则调用UF_UI_create_filebox()函数让用户自已选择要保存的路径...............+ y% x7 _1 r4 |) L

+ d2 |5 S- s6 P! d" z$ i3 ~* }* H. }3 h
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2012-3-20 16:32 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27
% c8 v! w) h! h2 K3 l, X! w7 H; \问题一:9 p; }" ^+ W3 ^- [9 H. O+ F
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
, j$ E% d3 |; N2 BUF_PART_close( ...

3 Q. R, L* K9 Y很感谢你!问题都解决了,但是UF_UI_create_filebox()这个函数还是不会用啊,里面有几个初始参数我不知道如何设置,我的程序如下,开始判断一个路径是否存在该文件了,判断如果存在(status==0),就用UF_UI_create_filebox  ()函数选择路径进行保存,是不是可以?红色这段是UF_UI_create_filebox()的程序段 你帮我看看把 怎么修改一下啊 谢谢!
+ w  m9 l8 G3 C; ^9 @6 {  const char file_spec[]="F:\\blocknew.prt";
1 }$ u1 I: Z  J% B  int status;6 F! f2 O8 {6 o# P' O
  UF_CFI_ask_file_exist(file_spec,&status);, ]  @. x  ]5 D4 I- ~! w8 Y; E- p
  if(status==0)
. {3 r( T7 L$ [3 F& U2 F4 Q0 U$ a      {, k9 X) j# v$ u& A) V5 [9 h% |* r7 I
         char prompt_string;5 d" R5 ~, y2 ^* i& C% c$ ~
         char title_string;
- K2 [* ^2 j: s- r- U7 W         char filter_string;7 K3 ^( [) P% z5 [. I
         char default_name;
' L* r: Q2 D1 a3 M/ S         char filename[]="blockname";
$ f9 j7 ]4 p% n         char response;
6 D; H7 x, j' z6 V$ S9 A& G' Z          UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,&filename,&response);- h0 q7 C0 X8 r" }& }9 }
       }7 U* J- x$ Z. j
  else5 r/ O/ f9 T% M. |, F) y+ o
      {
9 P1 k. x, K7 F3 W3 J9 Y       const char new_part_name[]="F:\\blocknew.prt";
6 R, x, i% e$ ?; a# @" t      UF_PART_save_as(new_part_name);( o! t, \" {4 q" l
      }
! v  l' M+ R  w2 J% h! H& q
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 17:48 | 显示全部楼层
qindongjun88 发表于 2012-3-21 16:25
) H; |' n# }; h5 i5 Y$ U) A1 `6 schar prompt_string;/ U* R' {. x! v8 o
              char title_string[]="另存为";
  I8 t8 G. \5 C; w4 {. c( H* z              char f ...

* v. l5 {( s0 d谢谢 你 我弄成了 在你的指导下,之前就是filename的大小没设定 ,我生成连接后只能存到四个盘下 却不能存到某个盘内的文件夹内 现在可以了 ,真的很感谢你 我做二次开发学习好些日子了 但是在一些函数上还是有疑问 希望有机会多跟你请教好吧...谢谢你
回复 支持 反对

使用道具 举报

发表于 2012-3-21 16:25 | 显示全部楼层
本帖最后由 qindongjun88 于 2012-3-21 16:30 编辑
" p) u) u+ H) ]- h3 R( M$ K6 b' W; c! h# M* K. Z/ q  G1 M1 V7 `
              char prompt_string;
( O( U: ^+ F$ n" H( n9 z2 t              char title_string[]="另存为";) e2 b; Q# {5 |$ D+ c  U
              char filter_string[]="*.prt";
: a9 }& }5 w) U7 C) H" e& B              char default_name[]="F:\\blocknew_1"; // ????" I3 A$ U; I- X' S' z7 ?
              char filename[256]=""; // ?????
' K8 p  p1 \/ x: X! |               int response;! {$ Y5 }$ k3 `# A( Y) ^
              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);
, M9 u8 D& U/ e! w7 Y4 F             uc1601(filename,1);//看看输出的结果是不是对的....
  G8 f$ t4 G5 T: l7 a5 B) u+ w$ d  o             UF_PART_save_as(filename);      
: U5 P1 L) z% y6 J- X3 @" o" L
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 13:05 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27 9 i( O; A- W' b/ b+ T8 k, H6 _5 A
问题一:
0 ?6 I: L! d! s/ }; _! tpart=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
( d0 S$ L  J% S5 U6 g' pUF_PART_close( ...
$ J1 a% a1 g" l# \6 c: b
现在另存为的对话框出来了,但是我点击确定后,一切都对,但并没有在路径下找到保存part文件,是不是我对于input和output变量理解错了?或者是不是prompt_string这个input我漏掉了怎么设置?红色这段是UF_UI_create_filebox()的程序段 帮我看看把 怎么修改一下啊 谢谢!
+ B8 t% g) v2 p$ E% ?+ ?  const char file_spec[]="F:\\blocknew.prt";: |0 ~  l9 l  p/ `- X, N  E
  int status;
. o" H5 `; r8 w4 M9 r- P5 {+ {! Y  UF_CFI_ask_file_exist(file_spec,&status);
7 }7 v2 U: a' E; ]( S% c. s+ T( f  if(status==0)
$ x8 ]3 i5 Z3 x8 r# f. D) ^/ w      {9 M4 q0 o0 S- G- v! r1 V& L7 p. N4 Y
              char prompt_string;, ]& o7 j8 [, _* b8 J
              char title_string[]="另存为";
- D/ m; q6 w6 f: f              char filter_string[]="*.prt";
. g3 ^+ F3 R" c% R# a4 p' b5 E              char default_name[]="blocknew";
6 ^* H4 c  _1 v0 |* X              char filename;
% Y9 ]/ g' P$ N' o4 J6 u4 r) t               int response;
( O" j" R8 _) ]5 a              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);' H* P! M5 C7 _
             UF_PART_save_as(filename);      
4 N" ~* b7 d0 i
       }/ o1 v0 I/ y0 z! C
  else3 p1 h( D9 V& d7 }+ [
      {5 u6 ?5 H' t! z, ~, c
       const char new_part_name[]="F:\\blocknew.prt";8 v1 |0 E) z" j* F+ i) h% `
      UF_PART_save_as(new_part_name);5 t1 S- q6 @. n% ?% c3 u) W
      }
1 o+ l/ y' r! F: w0 H
! g5 O8 `% [& n5 K
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-26 09:37 | 显示全部楼层
本帖最后由 kanggeng 于 2012-3-26 09:41 编辑
  m' J( a" Z( j  o( K5 z$ }
qindongjun88 发表于 2012-3-21 16:25 / X) R; U- G& y' c
char prompt_string;
# E2 P2 K3 |0 v) t              char title_string[]="另存为";8 T5 m3 k) {9 H6 v3 P0 q, L% X
              char f ...
$ D5 X4 N# O1 i; `& R. |5 @

7 V  h2 b2 c% Z  Z4 C. ?还需要麻烦你一下,用到一个UF_UI_add_to_sel_list()函数,我的程序是想把输入字符框的内容添加到选项菜单中去,初始的设置有点疑问。麻烦您看一下吧:* M, ]6 u5 y8 U7 G- E  ]
     UF_UI_selection_p_t select_;    //这里是不是选项菜单的设置啊? 我的选项菜单标识是CHANGE_OPTION_04 L; r8 l9 _: Z7 b
     int num=1;
* }$ O  P  _" B0 ?& Y     tag_t objs;    //这里是设置输入字符框的标识吗?我设置的字符框标识是NEW_STR_06 K( D+ w1 o; _. ]! b$ ^
     logical highlight_flag; 2 \3 K( C, _5 z. q+ U% v
     UF_UI_add_to_sel_list(select_ , num , &objs , highlight_flag);
- I4 F" H: P. h8 r2 j
) J/ V+ t, |# ]8 S( p& G还是我在理解上有偏差啊 请你指点一下好吧 谢谢你+ `( u1 _, y, ?& A) F* f& X9 |
下面点击新建进入添加型号的对话框
& L) t' c" Y/ N* H% {- K1 R 截图07.jpg " s4 o! b$ |8 _
然后在线串里面输入的字符点击OK后添加到型号选择的选项菜单中。
5 Q6 D9 h# O: _4 g$ k 截图08.jpg
9 l5 h1 ^- l3 w( |% Y7 c; \# [- Y5 \7 [: e7 d- x' b
5 D% p* K6 c# q1 y5 b7 K5 `

3 o1 K8 D' ~3 H' S' p& I' H2 R* @- G
# w7 i- @8 Q" @) v0 F  S2 [& F6 t; |9 T& O* c9 l
补充内容 (2012-3-26 20:28):) O6 W. @: X9 b$ P7 ~( n
data.item_attr=UF_STYLER_VALUE;; L, a3 C8 I% \! Y4 y3 W8 }5 s
         data.item_id=CHANGE_OPTION_0;
/ v& S! P; T% v0 u         UF_STYLER_ask_value(dialog_id,&data);
; F. G# r9 A; u) I7 D1 }8 n$ j- ^. T/ M         &data就是字符矿的输入量了吧?这时候# k0 T9 t; N! z9 S
         是不是UF_UI_add_to_sel_list(select,1,&
; l; L# x) o) `( E4 d
4 H6 p% k1 ?; G0 g. x% V补充内容 (2012-3-26 20:29):: ?: u0 e" n0 u! s9 y7 O1 Q6 n
data,highlight): R( j- C3 n% A7 h5 t6 Q1 @: H
         就可以了啊 那这个选项菜单的select是怎么设置啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-10 04:56 , Processed in 0.196546 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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