【问题标题】:Starting point for learning CAD/CAE file formats?学习 CAD/CAE 文件格式的起点?
【发布时间】:2010-11-04 16:34:15
【问题描述】:

我们正在大学开发一些应力和应变分析软件。现在是时候从矩形、盒子和球体转移到一些真实的模型了。但我仍然不知道从哪里开始。

在我们的软件中,我们将构建网格然后进行计算,但是如何从 CAD/CAE 软件导入实体?

1) 如何组织 CAD/CAE 模型? 如何表示实体? DWG、DXF、IGES、STEP 格式有哪些可能性?有例如完整的 DXF 参考资料,但如果不了解基本概念,我很难理解。

2) 是否有 C++ 库可以从 CAD/CAE 文件格式导入实体? 构建一个完整的模型来导入综合文件会不会太困难?

【问题讨论】:

    标签: c++ file-format autocad cad solid-bodies


    【解决方案1】:

    要导入实体,您首先需要将它们从 CAD 系统中导出。大多数 CAD 系统数据文件都是适当的(除非它们在我离开这个行业的几年里都转移到了 XML!)。 DWG 是 Autodesk 的文件格式,他们不(当然不)鼓励人们直接阅读它。如果有记忆,他们确实提供了一个文件读/写库,但我不知道它现在的状态。 DXF、IGES、STEP都是数据传输格式。

    DXF 归 Autodesk 所有,但已发布,以便其他公司可以使用它来读取和写入模型。 DXF 参考很复杂,但只是一个参考 - 您需要先了解概念,然后才能理解它所代表的含义。

    实体模型可以通过多种方式表示,可以通过构造实体几何 (CSG) 来表示,其中形状由实体图元彼此相加或相减组成,或者通过边界表示 (B-Rep),其中边缘被存储,或者通过三角面(3D Studio MAX,WPF和许多其他人使用)等等。具体格式取决于建模器的设计目的。

    有用于读取各种文件格式的库和工具。我不知道哪些仍然活跃,因为自从我大量参与 3D 图形以来已经 5 年多了。你最好自己寻找当前的作物。我建议从 Wikipedia 开始 - 它会有一些关于 3D 图形的文章,并且应该有大量链接可以进一步阅读和工具/库。

    一旦您有了阅读器,您就需要将数据转换为您的内部格式 - 这不是一项简单的任务。采用现有格式可能会更好。我的工作之一是将各种来源的模型读取到我公司的数据结构中。我们支持的建模器附带 API,让我们可以直接读取模型网格,并且从那里将他们的网格转换为我们的网格是一项相对简单(但绝非易事)的任务,这极大地帮助了我的任务。总是有一些边缘情况和格式的细微差别会引起头痛。如果我们必须自己读取文件格式(例如 DXF 或 VRML),则这些值会增加数倍。

    【讨论】:

      【解决方案2】:

      最好的办法是使用现有的开源 CAD 系统,例如 BRL-CAD,它包括对众多进口商和出口商的支持。

      您认为学习给定格式将难以理解和实现支持的直觉是非常正确的,尤其是在处理用于分析目的的实体几何格式时。用拓扑保证保持实体对于产生有效的分析很重要,但很少通过简单的网格格式来解决。

      特别是对于两个流行的国际标准(IGES 和 STEP),它们过于复杂而难以支持,因为它们可以包含以多种方式编码的相同实体几何。考虑一个简单的球体示例。该球体可以编码为一个简单的点和半径(没有显式表面信息,这是 CSG 使用常见的隐式形式),它可以是多边形网格(有损 BREP 刻面网格格式),它可以是样条曲面(BREP NURBS ),它可能是体积的(想想 CT 扫描数据)等等。专注于其中任何一项都涉及各种权衡(简单性、可靠性、分析保证、灵活性等)。

      正如关于 BRL-CAD 所提到的,它是一个大型开源实体建模系统,在您可以利用的许多领域中具有大量功能、大约十几个功能库和 400 多个简洁工具(大约两打几何转换器)。即使它不能完全满足您的需求,您也拥有源代码,并且可以回馈改进并与现有社区协作以帮助实现您的需求。

      【讨论】:

        【解决方案3】:

        重新阅读您的问题后,让我彻底改变我的答案。如果您只需要网格,那么只需使用简单的基于网格的格式。

        OBJ 简单、良好且非常标准。从许多 CAD 格式转换为 OBJ 需要一个 tessellator/mesher,无论如何您都不想编写它,只需获得一个 CAD 包的座位来进行翻译。 Moi 或 Rhino 成本低,支持多种格式。

        【讨论】:

          【解决方案4】:

          我经常使用一款用于电磁仿真的商业软件,该软件使用来自Simmetrix 的 ACIS 建模内核和组件。虽然我不能亲自证明使用这些库的便利性,但它们似乎确实像宣传的那样工作,可以为您节省大量工作。它们可能不适用于学术用途,但它们似乎确实是为了满足您的需求而设计的。

          【讨论】:

            【解决方案5】:

            据我所知,所有 CAD/CAE 软件a 都支持 IGES、STEP 等文件格式的几何和想法,以及网格数据的 anysis 等。大多数时候,我们发现 iges 不包含拓扑信息。但作为 IGES 的继承者,STEP(产品交换标准)的开发始于 1984 年。最初的计划是“STEP 应基于一个单一的、完整的、独立于实施的产品信息模型,该模型应为主集成主题和应用信息模型的记录"。我们有一些库来读写这些文件格式。但是当我编写代码来读取和写入几何图形以及网格时,读取或写入这些文件格式并不困难,但很无聊。

            【讨论】:

              【解决方案6】:

              在当前的 3D CAD 软件(CATIA、Pro/Engineer/Solidworks/NX)中,最常见的实体模型表示方式是通过边界表示 (B-REP)。

              但是,大多数用于导入此类 CAD 数据的库都是专有的。一些库直接来自几何建模器(例如带有 Interop、Parasolid 或 Granite 的 ACIS),其他库来自专门从事 CAD 数据翻译市场的小型软件公司。

              在开源方面,也许可以看看 OpenCascade 内核。这个内核(大部分)是开源的,它有一些 STEP 导入和网格划分功能。

              【讨论】:

                猜你喜欢
                • 2013-05-04
                • 1970-01-01
                • 2011-02-26
                • 2011-03-11
                • 1970-01-01
                • 1970-01-01
                • 2017-12-26
                • 2013-04-02
                • 2017-02-11
                相关资源
                最近更新 更多