3D打印STL转STP实用工具更新:更干净合理的拟合转换(3D打印软件打开STL) ypxx.net

上次和大家分享过一个我们自己开发然后也觉得挺好用的工具,STL转STP。

使用流量挺大,感谢读者认可支持。

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

当时想解决的,是做3D打印时一个很常见的麻烦,想改个孔、加厚一块底板,手里却只有STL。

都是小三角面,无从下手。

升阶,就是想把这些三角形重新认成平面、圆柱、圆角和曲面,拼回一个能在SolidWorks、Fusion、FreeCAD里继续修改的STEP零件。

打开网页就能用,不装软件,模型在本地转换,不上传任何服务器。

升阶1.6 · 接着上次聊还是这批模型,1.3和1.6,各转一遍。这次转出的STEP,少了多少个面?1.31.6带孔安装板15法兰轴套24沉头孔板69圆角支架172旋钮140车削花瓶25凸轮35等高线地形1,033扭纹花瓶1,136有机团块443DBenchy小船4,052轻点画面,看看1.6的结果1516183130335840922,486简单件,还是原来的结果;复杂的那些,碎面少了不少。

工具发布以后,我们继续往下做。

从1.3到到现在的1.6,一直在琢磨同一件事。

转出来的文件,能不能再好改一点。

所以这次还是拿出同一批模型,用新老版本各转一遍。

从简单的平板到那只小船,有些结果提升有限,有些变化还挺明显。

而且我们还增加了手动修复功能,我们认为非常实用。

1.4版1.5版1.6版一块块曲面片自动并成大面锯齿接缝顺滑曲线整圈一个面沿用原来的设置,就能看到变化1.6:碎面再合一合识别完成后,相邻曲面再合并一次;面之间的锯齿接缝,也尽量理顺;绕一整圈的面,合起来算一个。看完了1.4版1.5版1.6版转出来的花瓶、旋钮推出来的凸轮、地形自己动手修点选、合并1.5.2:点选几块大面,还能再合成一张1.5:花瓶这类,也能认了轮廓转一圈,或沿一个方向推出来,花瓶、凸轮、地形,常有这样的面。这版也加了修复面板,没认好的,可以自己选中,再修一修。轻点,接着看1.4版1.5版1.6版倒角→ 锥面沉头孔→ 锥面圆角→ 环面、球面转换前提醒单位,导出前再多查一遍1.4:补上倒角和圆角倒角、沉头孔、根部和交汇处的圆角,以前往往要用几块曲面片来拼;这次能认成CAD里的锥面、环面、球面,选中完整的面,改起来方便些。轻点,接着看

这里先解释一下,为什么我们一直在数面。

拿倒角来说,如果它在CAD里是一个完整的面,选中以后,改大小、删掉重做,都容易一些。

可同一个倒角要是碎成十几块小补丁,光选面就得费一番工夫。

我们希望转出来的面尽量接近原来设计时的样子,也是为了让后面改图的人少折腾一点。

第一问

先看看最常用的安装板效果不错

先从简单的来。一块带圆角和安装孔的板子,老版本1.3就能转出15个面:6个平面、4个圆角、5个孔,一个不差。

换到1.6,结果还是这15个面,一秒钟之内就出来了。

这类零件原本转得不错,继续照常用就好。

图注:还是那块带孔安装板,一种颜色代表一个面。1.3已经能完整识别,1.6的结果也一样。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

不过,导入时多了一个小提醒。

以前要自己留意,现在遇到尺寸不太对劲的模型,工具会提醒你检查单位,也可以直接点一下改过来。

图注:这个零件按米导出,按毫米读进来只有0.08毫米宽。提示旁边就是改用米的按钮。

图源:升阶 STLSTPAscender 1.6 界面截图(AMEDAO)

碰到太大的模型,会在开始时提醒先减面,尽量避免卡住。

第二问

倒角和沉头孔也能胜任

