青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2012-3-19 19:46 | 显示全部楼层 |阅读模式
问题一:
/ w0 j  j& O+ Q  n9 _/ \) x
    本人在一段程序里 是想将已经打开的一个part部件 保存并关闭,用了下面的程序段:
9 a5 A/ t2 d# p$ u  S$ a0 X   const char new_part_name[]="D\\new_block.prt";# j, V, e; v# C1 E* g8 `; t6 O' B
  UF_PART_save_as(new_part_name);
' j1 H6 t+ @8 b: _    tag_t part;
  m, x, c# ~5 N+ K$ ~    int scope=0;" {6 w, F+ h/ X
    int mode=1;
8 b9 t2 G9 J2 V   UF_PART_close(part);: v8 [8 y% @7 `' D' @/ ?' [% R
     生成DLL后 在ug里 只实现了部件另存为这一步 但是部件保存之后没有关闭 我用的是不是错了啊!请指点一下!谢谢
) R& E6 N+ W1 {4 [& M
   
4 Z) h8 L  M9 b& k4 @$ \$ R    问题二:
( R( t; k( L7 ~& U; e5 W
     如果向上述的另存为操作一次的话 那所指定的文件夹就已经包含这个文件名的part部件了 如果再执行一次操作的话就会失败 因为都是在往一个文件夹放同样名字的部件,无法另建立啊!有没有这样一个函数 或方法 可以像Word文档另存为一样,有一个路径选择的步骤再保存??如下图这样的路径选择方式?0 l1 P( k0 @; H  n6 ^5 c) W! m
P}A$HN~`T`Z}T2{F0]QSO@5.jpg
4 X, i, ?) n# ]7 |
发表于 2012-3-19 22:27 | 显示全部楼层
问题一:
2 C4 O% t  ?3 X2 |& Opart=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
/ I( ~) p, t) h) ~# M, gUF_PART_close(part);
/ J) y$ f* e0 E问题二:
) [8 u3 k* m5 L' Q: o7 |0 u* Z先用UF_CFI_ask_file_exist()判断new_part_name是否存在,不存在则保存,存在则调用UF_UI_create_filebox()函数让用户自已选择要保存的路径...............0 v! |/ ]+ N7 O" W
+ p; a9 ?, r9 J# m3 o& u
3 h# f/ q5 z! t  ^# L
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2012-3-20 16:32 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27 1 h5 ^6 m4 V5 L2 Y
问题一:6 S; \) q! P% e( t; \
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);. g  a& X0 O. r2 w' ^* S* ^8 J
UF_PART_close( ...
# k; t: t. G2 t, d* ?( I! @# b
很感谢你!问题都解决了,但是UF_UI_create_filebox()这个函数还是不会用啊,里面有几个初始参数我不知道如何设置,我的程序如下,开始判断一个路径是否存在该文件了,判断如果存在(status==0),就用UF_UI_create_filebox  ()函数选择路径进行保存,是不是可以?红色这段是UF_UI_create_filebox()的程序段 你帮我看看把 怎么修改一下啊 谢谢!6 ^  k* F+ K2 s) k" o" K( H' P
  const char file_spec[]="F:\\blocknew.prt";
, S4 {8 x" r) k+ q8 A  int status;' B7 g7 t* R8 `" K  U7 z: ?4 G
  UF_CFI_ask_file_exist(file_spec,&status);
4 T: C4 t  B1 \9 l$ q3 b/ i  if(status==0)2 e/ l1 g, K- R9 {1 ]+ J
      {
9 \6 r7 `" Y* [1 C% D         char prompt_string;* \. a7 B( k9 e+ b# g, Z' S
         char title_string;8 `8 P) Y2 ~, w" x
         char filter_string;
% f" |4 b4 R* @; c         char default_name;" @, E; ]7 u" M+ c
         char filename[]="blockname";% T* H  e- p* n0 i' e4 H' j7 q
         char response;6 v1 m8 i1 f  t
          UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,&filename,&response);
, l; ~' ~6 d8 i1 i8 ?
       }
