您是否曾经3D打印过具有平坦斑点或多面表面的零件,而这些零件应该是平滑曲线?或者,也许您刚刚看过一张3D打印的图片,看起来像是属于90年代的一些低分辨率CGI?您并不孤单,这不是您的3D打印机的错 - 罪魁祸首可能是用于创建零件的STL文件中缺乏分辨率!
我们从新用户那里收到了很多关于打印零件上这些类型的刻面表面特征的问题,因此为了帮助每个人从他们的3D打印机获得最佳打印效果,我们整理了本指南,以创建高质量的STL,这些STL将制作出出色的3D打印零件。
在指南中,我们将介绍STL文件和3D打印的以下方面:
1. 什么是 STL 文件?2. 为什么 STL 文件很重要3. 识别次优 STL4. 定义 STL 参数5. 弦公差/弦偏差6. 角度公差/角度偏差/正常偏差7. 网格质量与文件大小:我们的建议8. 主要CAD软件的STL导出设置。
博士: 以正确的 STL 分辨率导出 CAD 几何图形将产生具有最高尺寸精度和表面光洁度的 3D 打印零件,而不会减慢切片过程。
我们的建议是首先使用以下参数导出 STL:
- 二进制 STL 格式(文件大小小于 ASCII)- 弦公差/偏差为 0.1 mm [0.004 in]- 角度公差/偏差为 1 度- [可选] 最小三角形边长设置为 0.1 mm [0.004 in]
如果生成的文件大小大于 20 MB,我们强烈建议通过增加弦和角度公差的值来减小文件大小,直到 STL 文件大小减小到小于 20 MB,因为大文件大小会显著减慢准备 STL 进行 3D 打印所涉及的计算。如果您的模型在这些设置下仍然包含过多的平坦点,您可以尝试减小弦和角度公差的值,强烈建议继续将文件大小保持在 20 MB 以下。
这位作者还犯了制作分辨率过于粗糙的 STL 文件的罪过——在 13 年底我们在 Metal X 系统上推出 H2018 工具钢之前,我匆忙出口了这个喷嘴的 STL,直到烧结后才意识到(为时已晚)我用平面制作了一个低分辨率文件, 您可以在零件的下三分之二处看到多面曲面。这个较低的区域被建模为完全光滑的曲面,并且打印机维护良好 - 与设计模型的偏差完全是由于不理想的STL导出设置。什么是 STL 文件?
作为3年代后期为立体光刻1980D打印创建的原始文件类型(STL来自STereoLithography),STL文件格式实际上是3D打印行业标准,用于将3D模型文件导入切片程序,如Markforged的Eiger软件,为实际3D打印模型做准备。如果您曾经使用过3D打印机,或者设计过要进行3D打印的东西,那么几乎可以肯定您以前遇到过STL文件 - 但是您知道并非所有STL都是平等的吗?事实上,完全有可能设计一个满足你功能要求的3D模型,然后从该模型生成一个STL文件,以生产不合规格的零件。
STL文件只是描述一组三角形,这些三角形(通常)构成一个近似3D模型连续表面的网格。更准确地说,STL文件包含一个三维坐标列表,与一个法向量一起分组为三个一组 - 这三组坐标中的每一组构成了三角形的顶点(角点),并且向量垂直于由三角形的三个点描述的平面。
STL 文件中的每个三角形都由一组三个顶点和一个法线向量表示,如下图所示。STL 文件可以包含数十万到数百万个三角形或更多,并且文件大小将与三角形计数成比例增长。
在 ASCII(基于文本的)STL 文件中,每个三角形都以以下格式表示,其中法向量 n 由 (n i
nj n k) 表示,每个顶点 v 具有三维坐标 (v x vy v z):
facet normal ni nj nk
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet
所有三角形(通常有数百万个三角形)一起形成一个可以描述三维几何形状的网格,然后可以导入切片软件,如Markforged的Eiger软件平台,准备3D打印。
加载到Markforged的Eiger软件中的STL文件,显示为三维实体。请注意,此 STL 是有意以低三角形分辨率生成的,这就是为什么大平面在模型上清晰可见的原因。
需要注意的是,用于 3D 打印的 STL 应包含一个或多个格式良好的网格,这些网格完全包围了您要创建的几何体,每个三角形边正好连接到两个面(这有时称为流形 STL,或没有间隙的网格)。
但是,STL 文件只是坐标和向量的列表,STL 文件规范中对这种流形条件没有要求。STL文件,尤其是直接从3D扫描仪创建的文件,通常可能包含非流形几何形状或不完整的表面,这些几何形状或表面可能难以或不可能正确3D打印,并可能导致切片过程中的错误。
一般来说,最好从具有已知良好 STL 导出功能的主流 CAD 软件中导出您的 STL — 几乎所有现代商业工程 CAD 软件和更知名的开源或业余爱好者软件包都属于这一类。快速在线搜索您的CAD软件和“STL导出选项”通常会为您指明正确的方向。
STL 3D打印:为什么重要
最后一部分的几何形状比您可能关心的要多一些 - 然而,对于本次讨论来说,重要的是所有这些三角形创建的网格。由于三角形是平面的 2D 形状,因此 STL 文件中的三角形集合只能完美地复制仅由平面组成的 3D 模型,例如立方体、多边形或任何没有曲面的几何图形,假设网格中的三角形可以小于模型中的最小特征。稍后,当我们讨论 CAD 中的 STL 导出设置时,我们将讨论这一假设。
然而,许多工程零件至少具有一些曲面,无论是孔、圆角、半径、旋转还是更复杂的曲线和有机几何形状。这些弯曲(非平面)要素和曲面将由三角形网格复制,因此它们只能根据 STL 导出设置由具有不同精度级别的 STL 文件近似。
以不同的 STL 分辨率保存的球体两半的线条图。球体的左侧以较低的分辨率保存,而右侧以较高的分辨率保存。仔细观察,注意右侧球体的轮廓如何比左侧更接近平滑曲线 - 这是生产具有光滑,非刻面表面的3D打印的关键。我需要更新我的 STL 文件吗?
如果您对3D打印的质量以及它们各自的STL文件在Eiger中处理的速度感到满意,那么恭喜您 - 无需更改运行良好的内容!但是,如果您遇到问题,本文可以解决两个主要挑战,它们是使用导出分辨率设置太低或太高的 STL 文件生成的。低分辨率STL的定义特征是在应该具有平滑曲面的区域具有平坦斑点的3D打印。使用分辨率过高的STL文件,您将生产出美观的3D打印零件,但是大文件大小将导致Markforged的Eiger软件中的切片时间过长,并且可能导致用户界面在最极端的情况下调整零件视图时滞后。
STL格式如此普遍的根本原因之一是它的简单性,这反过来又使广泛的工程和设计软件可以轻松地支持,编辑和生成其他3D模型格式的STL文件,然后可以在几乎所有3D打印机上打印。不幸的是,STL的主要缺点之一也是它们的简单性 - 它们不包含有关它们设计的单位系统(毫米,英寸,英尺等)的任何信息,并且实际上不可能确定STL文件的分辨率本身以及它如何准确地表示创建它的原始模型。
我们的用户遇到的最常见的问题是 STL 文件太粗糙,并且生成的分辨率不够。最突出的指标是零件的平坦斑点和多面区域,这些零件设计有平滑的曲线,如下图所示。
喷嘴的CAD几何形状(左)显示了平滑弯曲的喷嘴表面,以及从CAD生成的STL文件生成的3D打印零件(右),分辨率非常低。请注意打印喷嘴表面上平坦的分段刻面,这些刻面是低 STL 分辨率的伪影。
您还可以使用Markforged的Eiger软件平台中的内置工具轻松识别这种低分辨率条件。当您将鼠标移到软件中的零件模型上时,Eiger 会以蓝色突出显示光标下方的面,以及与其平行的所有面(并且在平行的小角度公差内)。如果在用鼠标突出显示人脸时可以看到模型中清晰的小平面和平坦的斑点,则可能需要提高 STL 文件的分辨率。如果突出显示的面看起来“模糊”,颜色渐变相对平滑,则STL分辨率可能足以用于3D打印目的。
当鼠标移到低分辨率 STL 文件(左)上时,它们将突出显示弯曲零件区域上不同的平面,而对于更高分辨率的 STL 文件,突出显示的表面将显示更模糊的颜色渐变。
另一方面,分辨率过高的 STL 文件可能太大,Eiger 无法有效处理,并且会减慢切片操作的速度。STL的精细程度没有真正的限制(除了计算机上的可用存储空间),并且完全有可能创建一个三角形网格,其三角形边长约为纳米或更小(作为参考,人类头发的平均长度约为75,000纳米)。这比您的3D打印机可以使用的分辨率要高得多,或者是必要的,因此分辨率过高的STL只会减慢您的工作流程并浪费您的时间。
尽管存在这些限制,但如果在创建 STL 文件时遵循一些最佳实践,则很容易制作出出色的 3D 打印零件。生成和导出 STL 时,您在 CAD 软件中选择的导出设置会极大地影响 3D 打印零件的质量、尺寸精度和表面光洁度,因此了解这些参数非常重要。定义 STL 参数
从 CAD 软件导出 STL 时,有几个参数控制三角形网格的密度,而三角形网格又定义了零件的几何形状。考虑导出过程与这些参数之间交互的一种方法是,CAD 软件尝试针对较小的 STL 文件进行优化,因此将尝试创建尽可能粗略、分辨率最低的网格,但您指定的一个或多个导出参数可能要求软件对不同的要素和几何图形使用更高分辨率的网格。因此,一个有用的心智模型是将这些导出参数视为“强制”导出过程以生成更精细、更高分辨率的网格。
从CAD中完全相同的3D模型文件创建两个完全不同的零件,只需导出两个具有非常不同的导出设置的STL。在左侧,您有一个STL文件的3D打印,该文件是以更高的分辨率创建的,而在右侧是使用非常低分辨率的STL参数导出的版本的3D打印。
通常,大多数现代CAD软件为用户提供了控制至少两个导出参数的能力:一个具有称为弦公差(或弦偏差)的线性尺寸,另一个具有称为角度公差(或角度偏差)的角度尺寸。生成的 STL 必须满足所选导出设置指定的所有条件。根据 3D 模型特定特征的几何形状,其中一个设置通常比另一个设置更具限制性(即需要更高分辨率的网格),并且可以被视为该特征的主要或限制参数。限制参数通常会因零件的几何形状而异,以响应不同的特征。我们将首先探讨这些参数以及它们如何影响 STL 生成,然后分解如何在各种主要的 CAD 软件包中配置这些设置。
弦公差/弦偏差
弦公差(或弦偏差)是控制STL与设计的3D模型相比的全局尺寸精度的设置。弦公差通常指定为允许的最大法线(垂直)线性偏差,该偏差与设计的 3D 模型表面和生成的 STL 的最近三角形面相差,如下图所示。
您可以将弦公差视为控制生成的 STL 和设计模型之间在零件的整个几何形状上允许的最大误差。因此,由于 CAD 软件中的 STL 导出功能正在围绕 3D 模型几何体构建三角形网格,因此它无法创建与 3D 模型的最大距离超过您指定的弦公差的三角形。假设弦容差是 STL 分辨率的限制因素,较小的弦容差值将导致更高的分辨率 STL,具有更多的三角形和更大的文件大小。
角度公差/角度偏差/法向偏差
角度公差设置(有时称为角度偏差或法向偏差)控制网格中任意两个相邻三角形的法向量之间允许的最大角度,您可以将其视为一个参数,该参数以更高的分辨率“细化”网格,超出弦公差所允许的范围。角度公差发挥作用的一个很好的例子通常是小曲面,例如半径大小与弦公差相似的圆角。如果没有角度公差设置,这些小圆角可能具有非常明显的平坦斑点,或者在圆角半径等于弦公差的极端情况下变成倒角,如下图所示。
如果选择的角度公差参数太大或根本不存在,则3D模型中大小与弦公差相似的小弯曲特征可能会被完全破坏。在一个极端的例子(左图)中,您可以看到圆角半径等于弦公差,弦公差是主要参数(假设角度偏差设置为 >45°,因此没有限制),并且生成的 STL 网格只是将圆角变成一个平面。如果将最大角度偏差设置为较小的值(右图),则可以创建更精确的 STL,这使其成为控制圆角周围网格生成的主要参数。在这里,STL生成过程必须在圆角区域使用具有更多三角形的较小网格,以满足角度偏差限制,从而创建更平滑的STL表面。
如果角度偏差值(以度为单位)设置为足够小以成为主要参数,它将迫使 STL 生成过程在具有更锐利曲率的零件区域中添加更多三角形,这些区域通常是半径较小的特征。这反过来将“改善”最终3D打印部件中这些特征的平滑度,超出单独的弦公差所能提供的平滑度。
请注意,虽然角度偏差通常以度为单位测量(值越低,模型分辨率越高),但某些CAD软件将角度偏差指定为无量纲的“角度控制”参数,其值从0到1不等,较大的值指定曲面周围的STL分辨率越高。请参阅以下有关主要 CAD 软件包的 STL 设置的部分,或访问特定 CAD 软件发行商的技术支持或知识库站点以获取更多详细信息。
其他导出设置:某些 CAD 程序可能会为您提供超出弦公差和角度公差两个主要控件的额外设置,其中可能包括最小或最大三角形刻面长度等选项。通常,这些通常用于解决边缘情况下的 STL 导出问题,我们建议将这些值保留为默认值,除非您有特定原因想要调整它们。
网格质量与文件大小:我们的建议
由于更高分辨率的 STL 网格会产生更平滑、更准确的模型,因此您可能只想将 CAD 程序中的分辨率设置提高到最大可能的分辨率,然后结束一天的工作。但是,提高 STL 导出的分辨率也会导致 STL 文件大小的增加,这通常会导致更长的软件处理时间,无论是生成 STL 文件、将其上传到 Eiger,还是实际切片 STL 并准备 3D 打印。超过某个点,STL文件的分辨率可能远远超过3D打印机的机器精度,这意味着您最终可能会为STL分辨率支付时间成本,而该分辨率实际上并未反映在您的打印零件中。
我们推荐的最佳实践是选择您的 STL 导出设置,以便在满足功能要求的高质量分辨率和可以在 Eiger 中快速处理的文件大小之间取得平衡。经验表明,以下设置是一个有用的起点:
-二元的STL 格式(文件大小小于 ASCII)- 弦公差/偏差为 0.1 mm [0.004 in]- 角度公差/偏差为 1 度- 最小边长为 0.1 毫米 [0.004 英寸]
如果生成的文件大小明显大于 20 MB,我们强烈建议通过增加弦公差和/或角度公差的值来减小文件大小,直到 STL 文件大小减小到小于 20 MB,因为大文件大小会减慢为 3D 打印准备 STL 所涉及的处理操作。但是,您应该随意尝试不同的文件大小,因为您对不同级别的 STL 分辨率和软件处理时间的容忍度是个人偏好。
通过各种CAD软件进行STL导出设置
我们试图获取主要 CAD 软件包的代表性样本,但在网上找到屏幕截图并不总是那么容易——如果您是我们错过的 CAD 供应商的代表,并且您想进入此列表,或者您觉得我们错误地表示了这些参数应该如何配置,请通过我们的联系页面向我们发送说明,我们会纠正它!
Creo (PTC)
对于 Creo,请务必注意,下面看到的“角度控制”参数不会调整以度为单位的最大角度偏差,而是对超出半径的角度偏差细化进行无单位测量,该半径将由“弦高度”(弦公差)参数创建。“角度控制”参数值的范围为 0.0 到 1.0。您可以在此处阅读有关“角度控制”参数的更多信息。我们建议使用以下设置作为起点:
- STL 格式:二进制- 弦高:0.1 毫米 [0.004 英寸](注意:这是弦公差)- 角度控制:0.25- 将“最大边缘长度”和“纵横比”保留为默认值Fusion 360 (Autodesk)
融合 360。我们建议使用以下设置作为起点:- STL 格式:二进制- 表面偏差:0.1 毫米 [0.004 英寸](注意:这是弦公差)- 正常偏差:1度(注意:这是角度偏差)- 将“最大边缘长度”和“纵横比”保留为默认值NX (Siemens)
We recommend the following settings as a starting point:- Output File Type: Binary- Chordal Tolerance: 0.1 mm [0.004 in] (Note: units here are set by your document units)- Angular Tolerance: 1 degreeOnshape (PTC)
We recommend the following settings as a starting point:- STL 格式:二进制- Angular deviation: 1 degree- Chordal tolerance: 0.1 mm [0.004 in]- Minimum facet width: 0.1 mm [0.004 in]SOLIDWORKS (Dassault Systèmes)
We recommend the following settings as a starting point:- STL 格式:二进制- Resolution: Custom- Deviation: 0.1 mm [0.004 in] (Note: this parameter is chordal tolerance/chordal deviation)- Angle: 1 degree- Leave ‘Define Maximum Facet Size’ unchecked