接着看倒角、沉头孔,还有凸台根部的圆角。

这些地方在CAD里分别是锥面和环面,老版本还认不出来,只能用几块曲面补丁拼出形状。

看着像那么回事,真要改尺寸就不太方便。后面我们把这部分补了进去。

还是拿法兰轴套来试。这个零件先在CAD里画好,再导出成STL,原图一共16个面。

老版本转回来是24个面,多出来的主要在凸台顶上的倒角和根部圆角。

换成新版本,结果回到了16个面,倒角认成锥面,根部圆角认成环面,面数和面的种类都对上了。

图注:看法兰轴套的倒角和根部圆角。1.3里还是绿色的曲面补丁,1.6里已经是紫色的锥面和环面,一处一个面。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

沉头孔的差别更容易看出来。

这块板子是用最粗的设置导出的,一个沉头孔只有几十个三角形。

1.3把每个孔拆成十几块,整块板子有69个面,还剩10小块没认出来。

到了1.6,一个沉头孔认成一个面,整件18个面,也和原来的CAD模型对上了。

图注:同一个沉头孔,对比1.3和1.6,孔壁上的分界线少了。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

想把倒角改大一点,或把沉头孔改成普通通孔时,这个变化就用得上了。

到了CAD里,能先选中一个完整的面,后续修改会方便不少。

第三问

圆角交汇的地方表现明显提升

先看看支架的交汇角。

三条圆角在这里碰到一起,中间其实是一小块球面。网格粗的时候,这个位置不太好认。

老版本转完,侧面和圆角还留着不少小三角形,界面上显示为黄色的面片。

整个零件172个面,其中140个都是这样的面片。

图注:放大看支架的一个角。1.3里黄色的是没认出的三角形;1.6里,蓝色是圆角的圆柱面,紫色是交汇处的球面。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

这次新版本再转,剩下31个面:6个平面、12条圆角、5个孔,还有8个角上的球面,没有留下未识别的面片。

我们又拿原来的CAD模型核对了一遍,正好也是这31个面。

图注:拉远看整个支架,1.3和1.6的区别就更清楚了。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

第四问

添加修复功能!

看过初版介绍的读者,可能还记得那只旋钮。

球形的顶、一圈凸棱,下面是一段带竖纹的柱身。

用老版本转换,它有140个面,柱身被分成一条条,顶和凸棱也拆得比较碎。

新版转下来是30个面,大部分已经连成整片。

图注:同一只旋钮,1.3和1.6的结果。可以先看球顶和凸棱,再看下面的柱身。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

但还有6个小三角形没认出来,藏在竖纹顶上,占表面积的0.2%。这点面积不大,看着却总觉得还差一点。

这里我们又更新了一个我们认为非常重要的功能!

到右侧栏找到修复面,就能接着处理。

拿这个旋钮来说,先点全部面片,把6个三角形一起选中,再把拟合类型选成平面,点应用就可以。

图注:修复面板里,先选全部面片。这里选中了6个面,拟合类型选平面。

图源:升阶 STLSTPAscender 1.6 界面截图(AMEDAO)

不到1秒,结果就从橙色的有提示,变成了绿色的已验证的实体。

前面自动识别好的结果会保留下来,不用为了修这几小块,把整个模型从头再转一遍。

图注:修之前和修之后的导出面板,修完后已经变绿。

图源:升阶 STLSTPAscender 1.6 界面截图(AMEDAO)

如果碰到的情况更复杂,也可以在3D视图里点选面,或圈选一片三角形,再指定它应该是平面、圆柱、锥面、球面还是环面。

几块面可以合起来,认错的也可以拆开再试。

每一步都能撤销,会记进报告;

如果修完反而更糟,工具会撤回这一步,并把原因告诉你。

第五问

花瓶、凸轮更优秀的表现

接下来这几件,做过CAD的读者应该很熟悉。

一条轮廓线转一圈,可以得到花瓶、圆顶、旋钮;

