关闭

意见反馈/举报

反馈/举报信息:

联系方式:

3D打印宝藏免费实用工具分享:STL转STP!

做3D打印的读者,电脑里都攒着一堆STL文件,网上下载的,客户发来的,扫描仪拟合出来的。

3D打印没问题。

但凡要是想把孔改大一点、底板加厚两毫米、再加一只安装耳,麻烦就来了。

STL里只有无穷无尽的三角形,没有一个面可以修改拖动。

CAD软件打开它,看到的是几百、几万片贴在一起的碎片,拖不动,也改不了。

我们之前开发的格式转换小工具并不涉及STL转STP。

但今天我们上线了一个更硬核的工具,STL转STP,名为升阶(Ascender)。

浏览器里的 STL → STEP

这块板上的孔,能改大吗?

网上下载的 STL 平板:288 个三角形,没有「孔」。

Ø8 圆柱面:能。它现在是一个真正的圆柱面。

拖进浏览器,0.3 秒,变成 7 个面的 STEP;孔径、板厚、长宽,在 CAD 里拖一下就改;文件从头到尾不离开你的电脑。


升阶(STLSTPAscender)的开发思路核心是把STL重新拼成一个封闭的STEP实体,拖进SolidWorks、Fusion、FreeCAD就能改。

它由我们自己开发,工具地址是:

https://amyidao.com/h5/stlstpascender/index


全程在浏览器里运行,不装软件,不需注册,文件从头到尾不离开你的电脑。

甚至我们这次把多孔易变器的激活码机制都去掉了。

下面从最简单的零件开始,一路测试到最难的那只小船。

每一步都是真实的界面和真实的数字,做不到的地方也如是记录。

简单的测试结论是,对于曲面组合较为简单的STL,拟合效果极佳,对于复杂模型,仍然需要去调试一些参数,并且需要去专业软件做全面修复。

对于绝大多数需要改图的机械零件场景来说,我们认为此工具实用价值挺不错的。

6adae33ce7d86.webp?auth_key=1792731717-447338-0-fef5b961a815ef6d6d89951d4cebc123

图注:重建完成后的整个界面。左边是文件、单位和重建设置,中间是结果(一种颜色一个面),右边是导出面板:结果等级、覆盖率、偏差、识别出的孔径和检查项。

图源:升阶 STLSTPAscender 界面截图(AM易道)

第一问:拟合一块带孔的平板,要多久?

打开网页,把STL拖进左上角的虚线框。这块60×40×6的平板有288个三角形,中间一个孔。

点重建,仅需0.3秒,出来7个面:6个平面加1个圆柱面。

导出面板是绿色的已验证的解析实体。

输入和输出尺寸并排写着:60/60 × 40/40 × 6/6 mm;孔:Ø8。

体积和网格差0.004%。

点「下载 STEP」,在CAD里打开,轻松修改。

这就是这个工具最核心的用途,把一堆STL的三角面片,拟合成一个能改的STP零件。

6adae33d584dc.webp?auth_key=1792731717-736370-0-6a26f84b5b251c84ec618530fa013ac5

图注:打开页面:把 STL 拖进虚线框,或点击选择。右上角切换中英文和深浅色主题。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae33daec7f.webp?auth_key=1792731717-192-0-13a76daa06c843f58e1c06e543ea4094

图注:平板重建结果近看:6 个平面各一种颜色,中间的孔是一个圆柱面,黑线是面与面之间的边。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae33e1d4ac.webp?auth_key=1792731718-422222-0-902c36551101544db6ae4a15ad2c2f1a

图注:导出面板:绿色「已验证的解析实体」,尺寸输入 / 输出一一对应,孔 Ø8,下面是三项检查。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae33e7fbef.webp?auth_key=1792731718-509927-0-edd0595dcd854e011dce45f9059defde

图注:点选那个孔:类型圆柱面,直径 8 mm,网格偏差 0.005 mm,状态「已接受(在预算内)」。

图源:升阶 STLSTPAscender 界面截图(AM易道)

