立体光刻 STL (.stl)
3D 标准标准三角形语言(STL,也称立体光刻)是 3D 打印与快速成型行业中通用且不可或缺的格式,它使用原始的三角形面片来描述实体 3D 对象的表面几何形状。
将 OBJ 转换为 STL
免费的浏览器端 OBJ 转 STL 转换器。在您的设备上即时转换文件。
检查与元数据
操作系统和文件分析器通过检查开头的二进制字节序列来识别 STL 文件:
字节级文件头签名 (Magic Bytes)
操作系统和文件分析器通过检查开头的二进制字节序列来识别 STL 文件:
十六进制签名 (偏移量 0):
73 6F 6C 69 64ASCII 表示形式: 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 (当前) | OBJ | 3MF | STEP |
|---|---|---|---|---|
| 3D 打印切片软件采用率 | 100% 通用标准 | 通用支持 | 现代继任标准 | CAD 工程标准 |
| 颜色与纹理支持 | 无(纯表面几何体) | 完整 UV 纹理贴图 | 全彩、材质及多挤出机支持 | 参数化实体颜色 |
| 面片结构 | 独立三角形面片 | 连接式共享顶点网格 | 共享顶点索引网格 | 精确参数化曲线(NURBS) |
| 单位定义 | 无单位(默认假设为毫米) | 无单位(默认假设为米/毫米) | 显式单位(毫米、厘米、英寸) | 显式工程单位 |
常见损坏模式与十六进制恢复指南
3D 切片软件显示"模型不是流形 / 包含非流形边"。
根本原因: 三角形网格中存在孔洞、自相交三角形或表面法线反转。
恢复方法: 使用 File2File 3D 网格修复工具或 Netfabb 使网格闭合。
安全分析与解析器攻击向量
二进制 STL 解析器评估 32 位三角形计数,其中整数溢出可能导致小型堆分配和越界写入。
已知攻击向量
- 在计算 triangle_count * 50 字节的内存分配时发生整数溢出。
- 当物理文件大小小于声明的三角形数量时发生缓冲区超读。
- 通过多吉字节的三角形分配引发拒绝服务攻击。
防御性最佳实践:
历史渊源与里程碑
核心优势与特点
- 无可争议的全球 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 文件。