一个外形沿着一个方向推出去,可以做出凸轮、曲面墙和等高线地形。

老版本还不能按这两种方式识别,只能用一块块曲面去拼。

新版本自动拟合绕完整一圈的面能合起来算一个。

这只车削花瓶,老版本转出25个面,新版本只剩3个:瓶身一个面,顶面和底面各一个。

看到这里,就比较容易理解我们为什么一直想把面数减下来了。

图注:看花瓶侧面的分界线。1.3用25个面拼成整件,1.6里的瓶身已经连成一个完整的面。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

图注:凸轮也是类似的变化。1.3把侧面切成三十多条,1.6把一整圈认成一个面,整件从35个面减到3个。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

等高线地形的变化更大一些。

老版本转出1033个面,其中675个还是没认出来的面片;

新版本自动拟合只有58个面,台阶侧壁大多已经连成整面,未识别的面片只剩4个。

图注:同一块等高线地形,1.3和1.6。留意每一级台阶的侧壁。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

第六问

更难的曲面花瓶

再往下,模型就不那么规整了。

没有平面,也找不到圆柱,得靠一块块曲面片去贴合。

一个圆滑的外形,最后常常被分成几十块。

新版本虽然面数少了,但仍然没有完全解决这个问题,只是曲面片能顺着形状多绕一些。

原来曲面之间折来折去的锯齿接缝,也会整理成顺滑的曲线。

而且这些变化仍然要守住原来的精度要求,也就是0.05毫米以内。

图注:这只扭纹花瓶有77,440个三角形。1.3转出1136个面,1.6减到了409个。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

图注:再看这团光滑的有机外形。老版本分成44块,新版本剩下2块,中间保留一道接缝。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO)

对后面要改图的人来说,面连得完整一些,选面、加厚、抽壳,或是切开一部分,都更容易操作,也少一些碎面带来的麻烦。

第七问

最后,还是那只3DBenchy小船

初版一路测到最后,是那只3DBenchy小船,这次也把它留到了这里。

它是3D打印圈常用的标准测试件,22万个三角形,几乎找不到真正的平面。

船体、船舱、窗框到处是曲面,船尾还有一行小字,很适合看看工具到底能处理到哪一步。

可以看到,自动拟合比以前干净多了!

图注:同一只小船,同一个角度。1.3是4052个面,1.6是2486个。先看烟囱,原来一条条的竖面,这次连成了整圈。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO);模型 3DBenchy © CreativeTools.se,CC BY-ND 4.0

新版本认出了109个圆柱面,还有39个锥面、15个球面、6个环面,以及27个通过旋转或拉伸形成的面。

像锚链孔的孔口、烟囱这些位置,就不用再靠许多小补丁来拼了。

整体已经很干净了,这还不算可以手动修复拟合的更优化成果。

图注:青绿色是曲面片,灰色是平面,蓝色是圆柱面;紫色是锥面、球面、环面和旋转形成的面,黄色是还没认出来的小三角形。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO);模型 3DBenchy © CreativeTools.se,CC BY-ND 4.0

图注:船头放大看。1.3的船体补丁较碎,接缝也有锯齿;1.6的曲面片大了,接缝顺了不少。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO);模型 3DBenchy © CreativeTools.se,CC BY-ND 4.0

图注:再绕到驾驶舱背面,看窗框、舱门和圆角,1.6的曲面衔接更完整一些。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO);模型 3DBenchy © CreativeTools.se,CC BY-ND 4.0

当然,那些最细碎的地方还没有全部解决。

没认出来的小三角形,从2679个降到了1514个,占表面积从2.8%降到0.5%,主要还在船尾的小字和极小的圆角上。

最大偏差则从0.067毫米降到了0.050毫米。

图注:小船的导出面板。1.3还在提示修复功能要等后续版本;1.6已经可以从右栏的修复面接着处理。

图源:升阶 STLSTPAscender 1.3 / 1.6 实测截图(AMEDAO);模型 3DBenchy © CreativeTools.se,CC BY-ND 4.0