第二问:它到底做了什么?

  1. 1 / 5 · 拖进来就行。打开 STL,拖到这里,或点击选择。二进制或 ASCII 的 STL 都认,文件只在你的浏览器里打开,不会上传到任何服务器。

  2. 2 / 5 · 先体检,再确认单位。三角形 288,开放边 0,非流形边 0,T 形连接 0,60 × 40 × 6 mm。数三角形,找开放边和非流形边,顺手修好 T 形连接和微小边。STL 没有单位,你来确认 mm 还是 inch。

  3. 3 / 5 · 把三角形认回面。先认平面,再认圆柱面、锥面、球面和环面,剩下的光滑区域贴上双三次曲面片。每个面都要守住 0.05 mm 的预算。

  4. 4 / 5 · 超预算的,由你来定。16 边形的「圆」:接受为圆柱面,或保留面片。粗糙网格上的圆孔会被标红,每个决定都写进报告,可撤销。

  5. 5 / 5 · 写出 STEP,再读一遍。7 个面 · 绿色「已验证」 · 可下载。AP214 或 AP242 任选。写完做结构回读,分绿橙红三档,哪一档都能下载,差在哪写明白。


我们设计了五个关键步骤:打开、检查、重建、审阅、导出。

重建这一步认平面、认圆柱面和其他回转面,目前包括了孔、凸台、圆角、锥面、球面、环面。

贯穿全程的拟合程度我们定义为网格保真预算,默认0.05mm。

这个数值设置越低拟合越逼真,但面片会越多,反之拟合效果越好,但偏差会越大。

打个比方:STL像一张像素照片,放大就是马赛克;STEP像矢量图,线是线,圆是圆。

把照片变成矢量图,靠是重新描一遍,描得准不准,得有个标准。


标准越严,扫描成功率越低;标准越低,扫描成功率越高,但精准度会略微降低

第三问:带圆角、沉孔、键槽的零件表现如何?

一块安装板,四角R6圆角,四个Ø6的安装孔,中间一个Ø20的孔。

1580 个三角形,拟合出来15个面,0.4 秒,检查过关,显示绿色。

五个孔径一个不差,四个圆角也是真正的圆柱面,在CAD里能直接改半径。

另外一块200*120的多孔板,30个Ø10的孔,31380个三角形。

用时仅1.4 秒,40 个面,6 个平面加34个圆柱面,30孔一个不漏拟合成功,最大偏差 0.0006mm。

这种零件如果在CAD里从头画也得十来分钟。

再看键槽轴8个面,沉孔零件9个面。

这类机械件是日常用得最多的:改孔位、改孔径、加长一段、换个螺纹规格,网上下载的零件通过这个工具可以就此变成你自己的CAD文件。

6adae33ed761b.webp?auth_key=1792731719-480853-0-e7eac477902383fe69964a59cd801a30

图注:安装板:15个面。四角圆角是四个圆柱面,四个Ø6孔和中间Ø20孔各是一个圆柱面,上下两面和四个侧面是平面。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae33f360c8.webp?auth_key=1792731719-432318-0-365880f2fead298a8d64a3a1ed12c33c

图注:多孔板:31380个三角形变成40个面,30个Ø10的孔一个不漏。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae33f94b01.webp?auth_key=1792731719-922432-0-e6d7dfe4d8162093082ec08a0ddf1f6e

图注:多孔板的导出面板:绿色,尺寸 200/200×120/120×10/10,孔Ø10 ×30,圆角4 处。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae33fdb0d2.webp?auth_key=1792731719-208521-0-558520b6e40ba84be571145e49d770d6

图注:键槽轴:一个圆柱面加七个平面,轴上的黑线是圆柱面的接缝。

图源:升阶 STLSTPAscender 界面截图(AM易道)

第四问:倒角、圆根、圆角交汇的角落能否转换?

锥面、球面、环面这个拟合难度比较大,我们也加了进去试图拟合。

试一个法兰轴套:4194个三角形的STL,尝试转换。

仅1.7 秒。

