CREO vbapi二次开发-10-外部数据
二次开发时有时可能需要在模型中存储自己程序的相关信息,使用外部数据(External Data)可以让程序将一些信息保存到模型文件中。外部数据通过四层进行描述,顶层为IpfcExternalDataAccess类,首先访问模型的这个对象用来判断模型中是否存在外部数据。第二层是IpfcExternalDataClass类,每个二次开发的程序都可以通过创建IpfcExternalDataClass类的对象建立自己的外部数据。IpfcExternalDataClass类可以包含多个IpfcExternalDataSlot用于存储相关数据,而每个IpfcExternalDataSlot对象则可以包含多个IpfcExternalData对象。IpfcExternalData可以存储整形、浮点、字符串三种不同的数据类型。对于访问外部外部对象以及可存储的数据对象类型,官方文档给出结束如下:
表10.1 外部数据相关类
VB API类型 | 说明 |
---|---|
IpfcExternalDataAccess | Object that represents a conduit to the external data stored in the Creo Parametric file. |
IpfcExternalDataClass | A class that represents a named “bin” for external data so other applications will not use the data by mistake. An application usually needs one class. |
IpfcExternalDataSlot | Represents a single data item stored in external data |
IpfcExternalData | A union class that represents a single data value that may be stored in external data. The type of the value is identified by the dicsriminator. |
表10.2 外部数据可存储的数据类型
VB API类型 | 数据类型 |
---|---|
EpfcEXTDATA_INTEGER | integer |
EpfcEXTDATA_DOUBLE | double |
EpfcEXTDATA_STRING | string |
1.访问外部数据
访问外部数据只需要根据上文所述自顶向下依次访问对应的对象即可。获取IpfcExternalDataAccess对象只需调用IpfcModel对象的AccessExternalData方法即可,代码如下:
1 | Dim model As IpfcModel |
IpfcExternalDataClass、IpfcExternalDataSlot以及IpfcExternalData的访问也相对简单,分别调用上层对象的形如listXXXs以及GetXXXByName方法即可完成遍历和根据名称查找功能,这三个类均提供了Name属性。访问对象的示例代码如下:
1 | Dim dataAccess As IpfcExternalDataAccess |
IpfcExternalData提供了discr属性用于判断数据类型,其取值如表10.2所示,获得IpfcExternalData存储数据代码如下:
1 | Dim value As Object |
2.添加修改外部数据
创建IpfcExternalDataClass和IpfcExternalDataSlot只需要调用其上层类的CreateXXX方法即可,参数为一个字符串,表示其名称。IpfcExternalData则需要使用CMpfcExternal根据数据类型分别调用CreateIntExternalData、CreateDoubleExternalData以及CreateStringExternalData方法生成对应的数值。添加修改外部数据示例代码如下:
1 | Dim model As IpfcModel |
完整代码可在Github.com下载。