在读取STEP的装配体和组件之前,先来介绍一下OpenCASCADE中的扩展数据交换(XDE);
扩展数据交换(XDE)模块允许通过转换附加到几何BREP数据的附加数据来扩展交换范围,从而提高与外部软件的互操作性。
支持颜色、层、装配描述和验证属性(即重心等)等数据类型。这些数据与形状一起存储在XCAF文档中。还可以以现有工具为原型添加新的数据类型。
最后,XDE提供了读写工具,用于从IGES和STEP文件读取和写入XCAF 支持的数据。
XDE中的关键术语:
形状—— 一个独立的形状,不属于装配结构。
实例—— 另一个形状的复制品,其位置可以是相同的位置,也可以是不同的位置。
装配体—— 一种作为根或子装配体的结构。
XDE的组织形式:
XDE的基础称为XCAF,是一个基于OCAF (Open CASCADE Technology Application Framework)的框架,旨在与程序集和各种附加数据(属性)一起使用。
属性可以是形状的单独属性,指定形状的某些特征,或者它们可以是分组属性,指定形状属于给定的组,其定义与形状分开指定。
XDE在OCAF 文档中工作,在专用XCAF模块中定义了特定组织。XDE的各种功能使用此组织来交换除形状和几何形状之外的标准化数据。
分配给形状的装配结构和属性存储在OCAF树中。可以使用API以TopoDS_Compound或TopoDS_Shape的形式获取组件的每个级别的TopoDS表示。
XDE使用的基本元素由XCAFDoc包在XCAF子模块中引入。这些元素包括规范化数据交换中常用数据结构的描述(除了形状本身)。它们不依附于特定的应用程序,不带来特定的语义,而是根据数据交换的使用和需求进行结构化。
组件:
XDE通过分离形状定义及其位置来支持程序集。形状是没有位置定义的简单OCAF对象。一个装配体由几个组件组成。这些组件中的每一个都引用一个具有不同位置的相同指定形状。所有这些都为处理多级装配提供了更高的灵活性。
下图借用eryar (OpenCASCADE Extended Data Exchange - XDE - eryar - C++博客)的树形装配结构图
XDE定义了程序集内容的具体组织方式。形状存储在标签0:1:1的子标签上。无论是真正的树还是简单的形状,都可以有一个或多个根(称为自由形状)。如果形状是用组件(子形状,定位与否)定义的,则可以将形状视为装配体(例如图1中0:1:1:1下的AS1)。
XCAFDoc_ShapeTool是一种允许管理XCAF文档的Shape部分的工具。此工具作为属性实现并位于形状部分的根标签处。
验证属性:
验证属性是由发送系统写入STEP文件的形状(体积、质心、表面积)的几何特征。这些特征由接收系统读取以验证翻译质量。这是通过将原始系统计算的值与接收系统在结果模型上计算的相同值进行比较来完成的。
Advanced Data Exchange支持读取和写入验证属性,并提供检查它们的工具。
名称:
XDE还支持读取的写入IGES和STEP文件的形状的名称;
颜色和图层:
XDE可以读写模型的颜色数据,使用到的类有:
l 通用颜色:generic color(XCAFDoc_ColorGen)
l 曲面颜色:surface color(XCAFDoc_ColorSurf)
l 曲线颜色:curve color(XCAFDoc_ColorCurv)
几何尺寸和公差:
。。。。。。。。。。。
。。。。。。。。。。。