青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2012-3-19 19:46 | 显示全部楼层 |阅读模式
问题一:+ D0 q9 {. G$ F4 [  y. F5 J
    本人在一段程序里 是想将已经打开的一个part部件 保存并关闭,用了下面的程序段:
' t2 O& ~$ n5 T7 r9 |& |+ t   const char new_part_name[]="D\\new_block.prt";
8 ?0 g% h5 w& m7 m* F8 P( X! _  n  UF_PART_save_as(new_part_name);: N; d8 e1 U9 j7 d# n! {
    tag_t part;
( @4 ~7 o+ g3 D3 B    int scope=0;' \6 J9 O- }7 ^3 F
    int mode=1;
: F' Q6 @* Q( {5 _3 X' p   UF_PART_close(part);2 F# N8 y1 _7 c0 b3 j7 m& C. n! o
     生成DLL后 在ug里 只实现了部件另存为这一步 但是部件保存之后没有关闭 我用的是不是错了啊!请指点一下!谢谢
" C. j) [' \* W, K
   
  L0 J2 H; n9 \    问题二:: T) ?6 f; T. G; m& g
     如果向上述的另存为操作一次的话 那所指定的文件夹就已经包含这个文件名的part部件了 如果再执行一次操作的话就会失败 因为都是在往一个文件夹放同样名字的部件,无法另建立啊!有没有这样一个函数 或方法 可以像Word文档另存为一样,有一个路径选择的步骤再保存??如下图这样的路径选择方式?- Y7 f! b$ |( Q& c" a$ l: R6 _( o
P}A$HN~`T`Z}T2{F0]QSO@5.jpg / L7 Y- J9 Z9 |2 r3 j& e& @
发表于 2012-3-19 22:27 | 显示全部楼层
问题一:
) M. L; Q  M5 _4 H# epart=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
) }! Y# S" b& h! r6 t" r3 OUF_PART_close(part);
- m( K0 U, v6 r7 f+ i问题二:1 g  l+ ^% n' r2 M. M: `
先用UF_CFI_ask_file_exist()判断new_part_name是否存在,不存在则保存,存在则调用UF_UI_create_filebox()函数让用户自已选择要保存的路径...............
; Q5 y2 G5 }: C+ K5 m! t
( C8 G7 D9 H! W, B: D
7 M  W$ ]. A/ b9 n' U
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2012-3-20 16:32 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27
. a# D( Q8 l2 ?# ?# Y问题一:
) r' C8 I5 R2 }8 V2 Ypart=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);4 G! X6 p2 e. @# C3 i, s
UF_PART_close( ...
. w/ W- X6 ^5 |' C0 w8 W+ K+ i7 |7 e
很感谢你!问题都解决了,但是UF_UI_create_filebox()这个函数还是不会用啊,里面有几个初始参数我不知道如何设置,我的程序如下,开始判断一个路径是否存在该文件了,判断如果存在(status==0),就用UF_UI_create_filebox  ()函数选择路径进行保存,是不是可以?红色这段是UF_UI_create_filebox()的程序段 你帮我看看把 怎么修改一下啊 谢谢!% |5 Q, s8 k* ^& ?- t6 f' y
  const char file_spec[]="F:\\blocknew.prt";- p5 w" o! z8 ^
  int status;
! F5 J* T) T- D# J  UF_CFI_ask_file_exist(file_spec,&status);) U, c: w# ~+ ]  d: U9 c
  if(status==0)
" V6 p" k* Y) S& v' ^      {
, r3 q* R. d- t. k         char prompt_string;: m" n: X& [8 D+ F8 u* W: K1 D* r
         char title_string;. j4 `$ n& q& c! q" [, h
         char filter_string;
4 ]" |* o( C6 O: j# j6 h0 E/ ]         char default_name;
" I) D9 D: R5 w6 w; r6 S3 k         char filename[]="blockname";
' a+ Y! _( `* r# P         char response;2 m3 }% P1 \8 D6 x3 F& i- E
          UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,&filename,&response);$ R# J% z% B( i/ N
       }
  J# @- i4 Q* R; n! z; \( G  else2 I$ G, }6 x: m$ Z( F) _* v. d
      {  T' d; h; v4 K' Y" `8 {: t7 o
       const char new_part_name[]="F:\\blocknew.prt";, M1 P* Q) q0 G2 x' U: ]
      UF_PART_save_as(new_part_name);: \) P7 F; V  S3 ^3 N8 {; c) p
      }
# g/ }" J, L2 K9 R) f: T
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 17:48 | 显示全部楼层
qindongjun88 发表于 2012-3-21 16:25 3 y6 k  }% e- J
char prompt_string;- B+ g7 B  G7 ~6 X7 t
              char title_string[]="另存为";
7 U& M+ }0 [8 }( Z& X% i7 h+ Y              char f ...

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

使用道具 举报

发表于 2012-3-21 16:25 | 显示全部楼层
本帖最后由 qindongjun88 于 2012-3-21 16:30 编辑 4 g) Y9 Y1 q( e+ I
7 H  ?  P( I3 O8 _$ k& e8 Q' \- N2 b
              char prompt_string;
1 ^. ^0 ^8 H: i4 ?- K/ z1 Q              char title_string[]="另存为";0 Y% s% H2 u! h! H
              char filter_string[]="*.prt";
& @; |- J+ f5 N4 ~+ a              char default_name[]="F:\\blocknew_1"; // ????
3 R5 }8 y2 P1 T              char filename[256]=""; // ?????" Y3 {# p0 Y! A7 p  y
               int response;9 M8 x4 u2 l- P6 C: |4 y( G) v5 G
              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);9 D, V  `0 j- U9 X% C2 d
             uc1601(filename,1);//看看输出的结果是不是对的....# v  k; M5 c. \" N  `# ]& W: ]5 q0 ]
             UF_PART_save_as(filename);      8 B7 v0 Q$ ^/ p" P0 t1 s# X3 `
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 13:05 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27 % M6 x5 ^6 H( F/ }6 M) w
问题一:2 q' v! C6 L. Y$ S* D7 M
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
- w) Y8 m! g& T# G( L& }UF_PART_close( ...
6 T- k, g: e, Z2 N! J
现在另存为的对话框出来了,但是我点击确定后,一切都对,但并没有在路径下找到保存part文件,是不是我对于input和output变量理解错了?或者是不是prompt_string这个input我漏掉了怎么设置?红色这段是UF_UI_create_filebox()的程序段 帮我看看把 怎么修改一下啊 谢谢!
0 p5 }& h" b* C  const char file_spec[]="F:\\blocknew.prt";1 E* M9 H( W! B* Z
  int status;
