立体光刻 STL (.stl)

3D 标准

标准三角形语言(STL,也称立体光刻)是 3D 打印与快速成型行业中通用且不可或缺的格式,它使用原始的三角形面片来描述实体 3D 对象的表面几何形状。

将 OBJ 转换为 STL

免费的浏览器端 OBJ 转 STL 转换器。在您的设备上即时转换文件。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 STL 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 STL 文件:

十六进制签名 (偏移量 0):

73 6F 6C 69 64

ASCII 表示形式: solid

标准化: 3D Systems 立体光刻规范

技术规格

容器架构ASCII 格式(以“solid”开头),或二进制格式(80 字节文件头 + 32 位三角形计数 + 50 字节面片记录)
压缩方式未压缩的原始三角形面片
字节序二进制 STL 使用小端序(Intel x86)
色彩空间无(单色几何体;存在专有的 VisCAM/Magics 颜色扩展)
通道与结构三角形面片:表面法线向量(I、J、K)和三个顶点坐标(X、Y、Z)
最大尺寸三维物理坐标范围不限(通常以毫米为单位)
透明度不支持(表示实体)
流式传输与渐进式加载可按面片顺序流式处理,连续逐层切片

技术对比矩阵:STL 对比同类产品

技术属性STL (当前)OBJ3MFSTEP
3D 打印切片软件采用率100% 通用标准通用支持现代继任标准CAD 工程标准
颜色与纹理支持无(纯表面几何体)完整 UV 纹理贴图全彩、材质及多挤出机支持参数化实体颜色
面片结构独立三角形面片连接式共享顶点网格共享顶点索引网格精确参数化曲线(NURBS)
单位定义无单位(默认假设为毫米)无单位(默认假设为米/毫米)显式单位(毫米、厘米、英寸)显式工程单位

常见损坏模式与十六进制恢复指南

3D 切片软件显示"模型不是流形 / 包含非流形边"。

根本原因: 三角形网格中存在孔洞、自相交三角形或表面法线反转。

恢复方法: 使用 File2File.app 3D 网格修复工具或 Netfabb 修复网格,使其成为水密网格。

安全分析与解析器攻击向量

二进制 STL 解析器会读取 32 位三角形计数;整数溢出可能导致堆分配过小并发生越界写入。

已知攻击向量

  • 在计算 triangle_count * 50 字节的内存分配时发生整数溢出。
  • 实际文件大小小于声明的三角形数量所需数据时发生缓冲区越界读取。
  • 通过多吉字节的三角形分配引发拒绝服务攻击。

防御性最佳实践: 读取前,验证声明的三角形数量与 (file_size - 84) / 50 的计算结果完全一致。

历史渊源与里程碑

2009MakerBot 和 RepRap 开源 3D 打印革命将 STL 确立为数百万家庭和学校的标准。
19883D Systems 标准化了紧凑的 50 字节二进制 STL 面片格式。
1987立体光刻(SLA)发明者 Chuck Hull 为世界上第一台商用 3D 打印机创建了 STL。

核心优势与特点

  • 无可争议的全球 3D 打印标准:获得 100% 的切片软件(PrusaSlicer、Cura、Bambu Studio)和 CAM 软件支持。
  • 二进制格式简单紧凑:正好包含 84 字节的文件头加上每个三角形面片 50 字节。
  • 可直接表示增材制造生成刀路所需的水密表面边界。

技术局限与劣势

  • 完全不支持颜色、材质或纹理:无法原生表示全彩 3D 打印。
  • 曲面必须用数千个平面三角形进行近似,从而导致极高的多边形数量。
  • 未指定物理测量单位(切片软件必须假设为毫米或英寸)。

趣味技术冷知识

  • Chuck Hull 于 1986 年为 3D 打印申请了专利,并于 1987 年创建了 STL 格式,以便将 3D 模型输入到他的 SLA-1 打印机中。
  • STL 文件不包含任何单位元数据:根据您的切片软件设置,尺寸为"10"的立方体可能表示 10 毫米、10 米或 10 英寸。
  • 二进制 STL 文件拥有一个 80 字节的文件头,其中可以包含任意文本,但绝对不能以单词"solid"开头,否则某些解码器会将其误认为是 ASCII 文件。

常见技术问题

哪个程序可以打开 STL 文件?

您可以在 3D 打印切片软件(如 Cura、PrusaSlicer 和 Bambu Studio)、CAD 程序(如 Fusion 360 和 Blender)中打开 STL 文件,或者直接在 File2File.app 中在线查看它们。

ASCII STL 和二进制 STL 有什么区别?

二进制 STL 的文件体积约为 ASCII STL 的五分之一到六分之一,而且加载速度明显更快,因此更适合用于 3D 打印。

如何将 STL 文件转换为 OBJ 或 GLB?

您可以使用 File2File.app 直接在浏览器中将 STL 文件转换为带纹理的 OBJ 模型或网页就绪的 GLB 文件。