STL 文件实际包含什么
STL 文件是一组三角形列表。每个三角形由三个顶点坐标加一个法向量表示,这就是全部数据模型。没有特征树、没有草图历史、没有孔标注、没有表面处理说明、没有材料。Ø12 mm 内孔和旁边的平面以相同方式存储:一片小平面。
存在两种编码。二进制 STL 将每个小平面打包为 50 字节,是超过几千个三角形时的默认选择。ASCII STL 将相同数据写成可读文本,体积可能大五到十倍。几何完全相同,因此选择只影响文件大小和传输时间。
由于网格不携带单位,文件中的数字只是数字。顶点 25.4 表示 25.4 mm 还是 25.4 英寸,取决于没人写下的约定。CAM 软件会猜测,猜错会导致零件大 25.4 倍或小 25.4 倍。
小平面数量随表面积和曲率增长。一个带钻孔的 100 × 100 × 50 mm 支架可能达到 50,000 个小平面。带自由曲面的涡轮叶片可超过 200 万。细分密度在导出时设定,它是决定网格是否可用的唯一设置。
- 1二进制优于 ASCII几何相同,文件更小,传输错误更少。
- 2不存储单位在生成第一条刀路前确认是 mm 还是英寸。
- 3无特征数据孔和型腔必须在 CAM 中重新识别。
三角网格如何变成 CNC 刀路
CAM 软件不直接加工三角形,而是切片。刀路引擎用一系列偏置曲面与网格求交,每层一个,并将刀具中心点拟合到这些交线。3 轴粗加工的行距可能是 2 mm;曲面上的 5 轴精加工可降到 0.2 mm。
弦高偏差是平坦小平面与其所替代的真实曲线之间的间隙。以 0.01 mm 导出,每条加工曲线最多可比名义几何内缩 0.01 mm。以 0.05 mm 导出,同一曲线偏差扩大五倍。文件大小大致随缩减量的平方增长,因此 0.005 mm 细分可比 0.01 mm 重四倍。
网格还驱动过切检查。如果两个小平面重叠或法向量方向错误,碰撞模型就是错的,仿真将无法发现真实干涉。水密几何比小平面数量更重要。干净的 80,000 个小平面网格比有漏洞的 400,000 个切削效果更好。
小平面尺寸决定可达精度的下限,但不是唯一限制。机床定位、刀具偏摆和热漂移都会增加误差。将细分保持在零件公差约十分之一,可为其他误差源留出余量。对于 ±0.05 mm 的零件,0.005 mm 弦高偏差是合理目标。
- 1十分之一规则将弦高偏差设为零件公差的约 10%。
- 2先保证水密在增加小平面之前修复缝隙和翻转法向量。
用于 CNC 加工的 3D STL 文件在何处不再够用
STL 是表面格式。它无法携带位置公差、基准参考框或表面处理标注。如果图纸要求两个内孔同轴度在 0.02 mm 以内,该要求存在于图纸或 STEP 文件中,绝不在网格里。加工人员必须从别处读取。
锐边是另一个边界。细分后的圆角是一串平坦小平面,因此 CAM 系统看到的是分面表面,而设计者想要的是光滑半径。大半径上这不可见。在 0.5 mm 的棱边倒角上,它会改变刀具接近拐角的方式,并可能在 Ra 0.8 μm 表面上留下可见小平面。
薄壁和小内半径是网格分辨率影响最大的地方。用 0.5 mm 小平面建模的 1 mm 壁厚,其厚度方向只有两个三角形。刀路引擎可能将其读成锥度或完全漏掉该壁。对于小于 2 mm 的特征,应细分更细或提供 STEP。
实际边界是:当几何为有机形状、公差比 ±0.05 mm 更松、且零件为单一实体时使用 STL。当零件带有 GD&T、螺纹特征、紧配合内孔或任何需要与其他部件装配的内容时,改用 STEP。
- 1使用 STL 的场景自由曲面壳体、扫描数据、单一有机实体。
- 2使用 STEP 的场景GD&T、螺纹、紧配合内孔、配合装配。
细分、单位和方向的选择
导出公差和导出单位在 SolidWorks、Fusion 360 及大多数其他 CAD 工具中是两个独立设置。两者都要设置。以毫米、0.02 mm 弦高偏差导出的模型适合 ±0.1 mm 的铸件模样,但对 ±0.01 mm 的医疗零件毫无用处。
装夹方向决定工件需要几次装夹。一面有深腔、对面是平面基准的零件,应把平面朝下。这一决定可省去一次重新装夹,并让两个特征处于同一坐标系。在配有 Ø400 mm 转台的五轴机床上,装夹方向还决定零件能否放入加工范围。
支撑策略不只用于打印。对机加工零件,对应的问题是毛坯如何放置。网格没有可夹持的平面,就得做专用软爪。导出时加 3 mm 工艺余量垫,通常比做工装夹具更快。
导出后检查包围盒。本应 200 mm 长的零件显示为 7.87,说明单位错了。显示为 5,080 mm,说明有人按英寸导出,而 CAM 系统按毫米读取。这两个错误都容易发现,漏掉代价很高。
- 1两个字段都要设弦高偏差和单位,每次导出都设。
- 2检查包围盒一个数字就能发现两种单位错误。
用五轴 CAM 处理 STL 网格
先修网格。多数 CAM 软件带修复工具,可补缝隙、缝合开放边、翻转反向法线。先运行修复,再确认模型是单一封闭壳体。有 12 条开放边的模型,在这些边附近会生成不可预期的刀路。
网格上的特征识别不如实体可靠。孔很少能识别为干净的圆柱。凡是要保证尺寸的内孔,都要手动绘制或拟合圆柱。在网格上,仅三角化误差就可能让 Ø8 mm 孔出现 0.03 mm 的椭圆度误差。
网格上的刀路策略偏向等步距和残料加工。用 12 mm 立铣刀、2 mm 步距粗加工,再用 6 mm 球头刀、0.3 mm 步距精加工,可达 Ra 1.6 μm 表面。要 Ra 0.8 μm,减小步距或换 3 mm 球头刀。步距相对表面要求过粗时,网格面片会表现为颤纹。
输入网格时验证更重要。仿真整个循环,按网格而非名义实体检查毛坯去除。若仿真在曲面上显示过切,常见原因是面片法线朝内。修好网格再重新后处理。
- 1CAM 前先修复封闭壳体,无开放边,法线朝外。
- 2步距匹配精加工Ra 1.6 μm 用 0.3 mm,Ra 0.8 μm 更细。
CNC 加工用 STL、STEP 还是 IGES
按公差和特征类型选格式,不要按习惯选。
| 格式 | 可携带 GD&T | 适用场景 | 注意事项 |
|---|---|---|---|
| STL | 否 | 有机曲面、扫描数据、单一实体 | 无单位、无特征、曲线粗糙 |
| STEP | 是 | 带内孔、螺纹、基准的零件 | 转换器版本不匹配 |
| IGES | 部分支持 | 旧曲面和较老的 CAM 平台 | 修剪曲面之间的间隙 |
| Parasolid | 是 | CAD 平台间交换的复杂实体 | 能直接读取的 CAM 工具较少 |
| STL,细网格 | 否 | 2 mm 以下薄壁、小倒角 | 文件体积增长快,CAM 加载慢 |
| STL,粗网格 | 否 | 粗加工毛坯、纹理加工、目视检查 | 精加工表面可见面片 |
常见问题
STL 文件能承载 ±0.005 mm 公差吗?
文件本身不能标注公差,但可携带足够几何信息。按 0.001 mm 弦高偏差导出,网格误差远低于 ±0.005 mm。
实际能否达到该公差由机床和刀具决定。我们在五轴加工上可保证 ±0.005 mm,网格分辨率只需不成为障碍。
为什么我的 STL 导入后大了 25.4 倍?
文件按英寸导出,CAM 系统把数字读成了毫米。STL 不存储单位标签,双方必须约定一致。
导入时检查包围盒。200 mm 零件显示为 5,080 mm 就是典型症状。按单位重新导出,或在 CAM 中按 1/25.4 缩放。
CNC 用的 STL 文件应有多少个三角形?
没有固定数量。面片数应随表面积和曲率变化,而不是追求某个目标值。
更好的规则是把弦高偏差设为零件公差的约十分之一。这样网格足够密,能满足刀路需要,又不会让 CAM 慢到无法操作。
网格该自己修还是交给加工厂修?
补小缝隙、翻转法线这类简单修复,上传前做掉值得。可缩短 DFM 评审时间。
若网格有数百条开放边或自交面片,源模型需要修复。从 CAD 重新导出比手工补三角形更快。
STL 能用于螺纹和螺纹孔吗?
螺纹几何经三角化后失真严重。建模的螺纹会变成一叠面片,丝锥或螺纹铣刀都无法干净地跟随。
螺纹孔按光孔圆柱发送,并在图纸上注明,或提供 STEP。我们按标注加工螺纹,不按网格。
五轴加工你们更希望用什么文件?
凡带基准、内孔或配合特征的,用 STEP。它保留特征数据,消除猜测。
有机壳体和扫描数据用 STL 即可。若零件两者兼有,两个文件都发,并注明以哪个为准。
