青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2012-3-19 19:46 | 显示全部楼层 |阅读模式
问题一:
7 k3 x, S4 N! W3 @! |8 v6 K4 n3 z- I
    本人在一段程序里 是想将已经打开的一个part部件 保存并关闭,用了下面的程序段:
  t; ~) O: P4 j' u) l/ A4 H   const char new_part_name[]="D\\new_block.prt";
0 X- y  C( ]4 b. P4 Y  C  UF_PART_save_as(new_part_name);
$ @( E5 M) `2 [  l1 U! O! b  B* I    tag_t part;
) B. o+ V/ T; \9 x' L# v: u2 f    int scope=0;; e7 l6 z9 E4 [" U3 N
    int mode=1;
: i) y; m& V* m1 D* j   UF_PART_close(part);1 p, L) n3 g; E$ s! Z7 a7 u' y
     生成DLL后 在ug里 只实现了部件另存为这一步 但是部件保存之后没有关闭 我用的是不是错了啊!请指点一下!谢谢7 a6 f( `+ P4 S8 R: v& ~) T; p
   
! d# @" R; @1 R    问题二:' F" g# y+ p/ L) f& R4 h
     如果向上述的另存为操作一次的话 那所指定的文件夹就已经包含这个文件名的part部件了 如果再执行一次操作的话就会失败 因为都是在往一个文件夹放同样名字的部件,无法另建立啊!有没有这样一个函数 或方法 可以像Word文档另存为一样,有一个路径选择的步骤再保存??如下图这样的路径选择方式?
3 ^( ~7 z" {* M2 [( m P}A$HN~`T`Z}T2{F0]QSO@5.jpg ' c' E0 f; l8 f# O" L
发表于 2012-3-19 22:27 | 显示全部楼层
问题一:
7 e; d$ h9 |* ?% n0 V% I) lpart=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);% M/ g" B' F) z6 p0 K( N
UF_PART_close(part);
! L3 e8 Q7 P, e. @# X$ s% |问题二:
# \3 z# H. _5 W% |# X! h3 n先用UF_CFI_ask_file_exist()判断new_part_name是否存在,不存在则保存,存在则调用UF_UI_create_filebox()函数让用户自已选择要保存的路径...............- L5 Z- w2 R# }. M$ }( ?