结果是16个面,一个不多,一个不少。

包含7个平面、6个圆柱面、2个锥面、1个环面。

原始 CAD 模型也正好是16个面;体积24940mm³,和原始模型一样。

再看圆角交汇的角落。

一块四周倒了R2圆角的支架,1200个三角形。

三条圆角在角上碰头,那里本来是一小块球面。

工具认出了8个R2球面,12条圆角在角上干净地收口,31个面拟合成功。

6adae3402eb3d.webp?auth_key=1792731720-259240-0-d46ba89aa96ba50aea08e708c18c5f76

图注:法兰轴套的状态视图:紫色是锥面、球面、环面——根部圆角是一个环面,凸台顶上的两处倒角是两个锥面;蓝色是圆柱面,灰色是平面。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae3407a5b8.webp?auth_key=1792731720-658123-0-ebcd3a2f12c5584f09d8274175a30ebc

图注:点选根部圆角:类型环面,环半径 15 mm,管半径 3 mm。在 CAD 里,它就是一个能直接改半径的圆角面。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae340cb29b.webp?auth_key=1792731720-805092-0-dae51e14a7355f96b71b37b9cb38b595

图注:支架的一个角放大看:蓝色是三条 R2 圆角(圆柱面),紫色是它们交汇处的球面。

图源:升阶 STLSTPAscender 界面截图(AM易道)

第五问:齿轮、旋钮这些带曲面的表现如何?

齿轮:24个齿、Ø16的轴孔、一个轮毂,806个三角形。

转换拟合用时0.3 秒,101个面,齿面是平面,轴孔和轮毂外圆是圆柱面,齿根的小过渡是曲面片。

转换成功,显示绿色已验证的实体(解析面 + 自由曲面片)。

再看旋钮。

一段带竖纹的柱身、一个球形顶、一圈环形凸棱。

用时1.9 秒,112个面。

这个网格比较粗,在默认0.05mm的容差预算下,球顶和凸棱用的是曲面片。

真正的球面、环面和这些粗三角形之间的差,超过了预算。

这也是第一次出现橙色提示:6 个小面片没拟合出来,占表面积 0.2%。

文件照样可以下载,提示告诉你差在哪,未来可以自行在专业cad软件里修复。

整体来说,曲面越多,拟合效果越差。后面可以看到更多不太好的案例。

6adae34122f6b.webp?auth_key=1792731721-585168-0-31c631ecd43e2e34990ffdc125d7fbd2

图注:齿轮:101 个面。齿面是平面,轴孔 Ø16 和轮毂外圆是圆柱面。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae34173332.webp?auth_key=1792731721-88636-0-43c7febfe2aba7a087b8a5640b9be9e5

图注:旋钮:球顶和环形凸棱在默认预算下拆成曲面片,下面的圆柱段是圆柱面。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae341c088f.webp?auth_key=1792731721-368781-0-05e442e81337e6378ed55b81355f4fa0

图注:旋钮的状态视图:青色是曲面片,蓝色是圆柱面,灰色是平面,黄色是没拟合出来、原样保留的三角形面片。

图源:升阶 STLSTPAscender 界面截图(AM易道)

第六问:全是曲面的东西,工具虽可以拟合,但表现不佳

一只带12条扭转棱纹的花瓶,77440 个三角形,没有一个平面,也没有一个圆柱。

用时9秒,拟合出1136个面,自由曲面覆盖92.5%的表面积,偏差p950.049 mm,尺寸56.811/56.811 × 80/80。

有158个小面片没拟合出来,占0.3%。

虽然还有1000多面,但我们觉得还是有价值的,至少这些面可以切、可以布尔运算。

6adae34218230.webp?auth_key=1792731722-804566-0-d4987d19d5dd52fcf67850df150d60fd

图注:花瓶:77440 个三角形变成 1136 个面;导出面板橙色,提示写着 158 个面片、0.3% 表面积,下载按钮照常可用。

图源:升阶 STLSTPAscender 界面截图(AM易道)

