NX二次开发-Handle与Tag浅析

NX二次开发-Handle与Tag浅析

作者:徐涛   审校:倪海

适用版本:NX所有版本

NX二次开发-Handle与Tag浅析

在我们分析NX三维设计软件的架构时以及针对业务需求进行二次开发时,不可避免地会涉及使用到内核对象。在NX中,内核对象的唯一标识有两种系统,一种唯一标识简称为Handle,另一种唯一标识简称为Tag。

NX二次开发-Handle与Tag浅析
功能说明

上述内核的两种唯一标识的区别:

Tag:在当前会话中,即在当前NX进程中,NX内核系统分配的一串唯一标记的数字代号。NX重新打开同一文件,同一对象的Tag会出现不一样的情况。

Handle:由文件中记录的对象ID以及NX版本等信息组合成一串唯一字符串代号。NX重新打开同一文件,同一对象的Handle一直会保持一样的。

上述内核的两种唯一标识的联系:

通过如下图所示的两个UF函数可以互相进行查询:

UF_TAG_ask_tag_of_handle函数通过Handle标识可以获取Tag标识:

NX二次开发-Handle与Tag浅析

图1

UF_TAG_ask_handle_of_tag函数通过Tag标识获取Handle标识:

NX二次开发-Handle与Tag浅析

图2

Handle与Tag可以互相转化,handle值一般情况下是不会发生变化的,Tag值是每次打开NX随机分配一个ID。所以在开发过程中为了记录对象,可以记录它的Handle值,下次打开时再转化成Tag值,就能进行数据处理。

NX二次开发-Handle与Tag浅析

图3

Handle值可以解析成3个数据:当前模型信息、对象的原始ID,模型版本,其中原始ID是始终不变的,但是模型信息和模型版本会发生变化。

模型另存为或者克隆的时候,模型名称发生变化了,所以模型信息就发生了变化;模型进行修改然后保存的时候,模型的版本号也会自动提升。

对应解析函数,还有一个构造函数:

NX二次开发-Handle与Tag浅析

图4

如果模型是另存或者克隆后,一个记录了Handle值的对象,解析它的Handle值,它的中间的原始对象ID还是不会发生变化的,只是模型名称发生了变化。

通过获取当前部件中任意对象的Tag然后转化成Handle值,再解析成3个数据,取模型数据和模型版本再与之前对象的原始ID重新组合成一个新的Handle,然后再转化成Tag,就是标记对象的新Tag值,可以拿来使用。

如果模型只是修改,版本升级了,原来的handle值依旧可用,可以直接转化成Tag值。

NX二次开发-Handle与Tag浅析
总    结

一个NX的对象对应的Handle值中的原始ID始终是不会发生变化的,只会跟着对象被删除,也一起被删除,所以在开发过程中遇到这阵情况,需求尝试记录它一般不会被删除的父对象的Handle值。

相关软件
40 多年来,Nastran 有限元求解器一直是应力、振动、屈曲、结构故障、热传递、声学和气动弹性力学分析方面的行业标准。航空航天、汽车、电子、重型机械、医疗设备及其他行业的众多制造商和工程供应商均依靠 NX Nastran 软件满足在工程
相关阅读