青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2012-3-19 19:46 | 显示全部楼层 |阅读模式
问题一:4 v0 V. g2 f1 \3 v( w1 B/ K4 f
    本人在一段程序里 是想将已经打开的一个part部件 保存并关闭,用了下面的程序段:; _' G4 d1 _5 w5 @9 q$ F
   const char new_part_name[]="D\\new_block.prt";
6 d( U; [- m$ [$ V6 c& E  UF_PART_save_as(new_part_name);
! |7 {, h/ U- |2 \7 g8 y    tag_t part;/ ?* [% _! J! [/ x$ E
    int scope=0;8 ^' f, g/ ?3 V
    int mode=1;
% e/ N6 y/ a$ h3 u/ {0 n. y   UF_PART_close(part);
0 s1 M0 \2 v* E1 H7 ~' D     生成DLL后 在ug里 只实现了部件另存为这一步 但是部件保存之后没有关闭 我用的是不是错了啊!请指点一下!谢谢
, a" k3 h9 X; p6 \* m
   
7 c1 b" q- J: u8 n" G! |  H8 _    问题二:  W" J- w0 D1 {$ q
     如果向上述的另存为操作一次的话 那所指定的文件夹就已经包含这个文件名的part部件了 如果再执行一次操作的话就会失败 因为都是在往一个文件夹放同样名字的部件,无法另建立啊!有没有这样一个函数 或方法 可以像Word文档另存为一样,有一个路径选择的步骤再保存??如下图这样的路径选择方式?. h' z+ f1 z8 B/ S! w' g! z9 W
P}A$HN~`T`Z}T2{F0]QSO@5.jpg
: B, j7 L8 G" P  k0 E
发表于 2012-3-19 22:27 | 显示全部楼层
问题一:4 c* p. V2 `/ H& t2 _
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
. K/ f, v9 I+ l+ I! C5 E1 }( kUF_PART_close(part);- |. [, L- f, v
问题二:# ^% l) F3 q0 S; k
先用UF_CFI_ask_file_exist()判断new_part_name是否存在,不存在则保存,存在则调用UF_UI_create_filebox()函数让用户自已选择要保存的路径...............# u' [: B' m- e8 o

% y2 b7 @) Y& [4 S& C6 w/ d; z$ j2 {4 x3 X$ B
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2012-3-20 16:32 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27 2 S0 L- u1 S) a
问题一:1 n& g6 }+ [* C3 I( S. i: E
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);! j" q5 I) G0 [2 Z$ Y' u
UF_PART_close( ...
; A( C. P: K) o' S
很感谢你!问题都解决了,但是UF_UI_create_filebox()这个函数还是不会用啊,里面有几个初始参数我不知道如何设置,我的程序如下,开始判断一个路径是否存在该文件了,判断如果存在(status==0),就用UF_UI_create_filebox  ()函数选择路径进行保存,是不是可以?红色这段是UF_UI_create_filebox()的程序段 你帮我看看把 怎么修改一下啊 谢谢!
6 h# ]. Z& m, X6 j- L! Y3 |. ]; q  const char file_spec[]="F:\\blocknew.prt";5 P4 i! |8 c0 l& }( J# K) U
  int status;
$ p( ]: @8 z, U7 c" h  UF_CFI_ask_file_exist(file_spec,&status);3 h, }% L1 G4 J& z2 }
  if(status==0)/ Y! t) i1 z5 \+ d
      {  h" }3 d& Z! g$ p+ a7 A+ R
         char prompt_string;0 b- q2 K$ F! T% I9 a! ?! a, G
         char title_string;
  O) f& Z3 T0 X! _         char filter_string;7 F5 A6 Q3 J4 X/ {
         char default_name;0 A! Y( _! o  z7 C: G% y8 x& @
         char filename[]="blockname";! U+ u7 B# f5 H* p0 W
         char response;6 f+ p9 @0 T8 I' m9 k
          UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,&filename,&response);- l+ u4 L& i; K7 m0 ]1 O
       }6 e0 N! f. Z& w2 h
  else
: {4 h  i4 x- [% _6 u- u' u      {
1 t- p( W6 R1 `) b" V4 ]6 T       const char new_part_name[]="F:\\blocknew.prt";
$ K% B. D2 A0 O% b      UF_PART_save_as(new_part_name);. ]0 G/ R4 I, v( l/ p- D2 M$ R
      }
" N9 `% r, t( T, z9 l7 m
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 17:48 | 显示全部楼层
qindongjun88 发表于 2012-3-21 16:25 & J1 U. k) _. j) @! d3 c  x
char prompt_string;+ h  E; s2 R+ u" H3 ^# N. F- \
              char title_string[]="另存为";8 L' j/ x/ j  {" c/ i1 t, D
              char f ...
$ n2 a0 O: c' ^( R
谢谢 你 我弄成了 在你的指导下,之前就是filename的大小没设定 ,我生成连接后只能存到四个盘下 却不能存到某个盘内的文件夹内 现在可以了 ,真的很感谢你 我做二次开发学习好些日子了 但是在一些函数上还是有疑问 希望有机会多跟你请教好吧...谢谢你
回复 支持 反对

使用道具 举报

发表于 2012-3-21 16:25 | 显示全部楼层
本帖最后由 qindongjun88 于 2012-3-21 16:30 编辑
3 ]& ~$ ]/ p8 e" i3 p$ L$ V; p9 P$ S+ A
              char prompt_string;
  G4 D5 z1 f0 N              char title_string[]="另存为";
