合并多个 STL 文件

3D打印 3d模型 软件 stl
2021-05-05 23:13:40

我有一个 STL 文件的集合,每个文件都包含我想要打印的对象的一个​​单独的移动部分。(想象一下一组齿轮或类似物,它们打印为具有多个移动部件的单个物体。)

我的计划是将它们全部导入 Cura,然后点击打印,然后将我完全组装的对象从构建板上取下。但是,Cura 会忽略 STL 文件中的坐标系,并自动将构建板上的组件彼此分开。这通常很有帮助,但在这种情况下这不是我想要的。

所以我正在寻找一种快速简单的方法来将我的多个 STL 文件组合成一个 STL 文件。我知道对象不重叠,所以我不需要执行 CSG 联合操作 - 只需连接对象就足够了。

我尝试了 OpenSCAD,它有效,但需要很长时间,因为网格相当复杂,而且它执行完整的布尔运算。是否有另一种快速简单的方法来执行此任务?

我更喜欢命令行实用程序,但如果在某些免费图形软件中有一种快速而简单的方法可以做到这一点,我也会很高兴。(但是,我不想花时间手动定位对象——它们已经在 STL 文件中的正确位置,所以我只想导入它们然后去。)

编辑我已经接受了 Trish 的回答(使用 Blender),但如果有人知道一个命令行选项,我仍然会很感激。

4个回答

您想要的操作几乎只是将文件组合在一起。但是,您需要从除第一个之外的所有文件中删除 80 字节的标题,然后立即将每个文件中的 32 位三角形计数相加。输出应该是:

  1. 文件 1 前 80 个字节的副本
  2. 从每个文件的偏移量 80 开始的 int32 总和。
  3. 每个文件的字节 84-end。

https://en.m.wikipedia.org/wiki/STL_(file_format)

您尝试执行的操作称为“原位打印”。但是,这不是通过一个接一个地导入多个 STL 来完成的,因为 cura 会在导入时删除原点并重新定位每个导入的对象。但是,一个 STL 文件可以包含多个主体。

要生成画中画模型,您需要将整个项目导出为一个包含所有部分的 STL 文件,然后 Cura 不仅不会撕开模型,而且无法这样做。

解决方法

如果您无法从设计软件中一次性导出整个项目,您可以使用一种变通方法,将其导入到可以作为一个项目导出的软件中。其中包括搅拌机,因此将所有部件导入搅拌机,然后将整个项目作为一个 STL 导出是一个简单的修复。其他选项是 TinkerCAD 或 Fusion360。

Blender 的分步指南很简单,此工作流程的总体思路与其他选项相同:

  1. 打开搅拌机
  2. 新项目
  3. 通过entf+删除多维数据集enter
  4. 通过以下任一方式将文件放入工作区:
    • 拖放
      1. File > Import > Stl (.stl)
      2. 选择文件 + enter
  5. 可能重新定位对象,直到它处于正确的位置
  6. 重复 4. 到 6. 直到所有零件都导入
  7. File > Export > Stl (.stl) + enter

与@R.. 的回答类似,如果您有 ASCII .stls,您可以轻松地连接每个文件的内容。

  1. 确保 .stls 为 ASCII 格式:在任何文本编辑器(如 Notepad++)中打开它们。如果它是可读的,你没问题,继续(3)
  2. 如果不可读,请使用转换器工具将它们转换为 ASCII .stl 格式(像这样
  3. 打开每个 ASCII .stl 文件
  4. 将文件的内容复制到一起,文件遇到的“solid”和“endsolid”语句除外

将它们导入 Tinkercad,然后从那里输出您的组合文件。您可以进入 Tinkercad,在右上角您会看到“导入”,单击它以导入您的文件(您可以根据需要重复该过程),它将把文件放在工作区 .. 在屏幕上。当您的工作区全部设置为您想要的选择方式时,单击“导出”,它将所有工作区导出到一个文件中供您使用。