第七问:最难的考题:3D小船

这只小船是3D打印圈的标准件:3DBenchy,223898 个三角形。

它几乎没有真正的平面,船体、船舱、船窗全是曲面,船尾还有一行浮雕小字。

我们用了默认参数,花了15 秒,拟合成3397 个面,其中954 块曲面片、124个圆柱面、39个锥面、15个球面、6个环面、约230个真正的平面,外加2030 个保留下来的三角形面片。

这些面片集中在浮雕文字和0.1mm以下的小圆角上,只占表面积 0.5%。

烟囱的Ø3和Ø2两个孔、122段圆角都认出来了。

验证为合格的封闭实体,体积15520mm³,和给他的15551mm³ 差。0.2%

结构不够完美,我们试了调整了许多高级参数,比如容差、拟合角度,能够大量减少拟合面片数量,但始终无法做到更完美的拟合。

但对一只从网上下载的小船STL来说,烟囱能加高、船体能改孔,已经是以前做不到的事。

6adae3426a681.webp?auth_key=1792731722-160439-0-60933f66765b93fd73a22ef3d3cf0f17

图注:转换进行中:状态栏显示当前阶段和用时,随时可以取消;视口中央是等待卡。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae342b55de.webp?auth_key=1792731722-529327-0-6efe0a59cea2c0ab098178b7f180d377

图注:小船重建结果近看:船舱侧壁是整面,船窗是一圈曲面片,船头锚链孔的孔口认成了回转面,烟囱上的孔是圆柱面。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae3431c066.webp?auth_key=1792731723-996231-0-b5934d3680419e72008595159e2bb1a3

图注:状态视图:青色曲面片、灰色平面、蓝色圆柱面、紫色锥面 / 球面 / 环面;黄色是预算内拟合不出来、原样保留的三角形。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae3438a4c3.webp?auth_key=1792731723-183217-0-24f0792416526aecad5dc56dbd5243c0

图注:小船的导出面板:橙色「STEP 已写出—有提示」,3397个面,覆盖率里单列锥 / 球 / 环面1.5%;提示框写着还有 1803 个面片,占 0.5%。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae343dca80.webp?auth_key=1792731724-401782-0-ef974f123afd02acb2435e28541b2556

图注:读入STEP后按面类型着色:青色曲面片、蓝色圆柱面、黄色平面、紫色锥面 / 球面 / 环面。

图源:读入STEP后的渲染(AM易道);

从一块平板到一只小船:八个模型的账

模型三角形 → 面用时结果
带孔平板288 → 70.3 秒全部认出
安装板 5 孔1,580 → 150.4 秒全部认出
多孔板 30 孔31,380 → 401.4 秒全部认出
法兰轴套4,194 → 161.7 秒全部认出
齿轮806 → 1010.3 秒全部认出
旋钮5,530 → 1121.9 秒面片 0.2%
棱纹花瓶77,440 → 1,1369 秒面片 0.3%
3DBenchy223,898 → 3,39715 秒面片 0.5%

绿点:绿色「已验证」,全部面都认出来了;橙点:「有提示」,文件照样下载,面片数量写在提示里。

用时为双核测试机上浏览器里的重建时间(1.4 版)。


第八问:工具怎么保证转换结果的质量?

我们把结果分了三档,写在导出面板最上面。

绿色是表示「已验证」:拓扑封闭、双向采样偏差、STEP写出后结构回读都过测试了。

橙色表示「有警示提示」:文件照样可以下载,但面板把没做完的事一条条列出来,多少个面仍然保留留成三角形、占多少表面积,几个圆柱候选超出预算,便于我们调整拟合参数再试。

红色是不通过:文件回读发现了问题,仍然可以下载STEP,文件可能作为曲面而不是单一实体进CAD。

6adae34440ab1.webp?auth_key=1792731724-830979-0-2e2a2b4444460f4ff6ea99f91577fe6c

图注:偏差视图:每个采样点到拟合曲面的距离,蓝色接近 0,红色等于预算。颜色集中在曲面片的边界附近。

