OpenSCAD 转 STEP 兼容性
转换器把什么重建成精确几何、哪里会近似、哪些还不支持。做不到精确的地方,构建时都会明确告诉你,不会悄悄近似。
能精确转换的
- 完整的语言。 执行代码的就是 OpenSCAD 本体:module、function、循环、列表推导、include 和 use 全都支持。在 OpenSCAD 里能跑的,这里的理解方式完全一样。
- 真曲面。 圆、圆柱、球、圆锥一律转成精确的解析曲面,不受 $fn 影响。$fn 小于等于 12 时保留你要的多边形——$fn = 6 的六角螺母还是六角。
- 实体与布尔运算。 union、difference、intersection、linear_extrude、rotate_extrude、offset、mirror 和任意变换都重建成实体,不做三角化。
- 常用库内置。 MCAD、Write.scad 和 Thingiverse 的 build_plate 开箱即用,和桌面版 OpenSCAD 一样,不用随项目打包。
- 多文件项目。 include 和 use 按你真实的文件夹结构解析。缺文件会直接报错停下,而不是悄悄导出一个少了一块的零件。
目前的限制
- - hull() 和 minkowski() 对常见形状是精确的;没有精确解的情况会做近似,构建时给出告警并写明面片数。
- - 带 twist 的 linear_extrude 没有精确的 B-rep 形式,按平面小面拼出来,和 OpenSCAD 自己的做法一样。
- - text() 由 OpenSCAD 自己排版,字形轮廓精确转换。内置的是 OpenSCAD 自带的 Liberation 字体;用了你电脑上的其他字体,把 .ttf / .otf 放进项目文件夹、用 use <> 引入,否则文字会和本机不一样。
- - import() 读入的 STL / DXF / SVG、surface() 高度图和 projection(cut = false) 先由 OpenSCAD 渲染,再转成面片实体:STEP 里这部分是平面小面,不是解析曲面,构建时会告警并写明面数或边数。转出的 3D 面片上限 8000 个,超过会报错。数据文件和 .scad 放在同一个项目文件夹里一起加载。
我们怎么测
我们用 Thingiverse 上 7378 份真实的 .scad 文件整批构建,并和 OpenSCAD 自己的渲染结果对照。其中 95% 能直接转换。
打开转换器 →