
适用版本:NX所有版本

在我们分析NX三维设计软件的架构时以及针对业务需求进行二次开发时,不可避免地会涉及使用到内核对象。在NX中,内核对象的唯一标识有两种系统,一种唯一标识简称为Handle,另一种唯一标识简称为Tag。
功能说明
上述内核的两种唯一标识的区别:
Tag:在当前会话中,即在当前NX进程中,NX内核系统分配的一串唯一标记的数字代 。NX重新打开同一文件,同一对象的Tag会出现不一样的情况。
Handle:由文件中记录的对象ID以及NX版本等信息组合成一串唯一字符串代 。NX重新打开同一文件,同一对象的Handle一直会保持一样的。
上述内核的两种唯一标识的联系:
通过如下图所示的两个UF函数可以互相进行查询:
UF_TAG_ask_tag_of_handle函数通过Handle标识可以获取Tag标识:

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

图2
Handle与Tag实际应用价值:两者都是唯一标识,为啥NX要引入两套唯一标识系统呢?
在实际应用过程中,我们存在这样的一种业务场景:同一文件存在多个副本,副本中对象都是一样的,所以Handle值都是一样的,但是我们在同一个NX中,打开这些文件,NX为了能够区分这些相同对象,引入了Tag标识系统,临时为每种对象生成一个唯一标识,以作识别区分。
总 结
NX内核中存在两套唯一标识系统,是为了解决一些特殊应用场景,两者之间既有联系,也有区别。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!