介绍
本手册介绍了如何使用扩展数据交换(XDE)。它提供了有关设置和使用 XDE 的基本文档。
扩展数据交换 (XDE) 模块允许通过转换附加到几何 BREP 数据的附加数据来扩展交换范围,从而提高与外部软件的互操作性。
支持颜色、层、装配描述和验证属性(即重心等)等数据类型。这些数据与形状一起存储在 XCAF 文档中。也可以以现有工具为原型添加新类型的数据。
最后,XDE 提供读写器工具,用于在 IGES 和 STEP 文件中读取和写入 XCAF 支持的数据。
XDE 组件需要形状修复工具包才能运行。
基本条款
为了更好地理解 XDE,定义了一些关键术语:
- 形状——独立的形状,不属于装配结构。
- 实例– 另一个形状的复制,其位置可以是相同的位置,也可以是不同的位置。
- 装配体——一种结构,它既可以是根也可以是子装配体。
XDE 组织
XDE 的基础,称为 XCAF,是一个基于OCAF(Open CASCADE Technology Application Framework)的框架,旨在与程序集和各种附加数据(属性)一起使用。属性可以是形状的单个属性,指定形状的某些特征,也可以是分组属性,指定形状属于给定组,其定义与形状不同。
XDE 在 OCAF 文档中工作,该文档具有在专用 XCAF 模块中定义的特定组织。XDE 的各种功能使用这种组织来交换除形状和几何形状之外的标准化数据。
分配给形状的装配结构和属性存储在 OCAF 树中。可以以API 的形式或使用 API来获得TopoDS
程序集的每个级别的表示。TopoDS_Compound
TopoDS_Shape
XDE 使用的基本元素由包引入到 XCAF 子模块中XCAFDoc
。这些元素包括对标准化数据交换中常用数据结构(除了形状本身)的描述。它们不依附于特定的应用程序,不带来特定的语义,而是根据数据交换的用途和需要进行结构化。XDE 使用的 Document 通常以TDocStd_Document
.
组件
XDE 通过分离形状定义及其位置来支持装配。形状是没有位置定义的简单 OCAF 对象。一个组件由几个组件组成。这些组件中的每一个都引用一个具有不同位置的相同指定形状。所有这些都为处理多级装配提供了更大的灵活性。
例如,机械组件可以定义如下:
XDE 定义了程序集内容的具体组织。形状存储在 label 的子标签上0:1:1
。无论是真正的树还是简单的形状,都可以有一个或多个根(称为自由形状)。如果一个形状是用组件定义的(子形状,定位与否),它可以被认为是一个装配体(如图 1 中的AS1
下图)。0:1:1:1
XCAFDoc_ShapeTool
是一个允许管理 XCAF 文档的 Shape 部分的工具。此工具作为属性实现,位于形状部分的根标签处。
验证属性
验证属性是由发送系统写入 STEP 文件的形状(体积、质心、表面积)的几何特征。接收系统读取这些特征以验证翻译的质量。这是通过将原始系统计算的值与接收系统在结果模型上计算的相同值进行比较来完成的。
Advanced Data Exchange 支持读取和写入验证属性,并提供检查它们的工具。
检查日志包含计算值与存储在 STEP 文件中的值的偏差。一个典型的例子如下所示:
标签 | 面积缺陷 | 体积缺陷 | dX | dY | dZ | 名称 |
---|---|---|---|---|---|---|
0:1:1:1 |
312.6 (0%) | -181.7 (0%) | 0.00 | 0.00 | 0.00 | “S1” |
0:1:1:2 |
-4.6 (0%) | -191.2 (0%) | -0.00 | 0.00 | -0.00 | “主体” |
0:1:1:3 |
-2.3 (0%) | -52.5 (0%) | -0.00 | 0.00 | 0.00 | “MAIN_BODY_BACK” |
0:1:1:4 |
-2.3 (0%) | -51.6 (0%) | 0.00 | 0.00 | -0.00 | “MAIN_BODY_FRONT” |
0:1:1:5 |
2.0 (0%) | 10.0 (0%) | -0.00 | 0.00 | -0.00 | “头” |
0:1:1:6 |
0.4 (0%) | 0.0 (0%) | 0.00 | -0.00 | -0.00 | “HEAD_FRONT” |
0:1:1:7 |
0.4 (0%) | 0.0 (0%) | 0.00 | -0.00 | -0.00 | “返回” |
0:1:1:8 |
-320.6 (0%) | 10.9 (0%) | -0.00 | 0.00 | 0.00 | “尾巴” |
0:1:1:9 |
0.0 (0%) | 0.0 (0%) | -0.00 | -0.00 | 0.00 | “TAIL_MIDDLE” |
0:1:1:10 |
-186.2 (0%) | 4.8 (0%) | -0.00 | 0.00 | -0.00 | “TAIL_TURBINE” |
0:1:1:11 |
0.3 (0%) | -0.0 (0%) | -0.00 | -0.00 | 0.00 | “脚” |
0:1:1:12 |
0.0 (0%) | -0.0 (0%) | 0.00 | -0.00 | -0.00 | “FOOT_FRONT” |
0:1:1:13 |
0.0 (0%) | 0.0 (0%) | -0.00 | 0.00 | 0.00 | “FOOT_BACK” |
在我们的示例中,可以看出对于面积、体积或定位数据都没有检测到错误。
名称
XDE 支持从 IGES 和 STEP 文件格式读取和写入形状名称。如果您不需要此类数据,可以关闭此功能,从而减小文档的大小。
颜色和图层
XDE 可以在 IGES 和 STEP 格式中读取和写入分配给形状或其子部分的颜色和图层(直至面和边的级别)。枚举中定义了三种颜色XCAFDoc_ColorType
:
- 通用颜色 (
XCAFDoc_ColorGen
) - 表面颜色 (
XCAFDoc_ColorSurf
) - 曲线颜色 (
XCAFDoc_ColorCurv
)
几何尺寸和公差 (GD&T)
GD&T 是一种产品和制造信息( PMI ),可以由 CAD 系统自动计算,也可以由用户手动输入。有关详细信息,请使用CAx-IF 产品制造信息 (PMI) 表示和表示的推荐做法 (AP242)。
XDE 可以读写以下类型的 GD&T 数据:
- 尺寸,如距离、长度、半径等;
- 几何公差;
- 基准,即与公差特征相关的理论上精确的几何参考,例如点、线或平面。
XDE 支持 GD&T 数据的两种表示形式:
- 语义表示,即数据以机器可消费的方式存储,并包含在不借助任何表示元素的情况下理解规范所需的所有信息;
- 镶嵌表示,即数据以人类可读的方式显示。
剪裁平面
XDE 支持从 STEP 读取并存储用于裁剪的命名平面。目前,XDE 仅支持以 XBF 格式保存剪切平面。
XDE 提供了添加、编辑和删除剪切平面的功能。
保存的视图
XDE 支持从 STEP 视图读取。视图允许保存有关相机参数(位置、方向、缩放系数等)和可见形状、PMI、使用的剪切平面和注释的信息。目前,XDE 仅支持以 XBF 格式保存剪切平面。
XDE 提供以下视图管理功能:
- 添加/删除视图;
- 设置查看相机参数;
- 设置可见形状、PMI、使用的剪切平面和注释。
自定义注释
自定义注释是一种附加到装配项目、它们的属性和子形状的特定于应用程序的数据。基本上,有简单的文本注释、二进制数据和其他特定于应用程序的数据。每个笔记都提供了一个时间戳和创建它的用户。
Notes API 提供以下功能:
- 返回注释和注释项的总数;
- 返回所有注释和注释项目的标签;
- 创建笔记:
- 来自文本字符串的注释;
- 来自文件或字节数组的二进制数据注释;
- 检查装配项目是否已注释;
- 查找注释项的标签;
- 返回注释项的所有注释标签;
- 向项目添加注释:
- 组装项目;
- 装配项属性;
- 装配项子形状索引;
- 从带注释的装配项目中删除注释;可以选择删除孤立笔记(没有链接笔记的项目将被自动删除);
- 删除注释并将其从带注释的项目中删除;
- 获取/删除孤儿笔记。
入门
如上一章所述,XDE 使用TDocStd_Documents
作为起点。XDE 的一般用途是:
- 检查现有文档是否适合 XDE;
- 获取应用程序和初始化文件;
- 初始化文档以适应 XDE;
- 添加、设置和查找数据;
- 查询和管理形状;
- 将属性附加到形状。
XDE 使用的 Document 通常以TDocStd_Document
.
环境变量
要使用 XDE,您必须正确设置环境变量。确保两个重要的环境变量设置如下:
CSF_PluginDefaults
指向的来源$CASROOT/src/XCAFResources
。CSF_XCAFDefaults
指向的来源$CASROOT/src/XCAFResources
。
一般检查
在使用形状、属性和其他类型的信息之前,可以查询或完成 XDE 文档的全局组织,以确定现有文档是否实际上是为与 XDE 一起使用而构建的。
要确定现有的TDocStd_Document
是否适合 XDE,请使用:
如果文档适用于 XDE,您可以执行本指南中说明的操作和查询。但是,如果一个 Document 不是完全为 XDE 构建的,它必须被初始化。
获取应用程序或初始化文档
如果要检索现有应用程序或现有文档(已知为 XDE 正确结构化),请使用:
形状和组件
初始化 XDE 文档(形状)
XDE 文档以TDocStd_Document
. 假设您TDocStd_Document
已经创建了一个,您可以通过如下初始化 XDE 结构来确保它针对 XDE 的结构正确:
请注意,该方法XCAFDoc_DocumentTool::ShapeTool
返回XCAFDoc_ShapeTool
. 第一次使用此方法时,它会创建XCAFDoc_ShapeTool
. 在我们的示例中,句柄用于TDocStd_Document
.
获取一个被视为程序集的节点
要从 XDE 结构中将节点视为程序集,可以使用节点的标签。假设您已正确初始化TDocStd_Document
,请使用:
在前面的示例中,您还可以获得 XDE 文档的 Main Item,该文档通过使用XCAFDoc_DocumentTool::ShapeTool(theDoc->Main())
而不是XCAFDoc_DocumentTool::ShapeTool(aLabel)
.
然后,您可以查询或编辑此 Assembly 节点、Main Item 或另一个(myAssembly
在我们的示例中)。
请注意,对于本指南其余部分中的示例,myAssembly
始终假定以这种方式访问,因此不会重复此信息。
填充或编辑后更新装配体
本章中的某些操作会影响文档的内容,将其视为一个程序集。因此,您有时需要更新各种表示(包括化合物)。
要更新表示,请使用:
此调用对存储在文档中的装配化合物执行自上而下的更新。
请注意,在对形状进行任何低级修改后,您必须手动运行此方法以实现您的程序集。
添加或设置顶级形状
形状可以添加为顶级形状。顶级意味着它们可以添加到更高级别的装配中,或者作为组件在最高级别单独添加,或者由定位的实例引用。因此可以添加两种类型的顶级形状:
- 具有上层参考的形状;
- 没有任何上参考的自由形状(对应于根)。
请注意,可以将多个顶级形状添加到同一个组件中。
要添加的形状可以定义为复合(如果需要),具有以下解释:
- 如果 Shape 是一个复合体,根据用户的选择,它可能被解释为代表一个装配体,也可能不被解释为代表一个装配体。如果它是一个程序集,它的每个子形状都定义一个子标签。
- 如果 Shape 不是复合词,则将其视为一个整体,而不是将其分解。
要分解装配结构中的 Compound,请使用:
因此,组件的每个节点都指代它的子形状。
关于子形状的定位实例,相应的形状(没有位置)出现在不同的子标签上。它们由关联位置的形状实例引用。
在给定标签处设置给定形状
可以更改顶级形状。在此示例中,不执行化合物解释:
从标签获取形状
要从顶层的 Label 中获取形状,请使用:
请注意,如果标签对应于程序集,则结果是化合物。
从形状中获取标签
要从顶层获取附加到 Shape 的标签,请使用:
如果toFindInstance
是True
,则搜索具有相同位置的形状。如果是False
(默认值),则在原始的、未定位的形状中进行搜索。
标签上的其他查询
可以从 XDE 的 Main Item 中的 Label 进行各种其他查询:
主要形状
要确定是否记录了形状(或不记录),请使用:
要确定形状是否是顶级的,即由XCAFDoc_ShapeTool::AddShape
方法添加,请使用:
要获取由该方法添加的顶级形状的列表XCAFDoc_ShapeTool::AddShape
,请使用:
如果上面的列表只有一项,要一次获得所有免费形状,请使用:
如果有多个项目,则必须创建并填充复合,使用:
在我们的示例中,结果是化合物aComp
。要确定形状是否为自由形状(无参考或超级装配),请使用:
要获取自由形状(根)列表,请使用:
要获取使用给定形状作为组件的形状,请使用:
的计数aUsers
包含在 中aNbUsers
。它包含0
是否没有用户。
装配和组件
要确定标签是附加到主要零件还是附加到子零件(组件),请使用:
要确定标签是(子)装配的节点还是简单形状,请使用:
如果标签是(子)装配的节点,则可以获得组件的数量,使用:
如果subchilds
是True
,命令也考虑子级别。默认情况下,仅选中一级。
要自己获取组件标签,请使用:
组件的实例和参考
要确定标签是否为简单形状,请使用:
要确定标签是否是对另一个标签的定位引用,请使用:
如果标签是定位引用,则可以获取位置,使用:
要获取引用的原始形状的标签(也测试它是否是引用),请使用:
如果不作为参考,则isRef
返回注释。False
aLabel
编辑形状
除了前面描述的AddShape
和之外SetShape
,还可以进行多种形状编辑。
要删除 Shape 及其所有子标签,请使用:
如果形状既不是自由的也不是顶级的,则此操作将失败。
要将组件从新形状添加到装配体,请使用:
If toExpand
is True
and aShape
is a Compound,aShape
被分解以产生子组件,每个子形状都有一个。
要从先前记录的形状(新组件由参考形状的标签及其位置定义)将组件添加到装配体,请使用:
要从装配中移除组件,请使用:
子形状的管理
除了(子)组件的组件之外,还可以对任何形状内的某些子形状进行单独标识。因此,您可以附加特定属性,例如颜色。可以对既不是顶级也不是组件的子形状执行一些附加操作。要将子形状添加到给定标签,请使用:
要查找附加到给定子形状的标签,请使用:
如果找到子形状(是),aSubLabel
则填充正确的值。
要查找包含给定子形状的顶级简单形状(不是自由与否的复合形状),请使用:
请注意,有效模型应该只有一种形状。在任何情况下,搜索都会在找到的第一个上停止。
要获取记录在标签下的形状的子形状,请使用:
特性
某些属性可以直接附加到形状。这些属性是:
- 名称(来自 OCAF 的标准定义);
- 质心(用于验证转移);
- 体积(用于验证转移);
- 区域(用于验证转移)。
还可以附加一些其他属性,也可以通过不同的颜色和图层工具进行管理。颜色和图层作为组织数据的另一种方式进行管理(通过提供一种识别形状组的方式)。颜色被放入一个颜色表中,而形状参考这个表。
将颜色附加到形状有两种方法:
- 通过附加表格中的项目;
- 直接添加颜色。
直接添加颜色时,会在目录中进行搜索以确定是否包含请求的颜色。完成此搜索和初始化操作后,将使用第一种将颜色附加到形状的方法。
姓名
Name 被实现并用作 a TDataStd_Name
,它可以附加到任何标签上。在继续之前,请考虑:
- 在 IGES 中,每个实体的名称都可以带有一个可选的数字部分,称为下标标签。例如,
MYCURVE
是一个名称,并且MYCURVE(60)
是一个带有下标标签的名称。 - 在 STEP 中,有两个级别:Part Names 和 Entity Names:
- 零件名称附加到“主要形状”,例如零件和装配体。XDE 专门支持这些部件名称。
- 实体名称可以附加到每个几何实体。此选项很少使用,因为它往往会使数据结构的利用过载。只有在某些特定情况下才证明使用该选项是合理的:例如,当发送系统在每个 STEP 写入后确实可以确保实体名称的稳定性时。如果确保了这种稳定性,您可以使用此选项为使用数据库的外部应用程序发送标识符。
请注意,IGES 或 STEP 文件都将名称作为纯 ASCII 字符串处理。
这些注意事项并非特定于 XDE。特定于数据交换的是名称附加到实体的方式。
要将名称附加到标签上(作为使用 OCAF 的提醒),请使用:
对于交换文件,不要忘记将扩展字符串视为 ASCII。
要将名称设置为标签(作为使用 OCAF 的提醒),请使用:
质心
质心由点定义以固定其位置。它作为属性、类的项目、类XCAFDoc_Centroid
的子类来处理TDF_Attribute
。但是,全局方法可以访问位置本身。
此概念已在 STEP 中与 Volume 和 Area 的概念一起引入,以定义验证属性:此功能允许交换几何图形和一些基本附加值,以便在读取和处理后对它们的维护方式进行综合检查转换交换文件。这种交换依赖于几何和拓扑的可靠交换。否则,这些值可以被认为是不相关的。
可以在组件的任何级别确定质心,从而允许检查单个简单形状及其组合(包括位置)。
要获得附加到形状的质心,请使用:
要将质心设置为形状,请使用:
区域
面积由实数定义,它对应于形状的计算面积,前提是它包含曲面。它作为属性、类的项目、类XCAFDoc_Area
的子类来处理TDF_Attribute
。此概念已在 STEP 中引入,但对于实体通常不予考虑,因为使用的是体积。此外,它附加到简单的形状,而不是组件。
要获取附加到形状的区域,请使用:
要将面积值设置为形状,请使用:
体积
Volume 由 Real 定义,对应于 Shape 的计算体积,前提是它包含实体。它被作为一个属性,一个类的一个项目,一个的XCAFDoc_Volume
子类来处理TDF_Attribute
。这个概念已在 STEP 中引入。它可以附加到简单的形状或它们的组件上,用于计算累积体积和重心。
要获得附加到形状的卷,请使用:
要将体积值设置为形状,请使用:
颜色和图层
XDE 可以在 IGES 和 STEP 格式中读取和写入分配给形状或其子部分的颜色和图层(直至面和边的级别)。
在 XDE 文档中,颜色由类管理XCAFDoc_ColorTool
。它的工作原理与 ShapeTool 处理 Shapes 的原理相同。该工具可以在主标签或任何子标签上提供。Property 本身被定义为 的XCAFDoc_Color
子类TDF_Attribute
。
颜色存储在起始文档标签的子级中:它是第二级 ( 0.1.2
),而 Shapes 位于第一级。然后,每种颜色对应一个专用标签,属性本身是 a Quantity_Color
,它具有红色、绿色、蓝色的名称和值。颜色可以附加到表面(平面颜色)或曲线(线框颜色),或两者。颜色可以附加到子形状。在这种情况下,子形状(及其自己的子形状)将其自己的颜色作为优先级。
使用与颜色相同的原则处理图层。在下面描述的所有操作中,您可以在处理图层时简单地将颜色替换为图层。类支持层。XCAFDoc_LayerTool
属性的类是 的XCAFDoc_Layer
子类,TDF_Attribute
而它的定义是 a TCollection_ExtendedString
。处理图层时通常使用整数。一般情况有:
- IGES 有LevelList作为层号列表(不常用);
- STEP 标识一个层(不是通过数字,而是通过字符串),更通用。
颜色和形状与树节点相关。
这些定义对于各种交换格式是通用的,至少对于 STEP 和 IGES 是这样。
初始化
要查询、编辑或初始化文档以处理 XCAF 的颜色,请使用:
可以随时使用此调用。第一次使用时,将相关结构添加到文档中。此定义用于以下所有颜色调用,不再重复。
添加颜色
有两种添加颜色的方法。你可以:
- 添加定义为的新颜色
Quantity_Color
,然后直接将其设置为形状(匿名颜色); - 定义一个新的属性颜色,将其添加到颜色列表中,然后将其设置为各种形状。
当 Color 按其值Quantity_Color
添加时,仅当尚未在 Document 中记录(相同的 RGB 值)时才添加它。
要使用标签将颜色设置为形状,请使用:
或者,可以直接指定 Shape ,而不使用其标签,使用:
请注意,这个颜色可以被命名,允许以后通过它的名称而不是它的值来检索。
要将由其标签标识并已记录的颜色设置为形状,请使用:
在本例中,aLabel
可以直接替换为aShape
。
颜色查询
可以对颜色执行各种查询。但是,本节仅包含特定查询,不包括使用名称的一般查询。
要确定颜色是否附加到形状,对于给定的颜色类型 ( aColType
),请使用:
在本例中,aLabel
可以直接替换为aShape
。
要将颜色附加到形状(对于任何颜色类型),请使用:
颜色名称也可以通过aCol.StringName
或查询aCol.Name
。在本例中,aLabel
可以直接替换为aShape
。
要使用特定颜色类型将颜色附加到形状,请使用:
要获取文档中记录的所有颜色,请使用:
要从其值中查找颜色,请使用:
编辑颜色
除了添加颜色之外,还可以进行以下属性编辑:
要取消设置形状上的颜色,请使用:
要删除颜色及其所有引用(使相关形状变为无色),请使用:
几何尺寸和公差 (GD&T)
XDE 可以从 STEP 格式读取和写入分配给形状或其子部分的 GD&T(直至面和边的级别)。
在 XDE 文档中,GD&T 由类管理XCAFDoc_DimTolTool
。它的工作原理与 ShapeTool 处理 Shapes 的原理相同。该工具可以在主标签或任何子标签上提供。GD&T 实体本身被定义为以下子类TDF_Attribute
:
XCAFDoc_Dimension
– 尺寸;XCAFDoc_GeomTolerance
——几何公差;XCAFDoc_Datum
– 用于几何公差基准。
GD&T 类型由上面列出的属性标识,即XCAFDoc_DimTolTool
处理特定实体类型的方法检查传递的标签中是否存在相应的属性。XCAFDoc_DimTolTool
为此,可以使用以“是”开头的方法。
GD&T 实体存储在起始文档标签的子项中0.1.4
。然后每个 GD&T 实体对应于专用标签,属性本身是访问类之一:
XCAFDimTolObject_DimensionObject
– 尺寸;XCAFDimTolObject_GeomToleranceObject
——几何公差;XCAFDimTolObject_DatumObject
– 用于几何公差基准。
GD&Ts 和 Shapes 由 Graph Nodes 关联。
这些定义对于各种交换格式是通用的,至少对于 STEP 而言。
初始化
要查询、编辑或初始化文档以处理 XCAF 的 GD&T,请使用:
可以随时使用此调用。首次使用时,会在文档中添加相关结构。此定义用于所有以后的 GD&T 调用,不再重复。
添加 GD&T
XCAFDoc_DimTolTool
提供创建 GD&T“空”实体的方法:
XCAFDoc_DimTolTool::AddDimension
– 一个新的维度;XCAFDoc_DimTolTool::AddGeomTolerance
– 对于新的几何公差;XCAFDoc_DimTolTool::AddDatum
– 用于新的几何公差基准。
所有方法都为工具主标签的相应 GD&T 实体创建一个子标签,并为创建的实体附加一个特定的属性。
以下是添加新维度的示例:
类似的方法可用于其他 GD&T 类型。
编辑 GD&T
新添加的 GD&T 实体为空。要设置其数据,应使用相应的访问对象,如下所示,其中尺寸变为两点之间的线性距离。
类似的方法可用于其他 GD&T 类型。
链接 GD&T
要将 GD&T 实体与其他 OCAF 标签(例如表示形状)链接,应使用以下方法:
XCAFDoc_DimTolTool::SetDimension
– 尺寸;XCAFDoc_DimTolTool::SetGeomTolerance
——几何公差;XCAFDoc_DimTolTool::SetDatum
– 用于几何公差基准。
这些方法可以采用单个标签或一系列标签。所有以前的链接都将被删除。
下面的示例演示了将维度链接到形状标签序列:
此外,XCAFDoc_DimTolTool::SetDatumToGeomTol
应使用特殊方法将基准与形位公差联系起来。
查找 GD&T 和参考形状
XCAFDimTolObjects_Tool
类提供了搜索与形状相关联的 GD&T 的基本功能。该工具提供与形状相关的尺寸序列、几何公差和基准。还为几何公差返回一系列相关基准。
要获得 GD&T 实体的参考形状,可以使用XCAFDoc_DimTolTool::GetRefShapeLabel
.
XCAFDoc_DimTolTool
提供获取所有尺寸、几何公差和基准的列表的方法。
存储自定义数据
XDE 中的每个 GD&T 实体都表示为带有标识实体类型的附加属性的标签。所有特定数据都存储在标准 OCAF 属性中的子标签中,例如TDataStd_Integer
、TDataStd_IntegerArray
等TDataStd_RealArray
。子标签标签保留供内部使用,不能用于存储自定义数据。以下标签范围为 GD&T 实体保留:
- 1 – 17 – 用于尺寸;
- 1 – 17 – 用于几何公差;
- 1 – 19 – 日期。
自定义数据可以存储在标签中,标签超出上述范围。
剪裁平面
在 XDE 文档中,剪切平面由类管理XCAFDoc_ClippingPlaneTool
。它的工作原理与 ShapeTool 处理 Shapes 的原理相同。该工具可以在主标签或任何子标签上提供。剪切平面存储在起始文档 label 的子项中0.1.8
,其中平面本身被定义为TDataXtd_Plane
属性。TDataStd_Name
属性用于命名。
要查询、编辑或初始化文档以处理 XCAF 的剪切平面,请使用:
可以随时使用此调用。首次使用时,会在文档中添加相关结构。
要添加剪切平面,请使用重载方法之一XCAFDoc_ClippingPlaneTool::AddClippingPlane
,例如:
删除平面使用XCAFDoc_ClippingPlaneTool::RemoveClippingPlane
方法,例如:
如果至少在一个视图中引用了该平面,则不会删除该平面。
要更改剪切平面及其名称使用XCAFDoc_ClippingPlaneTool::UpdateClippingPlane
方法,例如:
可以使用XCAFDoc_ClippingPlaneTool::SetCapping
方法更改封顶属性,例如:
XCAFDoc_ClippingPlaneTool
可用于获取所有剪切平面标签并检查标签是否属于ClippingPlane 表,例如:
保存的视图
在 XDE 文档中,视图由类管理XCAFDoc_ViewTool
。它的工作原理与 ShapeTool 处理 Shapes 的原理相同。该工具可以在主标签或任何子标签上提供。视图存储在起始文档 label的子类中0.1.7
,其中视图本身被定义为 的XCAFDoc_View
子类TDF_Attribute
。视图和选定的形状、剪裁平面、GD&T 和注释由图形节点关联。
要查询、编辑或初始化 Document 以处理 XCAF 的视图,请使用:
可以随时使用此调用。首次使用时,会在文档中添加相关结构。
添加视图使用XCAFDoc_ViewTool::AddView
方法和访问XCAFView_Object
对象来设置相机参数,例如:
要设置为视图选择的形状、剪裁平面、GD&T 和注释,请SetView
使用XCAFDoc_ViewTool
. 要仅设置剪切平面,应使用XCAFDoc_ViewTool::SetClippingPlanes
方法。
删除视图使用XCAFDoc_ViewTool::RemoveView
方法。
要获取所有视图标签并检查标签是否属于视图表,请使用:
要获取与特定视图关联的形状、剪切平面、GD&T 或注释,请使用以下方法:
XCAFDoc_ViewTool::GetRefShapeLabel
– 返回一系列相关的形状标签;XCAFDoc_ViewTool::GetRefGDTLabel
– 返回一系列相关的 GDT 标签;XCAFDoc_ViewTool::GetRefClippingPlaneLabel
– 返回一系列相关的剪裁平面标签;XCAFDoc_ViewTool::GetRefNoteLabel
– 返回一系列相关的音符标签;XCAFDoc_ViewTool::GetRefAnnotationLabel
– 返回一系列相关的注释标签。
反之亦然,要获得显示特定剪切平面、GD&T 或注释的视图,请使用以下方法:
XCAFDoc_ViewTool::GetViewLabelsForShape
– 返回与形状关联的视图标签序列;XCAFDoc_ViewTool::GetViewLabelsForGDT
– 返回与 GD&T 关联的视图标签序列;XCAFDoc_ViewTool::GetViewLabelsForClippingPlane
– 返回与剪切平面关联的视图标签序列;XCAFDoc_ViewTool::GetViewLabelsForNote
– 返回与注释关联的视图标签序列;XCAFDoc_ViewTool::GetViewLabelsForAnnotation
– 返回与注释标签关联的视图标签序列。
自定义注释
在 XDE 文档中,自定义注释由类管理XCAFDoc_NotesTool
。它的工作原理与 ShapeTool 处理 Shapes 的原理相同。该工具可以在主标签或任何子标签上提供。Property 本身被定义为抽象类的子类,XCAFDoc_Note
抽象类是TDF_Attribute
one 的子类。
自定义注释存储在标签的子XCAFDoc_NotesTool
标签 label 中0.1.9.1
。然后每个音符对应一个专用标签。注释可以附加到由标签标识的文档项、由整数索引标识的子形状或由 GUID 标识的属性。注释存储在标签的子XCAFDoc_NotesTool
标签中,位于 label 0.1.9.2
。Notes绑定是通过XCAFDoc_GraphNode
属性完成的。
初始化
要查询、编辑或初始化文档以处理 XCAF 的自定义注释,请使用:
可以随时使用此调用。第一次使用时,将相关结构添加到文档中。此定义用于所有以后的注释调用,并且不会对其重复。
创建笔记
在注释文档项目之前,必须使用以下XCAFDoc_NotesTool
类方法之一创建注释:
XCAFDoc_NotesTool::CreateComment
:创建带有文本注释的注释;XCAFDoc_NotesTool::CreateBinData
:使用任意二进制数据创建便笺,例如文件的内容。
两种方法都返回一个类的实例XCAFDoc_Note
。
此代码将子标签添加到0.1.9.1
带有XCAFDoc_NoteComment
属性的标签。
编辑笔记
类的实例XCAFDoc_Note
可用于注释编辑。一个人可能会改变常见的笔记数据。
要更改特定数据,需要将myNote
句柄向下转换为适当的子类:
为了编辑辅助注释数据,如文本和附件位置、渲染平面和镶嵌表示,应使用类XCAFNoteObjects_NoteObject
的 GetObject 和 SetObject 方法传递对象XCAFDoc_Note
。XCAFNoteObjects_NoteObject
类提供以下功能:
HasPlane
,GetPlane
以及SetPlane
方法测试、获取和设置用于笔记渲染的平面;HasPoint
,GetPoint
以及SetPoint
方法测试,获取和设置注释对象上的注释附着位置;HasPointText
,GetPointText
,SetPointText
方法测试,获取和设置测试位置;GetPresentation
和SetPresentation
方法允许测试和指定镶嵌表示。
获取后,可以对传输对象进行编辑设置回note:
添加注释
创建便笺后,可以使用以下XCAFDoc_NotesTool
方法将其绑定到 Document 项目:
XCAFDoc_NotesTool::AddNote
:将注释绑定到标签;XCAFDoc_NotesTool::AddNoteToAttr
:将注释绑定到标签的属性;XCAFDoc_NotesTool::AddNoteToSubshape
:将注释绑定到子形状。
所有方法都返回一个指向XCAFDoc_AssemblyItemRef
标识注释项的属性的指针。
此代码将三个具有XCAFDoc_AssemblyItemRef
属性的子标签添加到 label 0.1.9.2
。XCAFDoc_GraphNode
属性被添加到子标签和注释标签。
寻找笔记
要在标签下查找注释标签,0.1.9.2
请使用以下XCAFDoc_NotesTool
方法:
XCAFDoc_NotesTool::FindAnnotatedItem
:返回标签的注释标签;XCAFDoc_NotesTool::FindAnnotatedItemAttr
:返回标签属性的注释标签;XCAFDoc_NotesTool::FindAnnotatedItemSubshape
:返回子形状的注释标签。
如果没有对应的注解,将返回空标签。
要获取 Document 项的所有注释,请使用以下XCAFDoc_NotesTool
方法:
XCAFDoc_NotesTool::GetNotes
:输出绑定到标签的一系列音符标签;XCAFDoc_NotesTool::GetAttrNotes
:输出绑定到标签属性的一系列音符标签;XCAFDoc_NotesTool::GetAttrSubshape
:输出绑定到子形状的一系列音符标签。
所有这些方法都返回音符的数量。
删除笔记
要删除注释,请使用以下XCAFDoc_NotesTool
方法之一:
XCAFDoc_NotesTool::RemoveNote
:从标签中解绑注释;XCAFDoc_NotesTool::RemoveAttrNote
: 将注释与标签属性解除绑定;XCAFDoc_NotesTool::RemoveSubshapeNote
:从子形状中取消绑定注释。
笔记不会被自动删除。删除所有笔记的对应方法也可用。
删除笔记
要删除笔记,请使用以下XCAFDoc_NotesTool
方法:
XCAFDoc_NotesTool::DeleteNote
:删除单个音符;XCAFDoc_NotesTool::DeleteNotes
:删除一系列音符;XCAFDoc_NotesTool::DeleteAllNotes
:删除所有文档注释;XCAFDoc_NotesTool::DeleteOrphanNotes
:删除未绑定到文档项目的注释。
除了最后一个之外,所有这些方法也破坏了与 Document 项目的所有链接。
读写 STEP 或 IGES
请注意,保存和恢复文档本身是标准的 OCAF 操作。由于前面描述的各种定义都进入了这个框架,因此不再对其进行解释。查看也可以这样说:演示文稿可以从形状和颜色中定义。
有几个要点需要考虑:
- 先前定义的仅用于处理 Shapes 的 Readers 和 Writers,无论是Standard还是 Advanced,其形式和依赖项都保持不变。此外,映射以外的功能也没有变化。
- XDE 提供了与 Shapes 以外的数据的映射。名称、颜色、层、GD&T、剪裁平面、视图、验证属性(质心、体积、面积)和装配结构是具有刚性运动的层次结构。目前,仅 XBF 格式支持剪切平面和视图写入。
- XDE 映射与高级数据交换的使用相关,而不是标准的,因为更高级别的信息更适合更高质量的形状。此外,这允许避免各种选项之间的多重组合。请注意,此选择不是架构之一,而是实际使用和包装。
- XDE 的 Reader 和 Writer 类通常像 Shapes 一样使用。但是,它们的使用适用于管理文档而不是形状。
管理这个的包是IGESCAFControl
用于 IGES 和STEPCAFControl
STEP 的。
读取 STEP 文件
要单独读取 STEP 文件,请使用:
此外,阅读器提供了适用于文档传输和直接查询生成的数据的方法。
编写 STEP 文件
要自己编写 STEP 文件,请使用:
读取 IGES 文件
使用与 STEP 文件相同的过程,但使用IGESCAFControl
而不是STEPCAFControl
.
编写 IGES 文件
使用与 STEP 文件相同的过程,但使用IGESCAFControl
而不是STEPCAFControl
.
使用 XDE 文档
有几种方法可以利用应用程序中的 XDE 数据,您可以:
- 通过映射 XDE/Appli 获取与应用程序相关的数据,然后在使用后丢弃 XDE 数据。
- 创建从应用程序文档到 XDE 文档的引用,以使其数据可用作外部数据。
- 在应用程序文档中嵌入 XDE 数据(有关详细信息,请参阅以下部分)。
- 直接利用 XDE 数据,例如在使用文件检查器时。
应用程序文档中的 XDE 数据
要在 label 之外的其他地方获取 XCAF 数据0.1
,请使用 XDE 的 DocLabel。该方法XCAFDoc_DocumentTool::DocLabel
确定 XCAF 的相关标签。但是,请注意,默认值为0.1
.
此外,由于 XDE 数据是以模块化方式定义和管理的,因此您可以只考虑组装结构、只考虑颜色等。
由于 XDE 提供了数据结构的扩展,对于标准化交换中的相关数据,请注意以下几点:
- 这种数据结构适合于数据交换,而不是供最终应用程序使用;
- 提供的定义是通用的,用于常见用途,因此不会带来强烈的特定语义。
因此,如果应用程序在程序集、颜色或层、验证属性(如 STEP 中定义)上工作,它可以依赖所有或部分 XDE 定义,并将它们包含在自己的数据结构中。
此外,如果应用程序的数据结构与这些概念相去甚远,它可以根据需要获取数据(例如形状上的颜色和名称),而不必考虑整体。
暂无评论内容