图源:升阶 STLSTPAscender 界面截图(AM易道)

第九问:高级参数要怎么调?

每个参数旁边都有一个问号。

点开就能知道它管什么、默认值为什么是这个数、什么情况该调大调小。

最值得先碰的是网格保真预算,也就是我们说的拟合容差。

CAD导出的STL建议用0.02–0.05 mm;扫描件和网上下的打印文件用0.1–0.2 mm。

这个参数是最能影响拟合结果的,针对曲面复杂的模型比较适合多次尝试。

回到第五问那个旋钮。

网格比较粗,默认保真容差0.05 mm下球顶和凸棱都是曲面片。

当我们把预算调到0.1 mm再跑一次:凸棱变成了真正的环面,面数从112降到 48,读入复验照样是合格实体。

曲面片和黄色太多就调大,孔径略偏就调小,这是最常用的一招。

单位选择也很关键,STL不带单位,一个以米为单位导出的零件,按毫米读进来只有零点几毫米大。

所以最先做的一步是导入后确认尺寸单位,需要选择合适的尺寸单位。

6adae3448746c.webp?auth_key=1792731724-239474-0-9f6ee5b6328559105d96bc0b1b2650ac

图注:同一个旋钮,预算 0.1 mm:紫色的凸棱是环面,面数 48。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae344dab36.webp?auth_key=1792731725-129882-0-63aea58eb8a1e71bfa198fbaad896ed0

图注:参数旁的问号:网格保真预算是什么、怎么选。每一个参数都有这样一段说明,中英文都有。

图源:升阶 STLSTPAscender 界面截图(AM易道)

6adae345536e2.webp?auth_key=1792731725-220161-0-63cdff89036f104f4d26dfbe7a57cd40

图注:「如何得到最好的结果」:七条顺序,从确认单位到在自己的CAD里核对。

图源:升阶 STLSTPAscender 界面截图(AM易道)

第十问:我的模型会被上传吗?

不会。

解析、拟合、写 STEP、回读校验,全都在你的浏览器里完成,没有任何服务器接收文件;客户的图纸、没发布的设计,都留在你自己的电脑上。

界面有中英文、深浅色两套,手机上也能打开看结果,但不建议用手机。

6adae345a9e4d.webp?auth_key=1792731725-292503-0-858c19a6a35a2a61684cf4a1cdbd7fa0

图注:英文界面与深色主题。右上角一键切换。

图源:升阶 STLSTPAscender 界面截图(AM易道)

还做不到的事:工具的能力边界

  • 光滑曲面会拆成多块曲面片,不是设计软件里那几张整曲面。

  • 网格太粗时,球面、环面会退回曲面片,要放宽预算才认得出来。

  • 粗糙导出件和微小细节会留成三角形面片,文件里原样保留,提示里写明数量。

  • 浏览器内的校验是结构性的,不等于 CAD 导入,请在 CAD 里核对。

  • 没有和其他转换工具做同机对比。

写在最后

我们之所以开发这个工具,初衷简单。


就是因为我们自己也无数次被那些只能看、不能动的STL文件折磨过。


每当需要改个孔、加个耳,不得不去折腾那些笨重繁琐的专业软件,或者在格式转换的泥潭里打滚时,核心疑问是为什么不能有一个工具,像空气一样自然?


不装软件,不需注册。


打开网页,拖进去,几秒,最多十几秒。


文件从未离开过你的电脑,从一乱七八糟的三角面片,重新变成了一个在SolidWorks、Fusion、FreeCAD等各类CAD工具里能拖拽、改尺寸、加结构的STEP实体。


命名升阶,希望对3D打印读者来说,能有效率和创作自由的升阶。


工具就在这里,完全免费,全程在本地浏览器运行。


6adae34666f60.webp?auth_key=1792731726-629597-0-4dd9fb4c184989714fae56c24f4f020a


最简单的平板,最难的小船,我们都测过了,也欢迎在评论区留下您的优化意见。


10-18 12:53
点赞
反对
收藏
分享