$ ~1 f- n+ V- o3 ]* Q4 H% k              char filter_string[]="*.prt";
: o+ u! Z( N/ z1 Q" x              char default_name[]="F:\\blocknew_1"; // ????# d  w! d' R( A/ |
              char filename[256]=""; // ?????' N8 y. [0 e! {1 f1 D, `" U/ B3 c
               int response;+ G0 D0 Y" h8 T/ N
              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);4 d" c0 M' |& U; w' \: A0 a# x* U
             uc1601(filename,1);//看看输出的结果是不是对的....  j# R: b2 u5 {# u: Q. c
             UF_PART_save_as(filename);      
4 `* O0 a/ L: x9 U7 T' t
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-21 13:05 | 显示全部楼层
qindongjun88 发表于 2012-3-19 22:27 2 A) J* K; p- _+ g, W) j
问题一:8 K. F  P3 \& T
part=UF_PART_ask_display_part();或part=UF_PART_ask_part_tag(new_part_name);
9 j. P' y: b+ i" u6 E7 uUF_PART_close( ...

) d* |+ _. m9 y! u. ]* t现在另存为的对话框出来了,但是我点击确定后,一切都对,但并没有在路径下找到保存part文件,是不是我对于input和output变量理解错了?或者是不是prompt_string这个input我漏掉了怎么设置?红色这段是UF_UI_create_filebox()的程序段 帮我看看把 怎么修改一下啊 谢谢!. b4 T% A3 B' ~; `1 L& w
  const char file_spec[]="F:\\blocknew.prt";
/ J3 C* j4 |% b  int status;, y0 p% {$ ~, v& G
  UF_CFI_ask_file_exist(file_spec,&status);$ J; W' V1 T4 d! w& b
  if(status==0)
# M( E1 ~; z- T1 l/ d" R  z1 V9 K      {1 T  ~: x7 M2 A+ |- \$ Z! y
              char prompt_string;
. J% g: K" F8 D+ ^  G- g              char title_string[]="另存为";9 H) i4 p1 e' Y9 X1 W2 a
              char filter_string[]="*.prt";% r* ]0 C; x+ s2 @5 x$ n& c2 S
              char default_name[]="blocknew";3 w1 ?4 o0 t* _1 v' X. V
              char filename;! U6 U+ e# h/ q0 B; s
               int response;  F2 ?+ N6 ^! V/ q2 U
              UF_UI_create_filebox(&prompt_string,title_string,filter_string,default_name,&filename,&response);