' a3 q1 I7 k+ v8 S2 I' B5 I/ h, R1 W  else
) U& k. ~* |0 h+ @! ~) q      {. C% V4 C& l" @( K! ?
       const char new_part_name[]="F:\\blocknew.prt";
6 q3 e/ X; t  I      UF_PART_save_as(new_part_name);
9 D+ |2 `* o9 f/ ^/ h' H      }7 z. P8 V2 K$ p
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 17:48 | 显示全部楼层
qindongjun88 发表于 2012-3-21 16:25
# m' g! `* h1 k: m( M" dchar prompt_string;. @& i: s$ ~/ ^
              char title_string[]="另存为";. B, ?* C, Z; K: D
              char f ...

5 D2 x2 N9 j# O- Q! Z7 R: |谢谢 你 我弄成了 在你的指导下,之前就是filename的大小没设定 ,我生成连接后只能存到四个盘下 却不能存到某个盘内的文件夹内 现在可以了 ,真的很感谢你 我做二次开发学习好些日子了 但是在一些函数上还是有疑问 希望有机会多跟你请教好吧...谢谢你
回复 支持 反对

使用道具 举报

发表于 2012-3-21 16:25 | 显示全部楼层
本帖最后由 qindongjun88 于 2012-3-21 16:30 编辑
/ f6 \% y/ R( ~; @3 f9 I. [" e( q
              char prompt_string;2 ?4 S( l+ v6 M1 D* A- ~! H
              char title_string[]="另存为";
7 D/ \1 x- @& V0 T& j              char filter_string[]="*.prt";& k. J, n" f# n9 u. S4 e# ]# i" o
              char default_name[]="F:\\blocknew_1"; // ????
3 T4 Y  x' V5 l5 B              char filename[256]=""; // ?????3 m5 ]* Z( t, @  g/ t
               int response;
: [/ `1 R6 a4 E9 e, V5 A              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);
; D$ D0 _- Q( f9 [' m4 b$ O. g             uc1601(filename,1);//看看输出的结果是不是对的..... T# J* V) P+ d9 [6 I7 b" i
             UF_PART_save_as(filename);      3 v; p4 @9 x2 z" i+ x3 f
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 13:05 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27 ' y+ ?$ {6 }1 X$ N" J
问题一:
8 e/ ~: J0 E) w& `% z3 Jpart=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);4 f. `) }# l3 n+ f  t* o9 R
UF_PART_close( ...
7 ~& p" ?. F3 V
现在另存为的对话框出来了,但是我点击确定后,一切都对,但并没有在路径下找到保存part文件,是不是我对于input和output变量理解错了?或者是不是prompt_string这个input我漏掉了怎么设置?红色这段是UF_UI_create_filebox()的程序段 帮我看看把 怎么修改一下啊 谢谢!5 D7 [9 }) u( _
  const char file_spec[]="F:\\blocknew.prt";9 y8 N' L8 F" w1 j$ E: G
  int status;$ w" p! r4 H2 v2 L! r2 y
  UF_CFI_ask_file_exist(file_spec,&status);" G( S; _7 x3 G, s, v! V
  if(status==0)
+ ]8 F/ a0 l3 i      {% F; a+ K% F; u6 X, T8 a8 o( X
              char prompt_string;8 h& o/ ~( E0 c2 L
              char title_string[]="另存为";
/ O, i5 r5 C4 p1 x              char filter_string[]="*.prt";
- y3 Z3 g/ \  A% ^- n              char default_name[]="blocknew";/ X# M6 Z, E" m; {+ a
              char filename;/ B3 B/ x! o$ ]: |4 ~, n
               int response;; L  U# g2 E$ G2 ^
              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);; Z5 J1 y6 N: ^1 G6 k7 U7 b
             UF_PART_save_as(filename);      
# |; z& A9 u7 M$ L& v
       }: }' L' q% w( m& E5 r" w
  else
! V) j, L( A. a* y; `0 Z      {
. w: Z: x! V% x* Q$ D( m8 j       const char new_part_name[]="F:\\blocknew.prt";0 I& E* z) U# g2 {& j7 Z
      UF_PART_save_as(new_part_name);
2 T) P/ U+ c1 L; V, U; {      }
/ T! a( [7 N  R) i1 ~
3 o# x4 R$ j* z+ f
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-26 09:37 | 显示全部楼层
本帖最后由 kanggeng 于 2012-3-26 09:41 编辑
, f" G8 p2 Q& b+ P8 {6 l
qindongjun88 发表于 2012-3-21 16:25 5 Q" A3 l  }2 n* L' I- n% Q7 ?
char prompt_string;
! p' x% `" _4 p              char title_string[]="另存为";$ v* N% C5 ^/ Z7 J+ q
              char f ...
' G, @, M9 ~, _# j8 O8 }
+ X7 H" p) E1 n6 y  W
还需要麻烦你一下,用到一个UF_UI_add_to_sel_list()函数,我的程序是想把输入字符框的内容添加到选项菜单中去,初始的设置有点疑问。麻烦您看一下吧:
! l( V5 ^4 `) m/ N9 a! P     UF_UI_selection_p_t select_;    //这里是不是选项菜单的设置啊? 我的选项菜单标识是CHANGE_OPTION_0
3 r! w" K/ q1 Q  }1 e     int num=1;
8 ], g' H3 a$ t* @: M: {$ h" R     tag_t objs;    //这里是设置输入字符框的标识吗?我设置的字符框标识是NEW_STR_0$ e9 n8 F$ d6 C& |8 ]
     logical highlight_flag;
! W# c; ]4 {, L$ D" D4 Y     UF_UI_add_to_sel_list(select_ , num , &objs , highlight_flag);
6 D1 [- @  y; O1 x! c
2 e! h" g/ Q( `; B! a还是我在理解上有偏差啊 请你指点一下好吧 谢谢你
' \% m+ c- [0 s1 F% Z! M下面点击新建进入添加型号的对话框8 l& q  B* U$ n0 @; w
截图07.jpg
. I( [: X4 }. |5 s* c. J0 \然后在线串里面输入的字符点击OK后添加到型号选择的选项菜单中。
- H! p& P# {, u2 U' Y' M2 a 截图08.jpg + w( c5 B. C8 A4 ~5 {

) U, ^( c, l* i8 T# ~0 ~) G
  X: n5 k0 E3 J& N( n
* K3 I$ Y; A- O1 Q! b! Q! c* E% q1 q* C3 R6 `

, f: y* M1 h; Z" N* c" J0 q补充内容 (2012-3-26 20:28):( ~8 K) j" _5 e' Y& \! ^
data.item_attr=UF_STYLER_VALUE;4 L7 _% ]: Q2 z& ~. g: V% {$ W
         data.item_id=CHANGE_OPTION_0;
) F* J2 d3 m+ o7 Q         UF_STYLER_ask_value(dialog_id,&data);
* C! R) _# ^7 g% P" W% F. |         &data就是字符矿的输入量了吧?这时候
" T5 R  h% [. [% a         是不是UF_UI_add_to_sel_list(select,1,&
, Y% x& q; t: W# M6 D2 g
, ^- x/ ^4 y, A补充内容 (2012-3-26 20:29):: ^: I' i5 m/ _6 T# y. A* c, L/ N' N
data,highlight)
0 V* F* p- [# {         就可以了啊 那这个选项菜单的select是怎么设置啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-24 20:59 , Processed in 0.053943 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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