0 Q/ G, J; g: G; Q3 n6 Z  UF_CFI_ask_file_exist(file_spec,&status);2 N; Q8 ^) {5 K7 F% y& D/ ~
  if(status==0)+ `  v; @- Q/ \) m( w; f
      {$ X/ z" a" N$ Q& T( j: O
              char prompt_string;
! K4 T5 a' Z, h0 X, R& e              char title_string[]="另存为";
9 f+ j! }; v8 W9 y) x$ o% g; U" Y6 g. W! [              char filter_string[]="*.prt";+ t& r' f* i2 ?. M: T# r6 m8 h
              char default_name[]="blocknew";3 i1 i$ G& T, C; ]8 R% D; R; v
              char filename;6 F3 n  v5 W& z8 j6 \; }( y: q
               int response;  |( Y8 `$ C6 D9 F% x6 t$ b
              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);5 Z- V0 N* _' |1 h6 |5 l' }
             UF_PART_save_as(filename);      
% O, F# h" m& Y4 `' S( H
       }3 t) N. e+ S3 h4 X1 `
  else; Y  J7 H+ ~8 p
      {
1 Z" `, z" W0 B6 d# {       const char new_part_name[]="F:\\blocknew.prt";& A# s2 L- I( E+ a7 e: m7 Z
      UF_PART_save_as(new_part_name);( Q+ A  a3 n; j
      }3 n) f' }; W9 F* y: b1 g! d* N

! i  y* u$ B# w" {: }' p' {5 \
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-26 09:37 | 显示全部楼层
本帖最后由 kanggeng 于 2012-3-26 09:41 编辑 7 Q& m2 Z: m6 z8 B. ?  m
qindongjun88 发表于 2012-3-21 16:25 + ?9 m% i. g# d1 Y- f0 p. L
char prompt_string;5 C( D6 Z' P4 r& B
              char title_string[]="另存为";
$ f/ M0 V# J6 h( e! M& Y" y              char f ...
  r$ J. _8 P" y, y
9 h6 ?1 S. P2 ?& O, a! K
还需要麻烦你一下,用到一个UF_UI_add_to_sel_list()函数,我的程序是想把输入字符框的内容添加到选项菜单中去,初始的设置有点疑问。麻烦您看一下吧:
/ C& F& h0 W, ?/ V) q- Q/ v$ K     UF_UI_selection_p_t select_;    //这里是不是选项菜单的设置啊? 我的选项菜单标识是CHANGE_OPTION_0
8 g4 H* T6 f4 N6 C5 \7 I     int num=1;
- l7 v, G" E* x; e1 a% I- ]     tag_t objs;    //这里是设置输入字符框的标识吗?我设置的字符框标识是NEW_STR_00 D* I3 |( k6 J" I+ R
     logical highlight_flag; 2 k  ]. Q" H0 [* f! j
     UF_UI_add_to_sel_list(select_ , num , &objs , highlight_flag);6 f6 f3 {* @. X4 W! Z" [) @7 L

& ?% e% J# g- F6 w还是我在理解上有偏差啊 请你指点一下好吧 谢谢你& R* [' i0 N& x, I1 t8 D# z
下面点击新建进入添加型号的对话框
" v0 w! k/ N! {6 s$ h 截图07.jpg 0 ]4 T0 @" ?4 G( Q) w
然后在线串里面输入的字符点击OK后添加到型号选择的选项菜单中。7 _+ m) e" L9 I% {
截图08.jpg
/ U5 V6 }( E' x6 e+ [& `7 J8 [! A8 y+ {  _. {4 S4 J
+ _% U( O# J# X: i# i
" t. j1 [$ Q  k5 x3 Q
% i' f* B3 s0 [2 j. t/ S& {( M
( y8 c# z0 z  o/ t8 H& f" q# s
补充内容 (2012-3-26 20:28):# G" d+ ^. L" v" w5 ?5 a
data.item_attr=UF_STYLER_VALUE;8 A3 U9 o, L* D. ]
         data.item_id=CHANGE_OPTION_0;
  f) n, F% X  v5 E8 M3 ~+ ?  g7 B         UF_STYLER_ask_value(dialog_id,&data);7 l) c; S6 c" @' Y& ~
         &data就是字符矿的输入量了吧?这时候
: M, L& e7 T4 }9 o/ l& o+ F         是不是UF_UI_add_to_sel_list(select,1,&1 `) C' R- y) U
3 k4 R0 f! M' ^  j! B# R) Z$ M
补充内容 (2012-3-26 20:29):. ?7 |8 B1 {1 N! _( u$ Q8 S
data,highlight)# B2 l1 i( ]5 \9 Y- ]" q
         就可以了啊 那这个选项菜单的select是怎么设置啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-30 05:40 , Processed in 0.147229 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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