【问题标题】:Breaking Down 3D models up to lines and curves将 3D 模型分解为直线和曲线
【发布时间】:2021-05-19 20:01:18
【问题描述】:

我正在做一个分解 3D 模型的项目,但我很迷茫。我希望你能帮助我。

我从 Autodesk BIM 获得 3D 模型,格式可以是原生或通用 CAD 格式(.stp、.igs、.x_t、.stl)。然后,我需要以某种方式“测量”最大尺寸来模拟原材料主体,它总是具有巨大面板的形状。一旦我得到两个物体,我就会得到差异来提取我需要分析的固体;而且,在这些身体中的每一个上,我需要提取面部,然后提取每个面部的线条或曲线。

这听起来很容易在 CAD 软件上完成,但其想法是自动执行此过程。我正在研究 openSCAD,但似乎只适用于几何模型,它不能很好地处理导入的实体。我将在下面的链接中留下一张图片,说明我需要做什么。

那么,知道我该怎么做吗?哪种语言和库可以帮助这个项目?

【问题讨论】:

  • 您应该寻找这些 CAD 格式,以了解它们如何定义面、线等。
  • @ripi2 其中一些将实体定义为基元上的一组函数或操作(如旋转表面被旋转贝塞尔曲线......所以根本不是网格)类似于 BR 和分析表示之间的混合... IGES 就是一个很好的例子 ...我会选择 STL,因为它是一组没有孔的三角形,并且三角形之间没有重叠的完整连接......可以转换为网格表面拓扑......形状和减去 .. 使用任何构造几何引擎
  • 您是如何完成步骤 C:提取基元的?

标签: python 3d geometry blender openscad


【解决方案1】:

我可以看到这种自动化可能需要几个步骤:

  1. OpenSCAD 可以很好地处理差异,因此您的“提取实体”似乎是合理的

1.5 在继续之前,您必须解释如何“过滤掉”圆柱体。您会手动执行此操作吗?如果您不这样做,您将考虑对其进行分析并因此产生很多面​​孔。

  1. 我不认为 openSCAD 为您提供顶点数组。但是,它可以保存为 .STL,这很容易使用您选择的编程语言进行解析,您必须稍微研究一下 .stl 文件结构(这听起来比它更可怕 - 如果您打开一个 stl使用编辑器,您可能会立即意识到发生了什么)。

由于您已经解析了文件,您现在可以使用高中数学计算行数。

这不是一种简单的 GUI 方式来满足您的要求,但如果您有一些技能,您将拥有自动化,并且根据您的项目数量,这可能是值得的。

【讨论】:

  • 感谢您的指导。我会尝试检查 stl 结构。知道什么是最好的吗?我可以通过 python 做到这一点还是必须通过 C++?
  • 我不知道python,但我敢打赌你不能用python轻松做到这一点的可能性很小。实际上,这些文件是标题、顶点列表和面列表。简单的读取命令将涵盖您。
  • 非常感谢!我一定会看看这个。
  • @GeorgeMenoutis 您对过滤掉步骤 1.5 中的原语有什么建议吗?
【解决方案2】:

我一直在从事这个项目,发现“trimesh”库更好地解决了这个问题。试一试,节省一些时间。

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 2013-05-30
    • 2017-08-18
    • 2013-09-04
    • 1970-01-01
    • 2020-05-31
    相关资源
    最近更新 更多