青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2012-3-19 19:46 | 显示全部楼层 |阅读模式
问题一:
1 U) d2 W6 {: \$ j2 p* k9 Z
    本人在一段程序里 是想将已经打开的一个part部件 保存并关闭,用了下面的程序段:% x  A5 w# Y* \! V
   const char new_part_name[]="D\\new_block.prt";3 Q1 E. o5 N7 {0 [
  UF_PART_save_as(new_part_name);, ?, W- q3 u- r/ p
    tag_t part;
* s, ~& i8 ?' [  b0 G. E    int scope=0;" }& `: B2 S6 C9 @; v
    int mode=1;
/ I, P8 x5 o$ K: i. e  t: u( f   UF_PART_close(part);
4 s3 E" @! w- f- c, t7 L& Y8 Y2 [4 U     生成DLL后 在ug里 只实现了部件另存为这一步 但是部件保存之后没有关闭 我用的是不是错了啊!请指点一下!谢谢
; x; G! W  y, m/ A* q( g
     r# ]6 m7 E1 P  M- Y+ o
    问题二:2 Y" s' G0 `: p1 i) ?
     如果向上述的另存为操作一次的话 那所指定的文件夹就已经包含这个文件名的part部件了 如果再执行一次操作的话就会失败 因为都是在往一个文件夹放同样名字的部件,无法另建立啊!有没有这样一个函数 或方法 可以像Word文档另存为一样,有一个路径选择的步骤再保存??如下图这样的路径选择方式?7 w4 y- I4 V4 s* \5 F2 T9 _! t
P}A$HN~`T`Z}T2{F0]QSO@5.jpg 0 ~/ P4 j2 u8 p6 v/ w# ~
发表于 2012-3-19 22:27 | 显示全部楼层
问题一:
1 O0 O; }8 Q4 y, I( M4 Kpart=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);. x- G* V6 ?+ t4 U# E
UF_PART_close(part);1 b3 a9 X" I  B7 H  L6 R* a/ g7 l/ N
问题二:! j/ E4 l. n! W9 r
先用UF_CFI_ask_file_exist()判断new_part_name是否存在,不存在则保存,存在则调用UF_UI_create_filebox()函数让用户自已选择要保存的路径...............4 S  ?% s* w7 ~

2 G, N. C6 [' Y: H/ y
5 j# l( I- n/ Y8 G$ S
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2012-3-20 16:32 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27
* r) ^' n( U8 ]3 C问题一:& X7 T( y  V6 u; }
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);" k0 {# w7 ~$ K% x" N1 L3 ?' _
UF_PART_close( ...

0 }6 D$ h1 ?! F6 Y1 C! o很感谢你!问题都解决了,但是UF_UI_create_filebox()这个函数还是不会用啊,里面有几个初始参数我不知道如何设置,我的程序如下,开始判断一个路径是否存在该文件了,判断如果存在(status==0),就用UF_UI_create_filebox  ()函数选择路径进行保存,是不是可以?红色这段是UF_UI_create_filebox()的程序段 你帮我看看把 怎么修改一下啊 谢谢!
) R+ V# p( o; s* L  const char file_spec[]="F:\\blocknew.prt";0 g6 a8 t/ @% `
  int status;6 \/ u( g& B( K3 K5 I* n$ U( c
  UF_CFI_ask_file_exist(file_spec,&status);, y+ j. G& L8 y  v+ Y
  if(status==0), U( {7 }$ v. u$ \
      {" l5 }$ M+ l, |1 Y- k
         char prompt_string;
. [: U/ c. u: f! S/ l         char title_string;
; h% o+ p* H* Y7 ^; L         char filter_string;, c3 Q7 _5 s* P) c$ }3 N% C
         char default_name;- }5 s( F  Z$ o# ~4 [
         char filename[]="blockname";
7 L* L* n$ r9 b4 p" B         char response;
  _0 {& i; q% x* |          UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,&filename,&response);9 S( x. ?% I( [7 r
       }' L# }7 v8 K/ e; L8 G0 L. t5 V
  else
  t( @8 E: F: G7 C# z      {
/ E( ~! x1 d9 o/ D. J       const char new_part_name[]="F:\\blocknew.prt";
8 \3 d0 |- a3 g3 |7 R      UF_PART_save_as(new_part_name);! a- i, u2 t% Y  G( J8 `3 Y" h! q
      }
) D  ]& Y( {5 O" I& ]9 N
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 17:48 | 显示全部楼层
qindongjun88 发表于 2012-3-21 16:25 2 }0 S4 X2 q2 N( u! |) \0 p$ v% l
char prompt_string;3 `9 o% |2 P# D0 a. x
              char title_string[]="另存为";
6 T" z9 C/ o/ A# k$ P$ E              char f ...

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

使用道具 举报

发表于 2012-3-21 16:25 | 显示全部楼层
本帖最后由 qindongjun88 于 2012-3-21 16:30 编辑
/ w8 Y: h" s6 u8 M& E1 U5 B9 c& l2 c4 B- ?3 e" g
              char prompt_string;' Y; ~& Q: H' h9 _
              char title_string[]="另存为";0 |  U4 m7 I6 d. O
              char filter_string[]="*.prt";# V( c8 V; ^! [, F8 C* d* l$ x
              char default_name[]="F:\\blocknew_1"; // ????% Q3 Z; ~  l7 [3 e
              char filename[256]=""; // ?????+ \3 h2 ^5 E" D- w  T8 v
               int response;9 V6 \7 T  r- w0 C2 U' R" M- t
              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);
! \8 z; l0 J1 b             uc1601(filename,1);//看看输出的结果是不是对的....  i2 w6 ?# t; w* B
             UF_PART_save_as(filename);      6 H: \% J5 O# I9 d4 M5 l
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 13:05 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27 6 B2 H+ F" [6 }+ i9 M* C1 O3 |
问题一:4 _6 `  f3 _& J' ]
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);; P+ |( t1 V+ I) T, z1 R# p- y
UF_PART_close( ...
0 A  I6 P: {* [7 s2 g
现在另存为的对话框出来了,但是我点击确定后,一切都对,但并没有在路径下找到保存part文件,是不是我对于input和output变量理解错了?或者是不是prompt_string这个input我漏掉了怎么设置?红色这段是UF_UI_create_filebox()的程序段 帮我看看把 怎么修改一下啊 谢谢!5 j! \* @0 ?# v
  const char file_spec[]="F:\\blocknew.prt";
- U- Z7 n6 N( L+ Y7 o) E  int status;+ D/ g. d, r/ X+ P+ ^  G$ H$ d& r2 `& w
  UF_CFI_ask_file_exist(file_spec,&status);0 V5 {, w' u; T$ [# F
  if(status==0)* C( }- s) E/ [! w, O% ]* p
      {; g, w$ c" W  `- r3 b7 g
              char prompt_string;
! r' T/ Z, J, l3 M* a              char title_string[]="另存为";; v" N. `& k# D2 i
              char filter_string[]="*.prt";
3 t8 q0 B" P* a% i1 f              char default_name[]="blocknew";
  O( N% A% y3 P# q+ Q: S              char filename;: I4 k; Z$ L# x- U0 d
               int response;
; U  f# L5 B6 k, o! z7 v              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);
8 E) |. z4 F( `7 m4 K5 a             UF_PART_save_as(filename);      + m) \1 ?2 j3 B% k, m" p9 E
       }$ V3 G0 `3 s2 c$ V5 V: s  Q$ w
  else. W) ~# p% A, k0 [: l
      {% l. @" I: q- `8 X# [: P
       const char new_part_name[]="F:\\blocknew.prt";: k; h& S! w# y9 k2 o! n3 u1 P
      UF_PART_save_as(new_part_name);' ]5 j5 m* @! Z2 `
      }
2 S: f. l% S9 j+ |/ N4 W% b: M' ~# [- e: `" D# O# o" s
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-26 09:37 | 显示全部楼层
本帖最后由 kanggeng 于 2012-3-26 09:41 编辑 8 X! ~; _( V1 x8 {- Y
qindongjun88 发表于 2012-3-21 16:25   o5 l8 C7 c' Z; Y  l/ z
char prompt_string;
$ b2 `4 k) N) Q6 l              char title_string[]="另存为";
! t5 S/ W' q* w; `3 E              char f ...

6 f8 Y7 w2 y1 u# u0 H; S: q3 L7 y7 {$ X
还需要麻烦你一下,用到一个UF_UI_add_to_sel_list()函数,我的程序是想把输入字符框的内容添加到选项菜单中去,初始的设置有点疑问。麻烦您看一下吧:
: |, S! V2 {6 H' K     UF_UI_selection_p_t select_;    //这里是不是选项菜单的设置啊? 我的选项菜单标识是CHANGE_OPTION_0
, U! M9 y+ ^) C5 Y# X: B4 Z7 ?: s     int num=1; 2 k3 }, B- A8 N, N4 F% x
     tag_t objs;    //这里是设置输入字符框的标识吗?我设置的字符框标识是NEW_STR_0
* S& P) [* W2 j) x- ?% C5 i8 p     logical highlight_flag; 0 Q4 I2 ~+ ]* F
     UF_UI_add_to_sel_list(select_ , num , &objs , highlight_flag);# Y5 q1 G/ t8 |9 h- O# y4 b% ^' N
. T+ C/ X: P4 ~! U3 |, p
还是我在理解上有偏差啊 请你指点一下好吧 谢谢你
! k: D4 s4 C! j. V, z0 p9 X下面点击新建进入添加型号的对话框3 A% s- l# t0 P$ p
截图07.jpg ) ?6 m. M/ [5 V2 I7 I4 r& ~; h3 `+ B0 @" ?
然后在线串里面输入的字符点击OK后添加到型号选择的选项菜单中。
" O5 X. j4 ^3 o! d- ]7 q 截图08.jpg
+ f- B% g% q6 O' X0 ?5 L; y4 M$ n2 j  {  f! O. }8 A" E- [

3 m$ K5 D* r7 T2 q/ ^
( Y) `$ f' Z. H- ?( ?
/ }6 Z& X2 H: W6 Q3 e6 `
. \% Q; m6 \& {5 q+ p2 c% A, z补充内容 (2012-3-26 20:28):
" M  s, X4 c) adata.item_attr=UF_STYLER_VALUE;: T; u# h! F" Y. k% p; k
         data.item_id=CHANGE_OPTION_0;
& b( I7 f8 C8 o         UF_STYLER_ask_value(dialog_id,&data);
& g( ]# J% N* h         &data就是字符矿的输入量了吧?这时候- f+ ~6 p2 C) K9 w) \) x; u2 {+ q
         是不是UF_UI_add_to_sel_list(select,1,&
! Z( `3 {9 I" C' B  [1 _3 x, K8 x" C6 Q6 E/ e8 @
补充内容 (2012-3-26 20:29):! `5 U9 @  S) T& B- ]7 M. R
data,highlight)6 w# l: M- D8 D! [) }
         就可以了啊 那这个选项菜单的select是怎么设置啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-1 06:23 , Processed in 0.195398 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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