如果愿意再花一点工夫,还可以像刚才修旋钮那样,点全部面片,手动修复出更优秀的成果。

求读者评论区分享更加干净的手动修复成果。

第八问

面少了,结果的可靠性并没有减少

看完这些变化,我们还得确认一件事。

面少了,转出来的零件有没有额外问题。所以每次发布前我们会把文件再次检查。

是不是完整、合格的实体,体积能不能对上,要重新检查。

再核对一遍和原来的CAD模型比一比原图1.31.6法兰轴套162416沉头孔板·最粗导出186918圆角支架3117231这三个零件先在CAD里画好,再导出STL;1.6转回来的面数,都和原图对上了。测试61个测试模型,交给另一套CAD内核复核60个合格修复功能随机操作测试1,397次 · 0问题修复后的文件逐个复核911次全部合格复核用OpenCascade,FreeCAD也用这套内核。没通过的那1个,是特意设错单位的测试。

还有实体体积和原网格能不能对上,里外有没有翻转,几个实体会不会互相穿插,一个面的边线有没有打结。

图注:这个模型由三块实体组成,其中有2对互相穿插。提示会说明,导入CAD后它们仍是重叠的独立实体,需要合成一个零件时,再做布尔合并。

图源:升阶 STLSTPAscender 1.6 界面截图(AMEDAO)

用过之前版本的读者,应该也熟悉这三种颜色。

绿色是验证过的实体;橙色表示还有提示,文件照常能下载,剩下的问题会逐条列出;

红色也能下载,但需要关注提示问题。

第九问

转换会比以前慢吗?

会,尤其是曲面多的大的3D模型。

把相邻曲面合起来,需要反复尝试和检查,这部分确实更花时间。

我们的测试小船从十几秒秒变成了几十秒。

常见机械零件倒是基本没受影响,原来一两秒的,现在还是一两秒。

如果只是想先转出来看看,也可以到设置里关掉合并相邻曲面片。

关掉以后,这只小船大约能快一半,面数仍然比老版本少一千多个。

图注:合并开关在设置里,默认是打开的。

图源:升阶 STLSTPAscender 1.6 界面截图(AMEDAO)

这里也顺带交代一下,合并通常按计算量设定了转换时间上限。

同一个文件,快电脑和慢电脑转出来的结果一致。

只有设备特别慢时,才可能碰到时间上的安全上限。

还做不到的事

还有几处没处理好

也照实说说还做不到的事那些特别细的小字船尾小字的笔画,比0.05毫米的精度还细,目前还得原样保留成小三角形。像甜甜圈那样的整圈里外都绕一圈的环面,导出时仍会分成几块。曲面多的大模型更慢测试里,小船从26秒增加到了66秒;想快一些,可以关掉合并相邻曲面片。 改图还得用CAD升阶先把面认出来,尽量拼完整;加厚、开孔、改尺寸,再到CAD里做。

最后

写在最后

从平板一路试到小船,这次的变化大致就是这些。

更少的面,更干净的转换,还有更自由的手动修复可以玩。

我们继续做这些更新,想法和最初一样。

做3D打印,手边常常就是网上下载的模型、客户发来的STL,或扫描出来的外形。

如果只是想改个孔、加厚一块、开个槽,希望能少一点从头画图的麻烦。

我们这个工具转出来的面完整一些,后面改图就能省一点工夫。

现在已经有数千位3D打印用户在用升阶转换模型,用的人还在不断增加。

也欢迎有兴趣的读者在上面投放广告支持我们持续更新。

工具仍然从这个地址打开:

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

或者进到我们这个页面点击即可用:

不用安装,也不用注册,完全本地运算,主打一个安全靠谱。

之前有模型转得不太理想的读者,可以拿原来的文件再试一遍。

哪些地方更好用,哪些地方还比较弱,也欢迎在评论区和我们分享。