STL 转 STEP:网格能变成的最好样子,也只能到这一步

把 STL 拖进来。转换器焊接三角面、修好导出程序留下的毛病,把每一块平的区域合成一个平面,再建成 CAD 软件能打开的实体——全在你的浏览器里,文件不上传。然后告诉你转出来的是什么:多少个面、是实体还是开放曲面、体积和 STL 还对不对得上。

转换 STL →

STL 转 STEP 能做什么、不能做什么

STL 只有三角面。做它用的圆柱、圆角和草图都不在文件里,任何转换器都放不回去。你得到的是一个由平面拼成的实体:网格平的地方是整块平面,弯的地方是一条条窄平面。Fusion、SolidWorks、FreeCAD、Onshape 会把它当实体打开,可以切、挖槽、在平面之间测量——但孔仍是一圈窄条,不是能改直径的孔。

要带真圆柱、真孔的 STEP,就从模型的源头导出: OpenSCAD 转 STEP → 参数化生成器(可导出 STEP) →

STL 怎么转 STEP

  1. 01

    打开转换器

    不用注册。第一次访问下载约 8 MB 的 WebAssembly,浏览器缓存后下次直接用。

  2. 02

    拖入 STL

    二进制或 ASCII 的 STL 都行,最多 2,000,000 个三角面。

  3. 03

    看报告

    合并前后的面数、实体还是开放曲面、STL 与 STEP 的体积,以及修了哪些毛病,一项项列出来。左边视图里看得到合并出来的平面。

  4. 04

    下载 STEP

    AP242 格式,Fusion、SolidWorks、FreeCAD、Onshape 等现在的 CAD 软件都能导入。

用 310 个真实 STL 测过

测试集:我们生成器打印验证套件里的 135 个 STL,Prusa i3 MK3 的 45 个打印件(OpenSCAD 导出),OpenCascade 自带的 10 个样例网格,以及 GitHub 上公开 CAD 项目的 120 个 STL。30 MB 以内的 STEP 都再读回来核对。

转换成功
303 / 310
没转的 7 个在动手前就被拒绝并说明了原因:合并平面后仍超过 100,000 个面(6 套 18 万到 28 万三角面的键帽和一个灯罩),STEP 会超过 100 MB。
封闭网格成了有效实体
232 / 237
这 232 个实体都通过 OpenCascade 的有效性检查,从 STEP 读回来实体数和面数不变。其余 5 个网格自相交,写成了封闭曲面而不冒充实体;另有 66 个网格本身有洞,照实写成开放曲面。
STL 与 STEP 的最大体积差
0.0006%
所有实体里差得最多的一个。只合并真正共面的三角面(在零件尺寸的百万分之一以内),所以形状不会变。
STEP 面数 / STL 三角面数(中位数)
31%
打印件的平面每块合成一个面;曲面保留原来的小面。

STEP 文件会很大:每个面都要连同它的边完整写出。137 KB 的测试条(2,812 个三角面 → 719 个面)转出 1.1 MB 的 STEP;117,694 个三角面的扫描头像转出 84 MB,写了 15 秒。这已经省掉了每条边在每个面上的二维副本(普通导出里占 40–60%)。

转换器做了什么

只修拓扑,不动几何

方向反了的三角面翻正、里外翻了的实体翻过来、相差极小的顶点合上、零面积的细长三角面去掉、两个相贴实体共用的边拆开——每一项都在报告里计数。

平的区域合成一个面

共面的相邻三角面合并,面上的孔保留为孔。只认真正的平面(零件尺寸的百万分之一以内),不会把曲面压平。

是实体才叫实体

有洞的网格写成开放曲面,报告里明说;绝不把它标成实体。

空心零件保留空腔

内层壳体成为从外面实体里挖掉的空腔,体积照样对得上。

体积核对

每次转换都给出 STL 的体积和 STEP 的体积,一眼看出有没有变形。

文件不出浏览器

在你的浏览器里运行,页面没有上传功能。不用注册,不保存任何东西。

网格转出的 STEP 和从源头导出的 STEP

同一个零件,两种 STEP 的差别:

由 STL 转出的 STEP从 CAD 源头导出的 STEP
一个孔一圈平的窄条(STL 里有几段就几条)一个圆柱面,直径精确
平面每块一个平面每块一个平面
改孔的大小改不了,只能重画改特征或参数
圆角一排窄小面真正的圆角面
文件大小大(小零件也是几 MB)小(几十 KB)
适合加孔、切割、围着它设计配合件、CAM 粗加工所有用途

常见问题

STL 怎么转成 STEP?

打开转换器,拖入 STL,看一眼报告,点「下载 STEP」。在 FreeCAD 里是 Part 工作台「从网格创建形状」、再「转换为实体」、最后导出 STEP;在 Fusion 里是插入网格后用「转换网格」。这里不用装软件,还会告诉你转出来的是不是实体。

为什么 STL 转 STEP 得不到真正的 CAD 模型?

因为 STL 里只有三角面:圆柱已经变成了一圈平面,圆角变成了一排窄面,原来的尺寸和特征都没有存进去。转换只能把这些三角面整理成一个干净的实体,没法推测出原来的设计。要可编辑的模型,得回到做这个零件的 CAD 文件或源码。

CAD 软件能打开转出来的 STEP 吗?

能。文件是标准的 AP242,Fusion、SolidWorks、FreeCAD、Onshape 等都能导入;我们把 30 MB 以内的每个都用 OpenCascade 读回来核对过实体数和体积。面数上万的文件在任何 CAD 里都会比较卡。

为什么 STEP 比 STL 大那么多?

STL 每个三角面 50 字节;STEP 要把每个面写成平面、边环、边、顶点几层实体,我们测的每个面约 1.2–1.5 KB。我们已经把可以推导出的二维边副本省掉了,文件比普通导出小 40–60%,但大网格的 STEP 仍然很大。

能在转出来的 STEP 里改孔的大小吗?

不能:孔是一圈平面,不是一个圆柱特征。可以在 CAD 里把那一圈面删掉、重新打孔;更省事的是从源头改——如果零件来自 OpenSCAD 或我们的生成器,改参数再导出 STEP 就行。

转出来的是实体吗?

STL 封闭(每条边正好两个三角面)就是实体,并通过 OpenCascade 的有效性检查。STL 有洞时写成开放曲面,报告里会说有多少条开口边;先用切片软件或 Meshmixer 修好网格再转,就能得到实体。

最大能转多大的 STL?

2,000,000 个三角面。扫描件、雕塑这类有机网格几乎没有平面可合并,几万个三角面就会产生几十 MB 的 STEP,先减面再转更好用。

STL 文件会被上传吗?

不会。转换在你浏览器里、单独源上的 WebAssembly 中完成,页面没有上传。我们只收到匿名计数(面数、用时),收不到文件和文件名。

STL 转 STP 和转 STEP 一样吗?

一样。.stp 和 .step 是同一种格式(ISO 10303-21)的两个扩展名,下载后把扩展名改成 .stp 也可以。

要反过来? STEP 转 STL →

相关