目录
第五章 Storing Custom Data (存储自定义数据)
第六章 Identifying Objects in ACIS and Parasolid Files(识别ACIS和Parasolid文件中的对象)
本章主要介绍SpaceClaim二次开发文档的第五章和第六章。(使用的翻译,如有错误,敬请指正)。
第五章 Storing Custom Data (存储自定义数据)
5.1 文档属性
文档有两种类型的属性:
核心属性包括描述、主题、标题和创建者等标准字段。核心属性集是固定的。不能创建新的核心属性。
自定义属性允许第三方应用程序将数据与文档一起存储。每个自定义属性都是一个名称-值对。
为了使自定义属性名称在不同的应用程序选择自定义属性名称时不会冲突,该名称应使用应用程序或外接程序名称作为前缀,如下例所示:
public static void Example(Document doc) {
CustomProperty.Create(doc, "BananaWorks.ApplicationVersion", 14);
CustomProperty property;
if (doc.CustomProperties.TryGetValue("BananaWorks.ApplicationVersion", out property))
Debug.Assert((double) property.Value == 14);
}
请注意,一个文档可以包含多个部件,因此如果要存储部件的数据,最好通过在部件母版上存储自定义属性来完成(请参见下一主题)。
5.2 自定义属性
Doc对象master提供自定义属性,以便第三方应用程序可以存储数据。提供了两种类型的属性:文本属性和数字属性。属性是一个名称-值对。一个doc对象可以有一个text属性和一个number属性,它们的名称相同。
为了使属性名称在不同的应用程序选择属性名称时不会冲突,该名称应使用应用程序或外接程序名称作为前缀,如下例所示:
public static void Example(DesignBody desBody) {
desBody.SetTextAttribute("BananaWorks.SkinCondition", "Ripe");
string skinType;
if (desBody.TryGetTextAttribute("BananaWorks.SkinCondition", out skinType))
Debug.Assert(skinType == "Ripe");
}
多个值可以存储为具有不同名称的多个属性,也可以使用String.Format或XML序列化程序将它们格式化为单个文本字符串。
5.3 属性传播
如果对象被替换,则传播应用于文档对象主文件的属性。例如,如果设计面具有文本属性,并且此面在建模操作期间被拆分,则替换设计面片段也将具有相同的文本属性。
第六章 Identifying Objects in ACIS and Parasolid Files(识别ACIS和Parasolid文件中的对象)
6.1 导出期间的标识符
当ACIS或Parasolid文件由用户或通过调用Part.Export写入时,名称属性将附加到文件中的面和边图元,以指示它们来自哪个设计面或设计边母版。如果更改了模型,然后导出了新文件,则这很有用,因为相应的面和边将具有相同的名称属性。
ACIS名称属性是具有属性名称“ATTRIB_XACIS_NAME”的“命名属性”(ATTRIB_GEN_NAME)。
Parasolid名称属性是名称为“SDL/TYSA_NAME”的系统属性。
设计面母版和设计边母版具有ExportIdentifier属性,该属性返回一个字符串,其中包含导出对象时写入的name属性的值。
6.2 导入和导出过程中的外来标识符
可能需要从另一个系统导入模型,在SpaceClaim中修改它,然后再次导出它,这样其他系统就可以在这个往返过程中跟踪面和边的身份。
导入ACIS或Parasolid文件时,如果任何实体、面或边图元具有id属性,则这些属性将转换为生成的设计实体、设计面或设计边母版上的SpaceClaim文本属性。这些文本属性具有保留名称“@id”。
ACIS id属性是一个“命名属性”(ATTRIB_GEN_NAME),属性名为“ATTRIB_XACIS_ID”。
Parasolid id属性的名称为“ATTRIB_XPARASOLID_ID”,并且具有属性定义,该定义在Part.Export方法的文档中进行了描述。
如果对象被替换,则传播应用于文档对象主文件的属性。例如,如果设计面具有文本属性,并且此面在建模操作期间被拆分,则替换设计面片段也将具有相同的文本属性。
导出ACIS或Parasolid文件时,如果任何设计实体、设计面或设计边具有名称为“@id”的文本属性,则这些属性将作为id属性写入,应用于生成的ACIS或Parasolid图元。