Bootstrap

3D格式转换工具HOOPS Exchange最全技术指南(三):4大功能特征与典型使用场景

什么是 HOOPS Exchange

HOOPS Exchange 是一组软件库,可以帮助开发人员在开发应用程序时读取和写入主流的 2D 和 3D 格式。HOOPS Exchange 支持 在主流的3D 文件格式中读取 CAD 数据,并支持将 3D 数据转换为 PRC 数据格式,这是一种高度可压缩和开放的文件格式,并已通过国际标准化组织 (ISO 14739-1:2014) 的认证。PRC 也是 Adobe PDF 中用于 3D 的格式之一。HOOPS Exchange 持续优化读取各种 3D 数据的功能,尤其是对于来自计算机辅助设计 (CAD) 系统的数据。

HOOPS Exchange 的典型用途

二、准确性:参数信息的保存

HOOPS Exchange 具有用于描述主流和非流形模型的完整拓扑结构,同时也可以为顶点和边保留局部公差。
PRC 文件格式包括由主要机械 CAD 系统、相关开放标准(例如 STEP 和 IGES)定义和使用的所有几何实体的联合。每个实体都以原始建模系统定义的原始参数形式存储。因此,PRC 与许多现有标准相比具有显着优势,因为在以 PRC 表示 3D 曲线和曲面数据时,不需要损失精度或准确度。
为以下表面类型保留了表面定义:

  • 混合
  • 锥体
  • 圆柱
  • 挤压
  • 曲线
  • NURBS
  • 抵消
  • 管道
  • 飞机
  • 革命
  • 统治的
  • 领域
  • 环面

所有曲线和曲面都可以用精确到用户指定公差的 NURBS 曲线和曲面进行拟合。
查询建模器特定表面
提供了访问功能,以便所有建模器特定的曲线和曲面都可以以其原始参数形式获得。此外,可以使用 HOOPS Exchange 中的相应功能创建包含建模器特定曲线和曲面定义的 PRC 文件。
转换为一般曲面
HOOPS Exchange 提供了将所有建模器特定的曲线和曲面转换为标准通用形式的功能,即 NURBS。可以为转换过程指定公差,以生成的曲线或曲面精确到该公差(通常为 0.001 毫米)内。
测量
HOOPS Exchange 提供了基于 UV 参数化直接测量建模器特定表面的功能,以返回准确的 3D 点。
三、压缩
以 PRC 格式存储的文件可以进行高度压缩。由 HOOPS Exchange 编写的压缩 PRC 文件通常比原始专有 CAD 文件小 100 倍,通常比 U3D(一种仍在 PDF 中使用的传统 3D 格式)小三倍。
常规压缩
常规压缩是指直接表示 CAD 数据,而不丢失或转换原始 CAD 系统。常规压缩包括:

  • 曲线和曲面的特定于建模器的表示,通常比广义 NURBS 表示压缩得多。保留它们会导致文件更小且包含更准确的数据。
  • PRC 格式具有某些状态信息的当前值的概念。这意味着此状态信息不必在文件中重复。
  • 除了标题部分之外,PRC 文件的所有部分都使用 Flate 方法单独压缩。
Flate方法基于公共域deflate压缩,是一种与自适应霍夫曼编码级联的可变长度Lempel-Ziv自适应压缩方法。这种形式的压缩被认为是“无损”的。无论PRC文件的实际内容如何,它都会系统地发生,即使它还包含压缩参数或镶嵌几何图形。

高压缩
参数化和细分几何都可以以压缩形式存储在 PRC 文件中,以相对于原始形状达到指定的物理容差。对于参数数据,此公差通常为 0.001 毫米,对于镶嵌数据,此公差通常为 0.01 毫米。
对于 NURBS 数据节点向量、多重性、控制点和权重都以压缩格式存储。NURBS 也可以使用更简单的规范曲面形式(例如平面和圆柱体)来近似。对于镶嵌数据三角形网格,顶点坐标、法线和纹理都被压缩。
使用了多种有损技术,包括可变坐标基础、消除冗余坐标以及根据所需精度以减少的位数存储浮点数。
四、单位、公差和公差建模
每个 PRC 文件在标题中包含一个全局单位定义。单位以毫米的倍数指定,1 为一毫米,10 为一厘米,以此类推。此外,标识符指示此单位是否与源 CAD 文件相同。
此外,对于多个零件的装配体,每个产品实例都可以有自己的单元。但是,为了一致性和易用性,HOOPS Exchange 将所有基础数据转换为模型文件的单个单元。
当读入没有单位或单位不可靠的格式时,HOOPS Exchange 定义为默认单位。
公差
有几种类型的公差与 HOOPS Exchange 和 PRC 文件中的数据相关:

  • 指定如何从参数化曲线和曲面数据生成细分数据的公差。
  • 指定如何从建模器特定的曲线和曲面创建 NURBS 数据的公差。
  • 一个容差,指定为中国出口压缩的数据与原始数据之间的最大偏差。在 HOOPS Exchange 中,可以通过 API 访问参数曲面和曲线数据的该值,但不能访问镶嵌数据。
  • 规避所有建模系统中存在的数值不确定性所需的容差值。通常,这将包括零值,例如小于 1e-12,无穷大,例如大于 1e6 和相等,例如在 1e-3 内。这些值在内部使用,在 Exchange API 中不可用。

