我们正在大学里开发一些应力应变分析软件。现在是时候从矩形、盒子和球体移到一些真实的模型了。但我还是不知道从哪里开始。
在我们的软件中,我们将构建网格,然后进行计算,但是如何从CAD/CAE软件中导入实体呢?
1) 如何组织CAD/CAE模型?如何表示实体?DWG,DXF,IGES,STEP格式的可能性是什么?例如,有一个完整的DXF引用,但是在不了解基本概念的情况下,我很难理解它。
2) 是否存在从C++文件格式导入实体实体的C++库?是否很难建立一个完整的模型来导入完整的文件?
发布于 2009-06-21 17:10:33
要输入实体,首先需要从CAD系统导出它们。大多数CAD系统数据文件都是适当的(除非在我离开这个行业的几年里,它们都已经转移到XML上了!)DWG是Autodesk的文件格式,他们不鼓励人们直接阅读。如果内存正常的话,他们确实提供了一个文件读写库,但我不知道现在是什么状态。DXF、IGES和STEP都是数据传输格式。
DXF为Autodesk所有,但已出版,以便其他公司可以使用它来读取和编写模型。DXF引用很复杂,但只是一个引用--您需要知道概念,然后才能理解它所代表的内容。
实体模型可以用多种方式来表示,要么是由结构实体几何学(CSG) (其中形状是由彼此的实体基元加减法组成),要么是边存储的边界表示( be ),或者是三角形的面(如3D Studio MAX、WPF和许多其他的)等等。特定的格式将取决于建模者的设计目的。
有用于读取各种文件格式的库和工具。我不知道哪些是仍然活跃的,因为这是5+年,因为我在3D图形方面投入了大量的精力。你最好自己去找现在的作物。我建议从维基百科开始--它将有一些关于3D图形的文章,并且应该有大量的链接到更多的阅读和工具/库。
一旦你有了一个阅读器,你就需要将数据转换成你的内部格式--而不是一项琐碎的任务。您最好采用现有的格式。我的工作之一是从不同的来源读取模型到我公司的数据结构。我的任务得到了很大的帮助,因为我们所支持的建模人员都带有API,它让我们直接读取模型网格,从那里将他们的网格转换成我们的网格相对简单(但从来都不容易)。总是有边缘的情况和细微的格式,造成头痛。如果我们必须自己读取文件格式,例如DXF或VRML,这些文件就会成倍增加。
发布于 2010-03-20 17:55:27
在目前的三维CAD软件(CATIA,Pro/Engineer/Solidworks/NX)中最常见的实体模型是通过边界表示(B)表示的。
然而,大多数导入此类CAD数据的库都是专有的。一些库直接来自几何建模师(如带有Interop、Parasolid或Granite的ACIS ),还有一些来自于专门从事CAD数据转换市场的小型软件公司。
在开放源码方面,也许可以看一下OpenCascade内核。这个内核已经被开源(大部分),并且它有一些步骤导入和网格化功能。
发布于 2009-06-21 18:58:05
您最好的选择是使用现有的开源计算机辅助设计系统(如BRL-CAD ),该系统包括对众多进出口商的支持。
您的直觉是,学习给定的格式将很难理解和实现对它的支持,这是非常正确的,特别是在处理用于分析目的的实体几何格式时。用拓扑保证来保持实体性对于产生有效的分析是很重要的,但是很少用简单的网格格式来解决。
特别是对于两个流行的国际标准(IGES和STEP)来说,它们过于复杂,难以支持,因为它们可以包含以多种方式编码的相同的实体几何。考虑一个简单的球形例子。该球面可以编码为一个简单的点和半径(没有显式表面信息,这是CSG使用中常见的隐式形式),它可以是多边形网格(有损BREP面网格格式),也可以是样条曲面(BREP NURBS),也可以是体积(考虑CT扫描数据),等等。关注其中的任何一个都涉及到各种权衡(简单、可靠、分析保证、灵活性等)。
正如BRL所提到的,它是一个大型的开源实体建模系统,它在许多方面都有很多功能,大约有十几个功能库和400多个简洁的工具(大约有20多个几何转换器)。即使它不能完全满足您的需要,您也可以使用源代码,并可以提供改进,并与现有社区协作以帮助实现所需的功能。
https://stackoverflow.com/questions/1024323
复制相似问题