& r* k( h. e& n! ?1 g; F4 y( m9 W( r0 U5 A& {* `% s2 r
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2012-3-20 16:32 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27 $ H5 r8 q) q; l) n; X+ l7 u! |& O
问题一:  v5 [1 b3 L& P3 j( m
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
: ?  S8 ^" @6 w9 N* T, q# LUF_PART_close( ...

7 ?; _& X- I* H9 n很感谢你!问题都解决了,但是UF_UI_create_filebox()这个函数还是不会用啊,里面有几个初始参数我不知道如何设置,我的程序如下,开始判断一个路径是否存在该文件了,判断如果存在(status==0),就用UF_UI_create_filebox  ()函数选择路径进行保存,是不是可以?红色这段是UF_UI_create_filebox()的程序段 你帮我看看把 怎么修改一下啊 谢谢!
- M( {2 v- b5 l, a( Z' O4 h( _7 S, I6 F0 H  const char file_spec[]="F:\\blocknew.prt";
# D( c" e% Y8 k% w) D  int status;6 `. y  a' F! \7 b& B; h$ r9 x; r
  UF_CFI_ask_file_exist(file_spec,&status);) u. D8 `% b5 B0 I' v3 A5 y6 ~, y
  if(status==0)& I7 d/ |! U, ~2 l6 \( s/ q
      {4 T0 @0 E" z( F5 b. o" W
         char prompt_string;$ s% k0 B) G: m# H+ s. ~
         char title_string;, P1 v5 M! Z/ ]+ r$ P
         char filter_string;
$ G6 \* S) H! P$ c         char default_name;- F7 |+ w/ J5 j7 S' t  V
         char filename[]="blockname";" R( t- X7 l  B
         char response;4 S+ l4 U8 x! }
          UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,&filename,&response);$ ]" d# t/ j; U' V3 n
       }, t! e$ e3 l. Z* R* G6 u
  else& M2 Y0 s; e" x9 {, k0 a
      {0 }* \6 T  q( k) G9 g6 @( L( L
       const char new_part_name[]="F:\\blocknew.prt";% c9 a9 I( z* u5 H8 o
      UF_PART_save_as(new_part_name);
; s7 ]( B0 y5 P. r: ?. I# i5 y      }9 o4 g9 w* g* b; j0 {6 r' a
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 17:48 | 显示全部楼层
qindongjun88 发表于 2012-3-21 16:25
! [8 g2 y/ s0 P+ Pchar prompt_string;
6 E3 I( L. ^2 t  B              char title_string[]="另存为";
) d4 w9 O* p, m1 `              char f ...
- q( w7 y" s/ B! v0 N
谢谢 你 我弄成了 在你的指导下,之前就是filename的大小没设定 ,我生成连接后只能存到四个盘下 却不能存到某个盘内的文件夹内 现在可以了 ,真的很感谢你 我做二次开发学习好些日子了 但是在一些函数上还是有疑问 希望有机会多跟你请教好吧...谢谢你
回复 支持 反对

使用道具 举报

发表于 2012-3-21 16:25 | 显示全部楼层
本帖最后由 qindongjun88 于 2012-3-21 16:30 编辑
& s3 U' Q2 D, I) w) B1 D
0 F+ q0 L' }# o& e& E* b; [              char prompt_string;8 a& h+ a% Y6 I5 E
              char title_string[]="另存为";
* l5 j  h. Q4 m% h. n1 F, b$ e& q( i              char filter_string[]="*.prt";
, |1 ~( q5 Q. f. z7 Q3 P              char default_name[]="F:\\blocknew_1"; // ????
. }: f' Y4 ]9 M0 K5 T3 ^, ~7 x8 L! T              char filename[256]=""; // ?????
3 b& r9 q1 J; F; q) s               int response;
' W' P3 |, u/ T# h; L              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);
, O; t4 S9 |1 S; o             uc1601(filename,1);//看看输出的结果是不是对的..... w9 H% E1 C1 Z1 h
             UF_PART_save_as(filename);      2 v& O% N) t" M; y2 i6 v$ u
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 13:05 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27
! C; n3 ~1 C* {2 ^' |- F问题一:" |9 F% V# X7 a7 M* U) _, S; q
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
. ^* k' N( G) N- X: }UF_PART_close( ...
- e- n3 _- p4 h! Q3 B* G
现在另存为的对话框出来了,但是我点击确定后,一切都对,但并没有在路径下找到保存part文件,是不是我对于input和output变量理解错了?或者是不是prompt_string这个input我漏掉了怎么设置?红色这段是UF_UI_create_filebox()的程序段 帮我看看把 怎么修改一下啊 谢谢!/ }* W- v' l: h% }6 g  r
  const char file_spec[]="F:\\blocknew.prt";
- {) q; @" Q; p: }; h7 n% x  int status;
( M! S; G! M2 H8 k  UF_CFI_ask_file_exist(file_spec,&status);( ^; i2 K8 y& X  ]
  if(status==0); N( q$ D7 {$ Y! S
      {
. q$ y9 V  X; N1 Y              char prompt_string;+ K: Q4 U: M) i+ P: h. h; ~
              char title_string[]="另存为";
) |% \( B- @+ q2 O7 |+ b              char filter_string[]="*.prt";
$ T9 g9 i3 E" d              char default_name[]="blocknew";  Q0 M  E: [& X( W# _% Y9 i
              char filename;
  m1 \8 n+ O9 Y6 }! w- l) d" f               int response;
. Q' X9 b5 H( v              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);$ a8 e7 _# t; p* k5 T9 y6 U! ^$ O
             UF_PART_save_as(filename);      8 ]/ f3 B! s; [* L+ o3 [( w+ S0 h
       }, j+ h, L% `4 |: j9 J: y/ q# D5 p
  else
" S# u1 s3 A8 z' y  p      {
+ ?3 ~$ G2 b- a" B( q& L3 ^9 X       const char new_part_name[]="F:\\blocknew.prt";
6 s- K& x' ?( z+ f* S      UF_PART_save_as(new_part_name);, M, Z" I4 b- }6 A" ^( X
      }- ?2 s& K( @9 `7 E% Z, R

& Y' e" v! C2 n4 Y
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-26 09:37 | 显示全部楼层
本帖最后由 kanggeng 于 2012-3-26 09:41 编辑   B# i  H7 _/ e2 {( C4 K) h$ k- s
qindongjun88 发表于 2012-3-21 16:25 / j/ D/ f$ z  s  u9 p9 l
char prompt_string;
+ W: r3 a7 H; W8 V4 B6 p$ h$ ~              char title_string[]="另存为";
8 B  p+ s# d7 C4 t. A2 S  ~              char f ...

# R9 r( |/ N' E
8 o  N. I( {5 D4 _还需要麻烦你一下,用到一个UF_UI_add_to_sel_list()函数,我的程序是想把输入字符框的内容添加到选项菜单中去,初始的设置有点疑问。麻烦您看一下吧:
* J% Y0 N; x. o  s+ I: Z     UF_UI_selection_p_t select_;    //这里是不是选项菜单的设置啊? 我的选项菜单标识是CHANGE_OPTION_0
- J; K- ~+ i$ W) g     int num=1; - N" B% c2 [* Q8 `0 S
     tag_t objs;    //这里是设置输入字符框的标识吗?我设置的字符框标识是NEW_STR_0+ x2 h  E2 p& r* P
     logical highlight_flag;
# E1 T9 N# u9 p% _2 X, f9 b     UF_UI_add_to_sel_list(select_ , num , &objs , highlight_flag);7 n- X5 z3 ?, C, W1 W1 M0 @/ F
' ^$ y# X4 _2 f( V
还是我在理解上有偏差啊 请你指点一下好吧 谢谢你
& [# h- D0 e0 C4 S7 j$ O下面点击新建进入添加型号的对话框+ O/ S$ _. n& m. h! g
截图07.jpg 0 z( ]# c5 ~7 W% x4 x% U! ^8 c1 C% B
然后在线串里面输入的字符点击OK后添加到型号选择的选项菜单中。6 W9 ?1 h; l; ?+ h4 F
截图08.jpg
3 @1 o& L8 m3 ?* x, `  s7 a" a0 B! o5 W) n. r' B+ w
: o$ B  Y) v0 H0 X- z; E# o

  h0 O5 c; W" H" ?* h9 g6 Q' h- s$ ]$ j, }4 i8 ]

$ k; m5 i' ^& F补充内容 (2012-3-26 20:28):7 E& [% T) X2 T" s' o
data.item_attr=UF_STYLER_VALUE;3 \6 P  b( d7 {! r1 C
         data.item_id=CHANGE_OPTION_0;( Y( Q0 o$ V% @2 {- C( j
         UF_STYLER_ask_value(dialog_id,&data);4 A' }; o6 p& I" r1 d
         &data就是字符矿的输入量了吧?这时候' C" `# R# m7 s$ k" z5 d4 w/ P
         是不是UF_UI_add_to_sel_list(select,1,&. }* s" `  d* o, J+ d/ R

: [# G+ Y0 ?7 A# B补充内容 (2012-3-26 20:29):
3 z; {- V+ D$ [1 {  Wdata,highlight)! |' ?& ]7 o, Y
         就可以了啊 那这个选项菜单的select是怎么设置啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-10 05:35 , Processed in 0.255438 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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