作者:Huy Nguyen · ·
STL 和 PLY 都只是描述一张三角网格,所以这是本站比较温和的一个转换:不需要三角化,不需要压平,也不需要丢掉什么。变的是封装方式,而其中有一点关系很大。
会走这条路的理由都比较具体:要在 MeshLab 或 CloudCompare 里打开一个打印件,要把打印件和扫描数据对齐比对,要喂给只带 PLY 读取器的网格处理或科研代码,或者只是想拿到一个更小、索引规整的文件来干活。
我们把一个真实的 STL 用本页同一条通道转了一遍,逐字节读了输出文件的文件头,又在 Blender 5.1 里重新导入。下面是实际出来的东西。
为什么有人要把 STL 转成 PLY
- MeshLab、CloudCompare 以及学术界的大部分几何处理工具都把 PLY 当成一等格式,有些工具读 PLY 比读 STL 顺畅得多。
- PLY 保存的是一张顶点表加上用索引表示的面,这正是大多数网格算法在做事之前想要的结构。
- 如果你以后想要逐顶点颜色,比如把扫描颜色烘到打印件上,或者可视化一张偏差图,那就必须先待在 PLY 里。
- 它单纯更小。我们的测试文件在几何形状完全没变的情况下小了约 62%。
实测:保住了什么,变了什么
输入是一个机加工零件的二进制 STL,从 FreeCAD 按 0.1 毫米偏差导出:1032 个三角面,51.7 KB,尺寸 40 x 20 x 10 毫米。转换耗时约两秒。
| 项目 | STL 里 | PLY 里 |
|---|---|---|
| 三角面 | 1032 | 1032 |
| 顶点记录 | 3096 条,每个三角面三条 | 516 个唯一顶点,加一张索引表 |
| 文件体积 | 51684 字节 | 19824 字节,小了约 62% |
| 尺寸 | 40 x 20 x 10 | 40 x 20 x 10,没变 |
| 颜色和材质 | 没有,STL 存不了 | 没有,因为本来就没有可带过来的 |
| 编码 | 二进制 STL | 二进制小端 PLY,只有 x、y、z |
文件变小,是因为重复数据没了
二进制 STL 没有顶点表。它为每一个三角面完整写出三个顶点坐标和一条面法线,所以被六个三角面共用的一个角点会被写六遍。我们这个文件正好是 84 字节文件头加每面 50 字节。
PLY 的做法相反:先是一张唯一顶点表,然后面去索引它。我们的实测里,STL 中的 3096 条顶点记录出来变成了 516 个唯一顶点,这才是这个零件真实的顶点数,文件也降到了 19824 字节。
这种整理正是转换的实际意义。三角面之间真正共用顶点的网格才能做平滑、减面、测量和水密性检查;一堆互不相连的散三角面通常做不了,这也是为什么那么多软件在导入 STL 时本来就会先做一次顶点合并。
PLY 能存颜色,但这个转换不会给你颜色
这是最值得纠正的一个预期。PLY 以能逐顶点存颜色出名,所以很容易以为转成它就自动有了颜色。实际是:能力有了,内容没有。
STL 完全没有颜色字段,所以没有东西可带过来。我们两个方向都量过:从 STL 转出来的 PLY,文件头里只有 x、y、z;另一组测试从一个完整带色的 PLY 出发,转成 STL 再转回来,得到的 6.3 KB PLY 同样没有任何颜色属性。颜色一旦经过 STL,就彻底没了。
如果你需要一个带色的 PLY,颜色必须来自原始来源——扫描、摄影测量工程、带贴图的模型——而不是来自 STL。如果你想自己上色,那就先转成 PLY,再用 Blender 或 MeshLab 的顶点绘制工具,这是完全正常的流程。
输出的文件头里到底写了什么
转换器写出的是二进制小端 PLY,文件一大就该用这种:紧凑、加载快。如果你流程里某个工具非要 ASCII 版 PLY,最快的办法是在 Blender 或 MeshLab 里勾上 ASCII 选项重新保存,而不是在本页找设置,因为本页没有这个开关。
文件头里每个顶点只列了 x、y、z,没有法线。这点值得知道:STL 里原本带的面法线并没有作为 PLY 属性保留下来。大多数软件反正会根据三角面绕向重新计算法线,所以很少出问题;但如果你的软件把模型渲染成一片平板或者里外翻转,先试试重新计算法线。
单位原样不动
两种格式都不记录长度单位,所以数值直接原样通过。我们那个 40 x 20 x 10 毫米的零件在 PLY 里量出来还是 40 x 20 x 10。
这既方便也是个坑:你的软件把一个单位当成多少,你看到的就是多少。按毫米设计的零件,在以米为单位的场景里打开就成了 40 米宽。请在导入时一次性设好缩放,而不是事后逐个对象去改。
不想上传?在本机上这样做
- Blender:文件 - 导入 - STL,然后 文件 - 导出 - PLY。导出面板里可以选 ASCII 而不是二进制,也可以决定是否写入颜色属性和法线。
- 如果网格很大,或者之后还要简化、清理、上色,MeshLab 更合适。它能导入 STL 并保存为 PLY,还能用勾选框精确决定写入哪些逐顶点属性。
- CloudCompare 两种格式都能读;如果下一步是把零件和扫描数据做比对,它是正确的选择。
本站的限制,以及你的文件会怎样
- 免费:单个文件最大 30 MB,每小时 10 次转换,同时最多 2 个任务,不需要注册。
- Pro:单个文件最大 1 GB,每小时 50 次转换,同时最多 5 个任务。
- 上传的文件和转换结果会在上传后 1 小时内从服务器删除。
- 从 STL 出发,本站还能转成 OBJ、GLB、glTF、FBX、3MF 和 DAE,所以 PLY 只是七个目标之一,改主意也来得及。
2026 年 10 月 27 日实测:一个机加工零件的二进制 STL(从 FreeCAD 按 0.1 毫米偏差导出,1032 个三角面、516 个唯一顶点、51.7 KB、40 x 20 x 10 毫米),在本站转成 PLY,然后用 Blender 5.1 重新导入,并直接读取 PLY 文件头。另外用一次回程测试(带顶点颜色的 PLY 转 STL 再转回 PLY)来确认颜色能不能回来。