" Q: ?; {! D" \4 c( A             UF_PART_save_as(filename);      
9 p  _+ p2 y% c: w5 l  T
       }
2 V8 N' g4 R. w1 D2 X, j6 c. v  else9 s8 q7 r. y) w! `" \7 M
      {
. F! I& ^5 T' R3 R7 j5 X       const char new_part_name[]="F:\\blocknew.prt";$ S& |6 l7 `0 V
      UF_PART_save_as(new_part_name);
  n8 m7 P8 r5 ]/ a      }
" ^' a/ z: Z6 k9 U
1 g" Z; J& B; v
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-26 09:37 | 显示全部楼层
本帖最后由 kanggeng 于 2012-3-26 09:41 编辑 # L% M, ~( ~8 l6 V3 z1 Z' l7 [
qindongjun88 发表于 2012-3-21 16:25 " d; G2 U5 J. Q5 t, i
char prompt_string;
" a$ E& d/ K& A% \5 X              char title_string[]="另存为";  W, _( ]5 d/ m8 i( R
              char f ...
8 c% Z; H! T: ^  Z5 F

0 |4 Q/ U, S/ N* T/ }1 O还需要麻烦你一下,用到一个UF_UI_add_to_sel_list()函数,我的程序是想把输入字符框的内容添加到选项菜单中去,初始的设置有点疑问。麻烦您看一下吧:5 q4 Q6 `2 K( k4 a
     UF_UI_selection_p_t select_;    //这里是不是选项菜单的设置啊? 我的选项菜单标识是CHANGE_OPTION_0% N( F7 C# C" F- V, F& ]
     int num=1; * g( g9 D$ d6 X' x) e* h
     tag_t objs;    //这里是设置输入字符框的标识吗?我设置的字符框标识是NEW_STR_0# \1 w& j5 E+ [) K" z8 t% O8 v+ ]( c
     logical highlight_flag; 0 L, T- H% {8 N  |5 ?' c
     UF_UI_add_to_sel_list(select_ , num , &objs , highlight_flag);" F5 |6 a, T( V& c3 o5 g( ~; ?

8 @* k7 |4 v3 _/ f6 x还是我在理解上有偏差啊 请你指点一下好吧 谢谢你
* Z1 Q8 H. S( m- B下面点击新建进入添加型号的对话框; y5 D, I4 t! T+ E# ~9 d* L
截图07.jpg - }7 z3 u: B: v! N* y; C
然后在线串里面输入的字符点击OK后添加到型号选择的选项菜单中。
8 e, ]1 F" [" }/ n; R: l" r 截图08.jpg ( G/ h& N8 i6 o5 x, ?: ~

$ S3 r/ O9 a( {$ c( J( w! ~# o6 F: S( b) r+ p) B" |) w9 |6 P

6 h4 |( _. ~& [
7 C* v  F% S& ^5 ^, D& @$ h/ W- ~' T
补充内容 (2012-3-26 20:28):
1 L+ K7 @  y: m; l+ Mdata.item_attr=UF_STYLER_VALUE;
7 u0 m- Q. m' ^$ S" H- V+ q5 D         data.item_id=CHANGE_OPTION_0;* u( W/ g; s$ M) A* `* Q$ a- ~
         UF_STYLER_ask_value(dialog_id,&data);% [7 [9 o% k6 N6 m7 p7 v' @
         &data就是字符矿的输入量了吧?这时候
) g+ u  e2 r, i0 L5 s         是不是UF_UI_add_to_sel_list(select,1,&
3 R- q3 R5 _8 y* L, X" `
* I5 C7 a+ L6 W6 H8 J0 _6 s补充内容 (2012-3-26 20:29):6 ^: W# l7 [8 e8 ^- f: d2 C
data,highlight)
. F# h0 U6 m$ [; ]! }4 M. F$ [: l         就可以了啊 那这个选项菜单的select是怎么设置啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-24 20:57 , Processed in 0.060174 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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