立体光刻 STL (.stl)

3D 标准

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

将 OBJ 转换为 STL

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

检查与元数据

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

选择或将文件拖放到此处

100% 浏览器端私密转换 - 文件绝不会离开您的设备

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

字节级文件头签名 (Magic Bytes)

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

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

73 6F 6C 69 64

ASCII 表示形式: solid

标准化: 3D Systems Stereolithography Specification

技术规格

容器架构ASCII format (starting with 'solid') or Binary format (80-byte header + 32-bit triangle count + 50-byte facet records)
压缩方式Uncompressed raw triangular facets
字节序Little-Endian (Intel x86) for binary STL
色彩空间None (monochrome geometry; proprietary VisCAM/Magics color hacks exist)
通道与结构Triangular facets: surface normal vector (I, J, K) and three vertex coordinates (X, Y, Z)
最大尺寸Unbounded 3D physical coordinates (typically measured in millimeters)
透明度None (solid physical objects)
流式传输与渐进式加载Sequential facet streaming allows continuous slice-by-slice slicing

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

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

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

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

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

恢复方法: 使用 File2File 3D 网格修复工具或 Netfabb 使网格闭合。

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

二进制 STL 解析器评估 32 位三角形计数,其中整数溢出可能导致小型堆分配和越界写入。

已知攻击向量

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

防御性最佳实践:

历史渊源与里程碑

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

核心优势与特点

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

技术局限与劣势

  • 完全不支持颜色、材质或纹理:无法原生表示全彩 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 的 5 到 6 倍,并且加载速度明显更快,这使得二进制 STL 成为 3D 打印的首选。

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

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