OpenSCAD 的「导出」菜单里没有 STEP。这不是漏了,是它的设计:OpenSCAD 把所有模型算成三角面,能导的只有 STL、3MF、OFF、AMF 这类网格格式。
打印机不在乎。但只要你要把零件交给 CNC 加工厂、拿去注塑、或者在 Fusion、SolidWorks、FreeCAD 里继续改,对方要的都是 STEP。STEP 里的孔是一个有直径的圆柱面,网格里的孔是一圈窄长的三角形,CAD 软件选不中它、量不出它、CAM 认不出它。
于是「OpenSCAD 导出 STEP」成了一个每隔几个月就有人在论坛上问一遍的问题。下面是几种常见的答案。
FreeCAD 的 OpenSCAD 工作台
FreeCAD 能导入 .scad 文件,或者 OpenSCAD 导出的 .csg,把里面的图元重建成实体,再导出 STEP。这是最老、也最常被推荐的办法。
代价是你得在本机装好 FreeCAD 和 OpenSCAD 两个软件,而且它不是什么都能重建。hull() 和 minkowski() 这类操作在很多情况下会以网格的形式导回来,最后的 STEP 一半是实体一半是面片。多文件项目、用了库的文件,常常要先手工整理一番。
适合:零件不复杂、本机已经有这两个软件、愿意手动处理失败的人。
网格转 STEP 的工具
先从 OpenSCAD 导出 STL,再用一个转换工具把它「包」成 STEP。这类工具很多,在线的桌面的都有。
它们做的事情是把每个三角形变成一个平面。文件确实是 STEP,哪里都打得开,但本质还是网格:没有圆柱,孔选不中,几千上万个小面能让 CAM 软件卡死。拿这种 STEP 去报价,加工厂多半会问你要「真正的」图。
适合:对方只是要一个能打开的 STEP 文件、不需要在里面继续编辑的场合。
照尺寸重画一遍
打开 CAD 软件,按尺寸把零件重新画一遍。结果是精确的,也是最干净的。
代价是时间:一个零件几小时,而且 .scad 一改,又得重来。对参数化的东西来说,这等于放弃了参数化。
适合:只需要转这一次、零件很简单的情况。
我们做的:在浏览器里直接转
Forgent3D 的 OpenSCAD 转 STEP 走的是另一条路。执行代码的是 OpenSCAD 本体,所以语言行为和你本机一致,module、function、include、use、MCAD 和 BOSL2 都认;然后由一个 CAD 内核把每个图元和布尔运算重建成精确几何,圆就是真圆柱,再导出 STEP。
用法就是把 .scad 文件或者整个项目文件夹拖进去,看一眼预览,点导出。不用安装,不用登录。Customizer 参数会变成滑块,先调好尺寸再导。
它也有做不到的:hull() 和 minkowski() 对常见形状精确,碰到没有精确解的会近似并明确告诉你;带 twist 的 linear_extrude 没有精确形式;import() 进来的 STL 还是面片。这些都写在兼容性那一页,我们用 Thingiverse 上几千个真实文件测过,大多数能直接转。
怎么选
- 只想要一个能打开的文件,不改:网格转 STEP 最快。
- 要在 CAD 里继续改、要给加工厂、要 CAM:需要真正的 B-rep,用 FreeCAD 工作台或者我们的转换器。
- 零件简单、一辈子只转一次:重画也行。
如果你还没决定,先把文件拖进转换器看看。不行它会告诉你为什么。