公差值没有单位,需要与模型文件和产品出现中指定的单位相结合才能获得物理真实世界的值。
例如,如果 A3DGetSurfaceBaseAsNurbs 的dTolerance参数指定为 0.001,单位为 1000,则实际公差为 1mm。
容错建模
一些建模系统支持容差建模的可变容差。这是为了考虑到即使顶点坐标之间的距离大于该建模系统的全局容差,也需要将一组面、边或顶点视为连接的情况。
这有助于支持案例,例如将数据从具有较宽松容差的建模器转换为具有更严格容差的建模器。
PRC 支持面、边和顶点的局部公差,当它们存在于源 CAD 文件中时,它们由 HOOPS Exchange 保留。
五、名称和其他字符串
可以使用杂项属性机制将基于字符串的属性数据添加到实体中。HOOPS Exchange 使用其他属性来确保正确保留原始 CAD 文件中指定的所有名称。此外,属性可用于任何实体上存储用户数据。
字符串的字符编码为 UTF8 格式。
唯一标识符
某些 CAD 格式支持实体的持久性和非持久性唯一标识符。
如果标识符在 CAD 文件被修改后仍保持不变,则它保持不变,但如果实体被破坏,则标识符也会被删除。如果一个标识符可以随着文件的连续版本被保存而改变,那么它就是非持久的。
CATIA V5、NX、Pro/Engineer 和 Parasolid XT 支持持久标识符。
二进制用户数据
除了使用杂项属性机制存储用户数据的能力外,应用程序定义的数据还可以作为二进制流存储在与程序集、表示项和标记数据的子类型相关联的 PRC 文件中。
用户数据与该项目的流大小一起存储为比特流。这允许没有该数据定义的应用程序仍然可以读取 PRC 文件,甚至存储数据。
为了区分来自同一PRC文件中不同应用程序的用户数据,每个用户数据块由创作应用程序的唯一标识符标识。要为您的应用程序获取唯一标识符,请联系 Tech Soft 3D。
六、支持镶嵌数据
HOOPS Exchange 支持直接从原始 CAD 文件读取镶嵌数据,还提供内部镶嵌器,以便所有通用和特定于建模器的曲线和曲面都可以转换为多边形数据。
HOOPS Exchange 将 tessellation 数据分为三种类型:

  • 3D 数据,用于表示 3D 表面
  • 用于表示 3D 曲线和多段线的线体
  • 用于显示 PMI 和 GD&T 的标记数据

带有 GD&T 标记的 CAD 模型

对于表面和相应的细分数据都可用的格式,可以使用一个标志来确定是直接从文件中检索细分数据还是从表面几何图形中计算它。
镶嵌过程旨在为可视化目的生成少量多边形。STL 导出过程使用单独的镶嵌器来创建结构良好的网格,这样所有连接边在重合顶点处相交,并且避免了细长三角形。
细分数据支持顶点法线和纹理坐标。多边形数据可以以结构化形式提供,以便在顶点数组中识别每个 B-rep 面和相应的面环,或者可以将整个身体表示为单个镶嵌实体。可以使用优化的三角形形式——即 tristrips 和 trifans。
镶嵌选项
加载文件时,镶嵌参数可用于控制曲线和曲面的镶嵌程度。对于曲线,可以指定线性弦之间的最大角度。
对于曲面,镶嵌曲面与真实曲面的最大距离表示为实体边界框的比率。这允许实体的统一镶嵌,而与实体的物理尺寸无关。此外,可以指定最大偏差,也可以指定形成三角形的每个边之间的最小角度。
七、配置和视图
某些 CAD 格式支持模型或装配结构的多种配置。配置是模型相对于其定义层次结构的特定安排。例如,零件可能在不同的位置,具有不同的几何形状或在不同的配置中完全省略。
一个示例可能是汽车模型,其中一种配置位于左侧,而第二种配置位于右侧。配置与视图是分开的。
HOOPS Exchange 支持 CATIA V4、I-deas 和 SolidWorks 的配置。在 Pro/Engineer 中,配置称为族表,并且支持初始/通用版本。
见解
在 HOOPS Exchange 中,术语视图专门用于指代 3D 场景的特定表示,包括相机设置、实体可见性、颜色和位置。
例如,视图可以是“分解视图”,其中几何实体显示在不同的位置,标记标签用于描述与如何组装模型相关的说明。一系列这样的视图可以包括工作指令。
八、外部链接
在 Microsoft Windows 上,HOOPS Exchange 使用显式外部链接机制将 API 调用公开给主机应用程序。
显式链接要求应用程序专门加载和卸载 HOOPS Exchange DLL 并获取每个函数的地址,以便随后可以通过函数指针调用它。
HOOPS Exchange 提供了一套完整的宏来管理这个过程,并确保调用 Exchange 函数的应用程序代码看起来像使用隐式链接的普通代码。

如果由于某种原因 DLL 不存在,外部链接为应用程序提供了正常退出的机会。同时还支持二进制格式的 DLL ,成功地与不同的二进制格式一起使用 - 例如,使用 Visual Studio 2008 构建的 DLL 可以成功地与 Visual Studio 2010 一起使用。

相关阅读:

3D格式转换工具HOOPS Exchange最全技术指南(一):4大功能特征与典型使用场景

3D格式转换工具HOOPS Exchange最全技术指南(二):4大功能特征与典型使用场景

3D格式转换工具HOOPS Exchange最全技术指南(四):4大功能特征与典型使用场景

了解HOOPS技术详情欢迎进入HOOPS中文网

;