青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2489|回复: 3

[分享] 谈谈UG二次开发信息保存的问题

[复制链接]
发表于 2009-6-30 19:16 | 显示全部楼层 |阅读模式
做过ug二次开发的人都知道tag在其中的重要性,tag是所有对象的标识,也是其中信息的桥梁。
2 }' o' y  H( _# T% N1 M1 N可惜tag是流水号,在prt保存再打开后,tag就会变。  J4 p  z8 J0 b

0 |. H! c/ c1 n3 R  E( `如果是external模式,用tag作为信息标示保存也没什么,毕竟没有保存和打开的过程。  K0 E! i- B& u7 `( C' u  ~; h
但是对于有些问题,比如重新打开prt,然后高亮上次选定的面,tag就不能作为信息保存。% Y' ^( Y8 Q+ ^9 I, l
因为上次保存的tag在打开prt后会变,也就不能重新找到面face了。
+ }% V! c4 N% G8 x+ A. Q( A- w+ D0 ~" X- I* H
还好我找啊找的,终于找到UG里面有个东西是不便的——Handle(可以查uf.h文件),是个编码字符串。
& t' j/ P* u' X* P经过解析后,一个Handle可以分解成文件信息、ID信息和版本信息。使用函数:: r' ~& o1 b% I! G" C& D
char * file_data ;  n  C: h" D- |* `
unsigned int id ;
! `' ?3 e6 Q# {6 p6 f unsigned int  version ;% f. S0 K  O2 G. C- ~9 f
UF_TAG_decompose_handle(handle,&file_data,&id,&version);0 [7 F$ Q# Z- k( ?& n
UF_free(handle);
, s2 i' [. ^2 h4 V UF_free(file_data);
+ Z* w# t6 J# }1 S( Q1 B- [其中sub_file_id 就是我们需要的Face、Edge等的ID,相当与tag,不过在一个文件里是不变的。: S+ ~( b! @6 ?" j, A
6 D2 D6 F9 \* V# O& d3 c4 |
当然,先要获取Handle,通过这个函数. G; H  m. D* `  M5 i
const NXObject* object=???;) m  ?2 S% l' s9 x/ `+ D" E4 Q- ?
char* handle = UF_TAG_ask_handle_of_tag(object->Tag());
% ~( t/ E8 N. J) B  b" [, l2 N" N' m; j$ s8 b
上面就是获取对象ID的方式。handle太长,又是字符串,使用不方便,所以经常使用的是这个ID。2 \* U' f( F; h% o! G
其实这个ID可以在对象的Information信息窗口的最下面看到。. R. Z  `# u; J6 |
% s" Q4 W* `9 H0 S3 x* x7 e  r3 t
各位可能要问了,保存了这个ID,下次获取了这个ID,怎么找到Tag或者对应的Face、Edge呢?+ K# |# t8 x1 f8 j9 g% O7 H( n6 ^
如果你要是使用UG Open,我觉得还是保存Handle比较好,或者使用UF_TAG_compose_handle,通过ID等信息重新组合Handle2 ^  O1 b8 k3 ^$ c
然后通过UF_TAG_ask_tag_of_handle()获取tag。
* P' W* x8 `8 A7 c5 v  @; t
7 [/ R4 C- y1 G$ L如果你使用UG NXOpen,可以直接得到对应信息的指针,使用FindObject获取指针。
( K) r: `" C7 V char str[133];3 b" L5 l% z, o% m* u7 w. }' v
sprintf(str,"HANDLE R-%d",ID);( O, K! T; j- d3 s& k# B( A8 U: [
Edge* dege = dynamic_cast<Edge *>(NXOpen::Session::GetSession()->Parts()->Work()->FindObject(str));
( m: z6 ^: ^* L9 t/ h当然实现最好能知道是什么对象。
发表于 2009-7-24 12:25 | 显示全部楼层
真的是很棒的技術!感謝.
回复 支持 反对

使用道具 举报

发表于 2009-7-25 07:47 | 显示全部楼层
我还差太远
回复 支持 反对

使用道具 举报

发表于 2012-12-6 13:57 | 显示全部楼层
顶楼主,学到东西了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-13 03:33 , Processed in 0.166867 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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