用于 CNC 机床的 OpenSCAD 文件如何到达主轴
OpenSCAD 从不接触主轴。它是脚本驱动的实体建模器:你写代码,它构建网格,你导出该网格。CNC 机床只理解 G 代码,而 G 代码来自 CAM 软件读取网格或 B-rep 实体。所以真正的问题不是 OpenSCAD 能否与控制器通信。它不能。问题是 OpenSCAD 给你的网格是否足够好,让 CAM 能准确生成刀路。
这条链有四环。OpenSCAD 脚本变成 CSG 树。树被求值为三角网格。该网格导出为 STL,或通过插件导出为 CAM 可细化的格式。CAM 导入它,选择刀具,生成刀具路径。后处理器将这些路径转换为特定机床的 G 代码。
每一环都会引入误差。CSG 树是精确数学。网格是近似。OpenSCAD 中的圆柱实际上是由 $fn 段构成的多边形。如果 $fn 为 32,Ø50 mm 内孔不是圆的,而是 32 棱柱。CAM 会忠实切削该棱柱,内孔将超出公差。
这是核心工程含义:OpenSCAD 输出是网格细分近似,而 CNC 加工会保留你交给它的任何近似。该工作流可行,但必须在导出前控制网格细分,而不是之后。
- 1CSG 树是精确的布尔运算和基本体在网格化之前按真实实体计算。
- 2网格是近似的曲线变成平面小面;质量由 $fn、$fa、$fs 决定。
- 3CAM 信任网格刀路跟随你导出的小面,包括其误差。
交给加工师傅的导出格式选择
STL 是默认格式,也是任何圆形特征的最弱选择。它只存储三角形,没有单位、没有特征名称、没有解析曲面。带平底型腔和钻孔的 3 轴零件用 STL 没问题。带 Ø20 mm 凸台、球面座或螺旋螺纹的零件则不行。
STEP 是机加工车间偏好的格式,因为它携带解析几何。OpenSCAD 不原生导出 STEP。你可以在 B-rep 软件中重建模型,或使用将曲面拟合到网格的转换路径。第二种路线在紧曲线上损失精度。如果你的零件在曲面上的公差紧于 ±0.05 mm,请重建。
3MF 和 AMF 增加了单位和元数据,但仍是网格格式。它们有助于文件规范,无助于圆度。不要指望它们带来更好的圆弧。
实用规则:如果零件是棱柱形,且每条曲线都是你将钻孔或铰孔的孔,高分辨率 STL 就够。如果零件是雕塑形、有机形,或曲面有轴承配合,请交付 STEP。
- 1STL,高 $fn适合支架、板件、棱柱形壳体、钻孔。
- 2STEP曲面配合、轴承、密封槽、球面需要。
- 33MF / AMF增加单位和元数据;仍基于网格,无解析曲线。
决定公差的网格细分设置
OpenSCAD 提供三个控制项:$fn、$fa 和 $fs。$fn 强制固定段数。$fa 设置每片段的最小角度。$fs 设置最小片段长度。最后一个对加工最重要,因为它将小面尺寸与毫米尺寸绑定。
对于 Ø50 mm 圆柱,$fn = 32 产生约 4.9 mm 宽的小面,弦高误差接近 0.19 mm。这远超 ±0.005 mm。提高到 $fn = 128 可将弦高误差降至约 0.012 mm。对于轴承内孔,你会设得更高,或将其建模为钻孔和铰孔,而不是建模圆柱。
不要简单地在所有地方设 $fn = 512。文件大小增长,CAM 重新生成变慢,某些 CAM 内核会因密集网格而卡顿。对曲面特征设 $fs = 0.05 和 $fa = 1,让 OpenSCAD 按基本体选择段数。
还有一个陷阱:小特征会消失。1 mm 圆角在粗网格细分下变成倒角,然后消失。发送前在查看器中检查导出的网格。放大每条曲线。
- 1$fs = 0.05将曲面上的小面长度限制在 0.05 mm。
- 2$fa = 1在大半径上保持角度步长精细。
- 3检查网格发送文件前在查看器中放大曲线。
OpenSCAD 零件的适用与不适用场景
当零件由规则定义时,OpenSCAD 表现出色。带 40 个相同鳍片的散热器、带孔图案的板件、壁厚作为变量的参数化壳体。改一个数字,重新生成,模型更新。这是真正的工程价值,而 CAM 不关心模型如何创建。
当零件由自由曲面定义时,它很吃力。放样、样条、成型拔模斜度和有机形状难以脚本化,且产生沉重网格。在 B-rep 软件中手工雕塑的曲面加工效果更好,因为 CAM 可以偏移真实曲面而不是小面。
螺纹属于灰色地带。在 OpenSCAD 中建模螺旋螺纹会产生数千个微小面片。实际做法是按公称小径建模为普通圆柱,并在图纸上标注螺纹规格。由加工方攻丝或车削螺纹。这样结果更坚固,成本也更低。
在表面雕刻文字和 logo 是另一种情况。OpenSCAD 将文字渲染为轮廓并拉伸。对于浅雕刻没问题,但要检查最小笔画宽度。低于约 0.5 mm 时,1 mm 立铣刀无法干净地加工出来。
- 1适合棱柱类零件、重复特征、参数化系列、支架。
- 2不适合自由曲面、注塑拔模、有机壳体、雕塑造型壳体。
- 3螺纹按小径建模,并在图纸上标注螺纹。
机加工车间如何处理你的文件
文件到达后,编程员将其导入 CAM,检查网格错误,并构建装夹方案。导出的网格中常见非流形边和法线翻转。它们会导致 CAM 失败,更糟的是生成切入零件的刀路。修复需要时间,有时需要重新导出。
接下来是刀具选择和工件夹持。在 OpenSCAD 中看起来简单的零件,可能因为没有平面可夹持而需要定制软爪。在模型中添加夹持凸台或平面基准,之后再切除。为工件夹持而设计是面向加工设计的一部分。
我们运行 127 台高精度 CNC 机床,包括 16 台五轴联动加工中心和 16 台车铣复合中心,最大加工尺寸 4,000 mm。公差保持在 ±0.005 mm,精加工表面粗糙度 Ra 0.2–0.8 μm,加工态表面 Ra 1.6–3.2 μm。网格化模型本身无法保证这些数字,工艺才能。
发送 STEP 文件或网格质量良好的 STL,外加标注基准、公差和螺纹的图纸。报价和免费 DFM 分析在 12 小时内返回,生产可在 24 小时内启动。
- 1网格修复非流形边和法线翻转会阻塞 CAM;在导出时修复。
- 2工件夹持添加平面基准或夹持凸台,之后再加工掉。
OpenSCAD 导出格式与零件类型对照
选择与你所加工特征匹配的格式和分辨率。
| 零件特征 | 导出格式 | 分辨率设置 | 注意事项 |
|---|---|---|---|
| 平板、钻孔 | STL | 孔上 $fn = 64 | 孔径为公称值,配合由钻头决定 |
| 支架、棱柱类壳体 | STL | $fs = 0.05 | 检查圆角半径在网格化后是否保留 |
| 轴承内孔、密封槽 | STEP | 在 B-rep CAD 中重建 | 网格面片误差超出配合公差 |
| 球面或曲面座 | STEP | 在 B-rep CAD 中重建 | 面片会留下痕迹 |
| 散热器、重复散热片 | STL | 每片散热片 $fn = 32 | 薄散热片在低 $fn 下可能消失 |
| 雕刻文字、logo | STL | 轮廓上 $fs = 0.02 | 笔画宽度低于 0.5 mm 无法加工 |
| 螺纹 | STL 普通圆柱 | 公称小径 | 在图纸上标注螺纹 |
用于 CNC 机床的 OpenSCAD 文件:常见问题
OpenSCAD 能直接输出 G 代码吗?
不能。OpenSCAD 生成几何体,而非机床指令。G 代码来自 CAM 软件,它读取你导出的网格或实体,选择刀具并生成刀具路径。
任何声称能将 SCAD 转为 G 代码的工具,实际上都是在后台执行网格导出和 CAM 处理。
加工零件应该用多大的 $fn 值?
取决于半径。对于 Ø50 mm 圆柱,$fn = 128 可将弦高误差保持在约 0.012 mm。低于此值,圆形特征会偏离严格公差。
更好的习惯是全局设置 $fs = 0.05 和 $fa = 1,然后仅对需要的基本体覆盖 $fn。
带轴承配合的零件可以发送 STL 吗?
可以,但要做好沟通准备。STL 面片无法可靠地保持 ±0.01 mm 的轴承配合,因为表面是多边形近似。
要么发送 STEP,要么将内孔按公称尺寸建模为普通圆柱,让加工方钻孔并铰孔至配合尺寸。
为什么我的网格无法导入 CAM?
常见原因是非流形边、法线翻转,或两个实体恰好接触处的零厚度壁。
将重叠实体偏移 0.01 mm,使布尔运算产生干净的相交,然后重新导出。网格修复工具可以修补小间隙,但无法修复错误的布尔几何。
OpenSCAD 适合量产还是仅适合原型?
两者都适合,只要零件几何形状合适。具有重复特征的参数化零件扩展性好,因为模型可在任何尺寸下干净地重新生成。
我们承接从 1 件原型到 10,000+ 件的批量生产,无最小起订量,因此文件格式比批量大小更重要。
发送文件时如何保密设计?
上传内容按安全和保密方式处理,我们可在你发送任何内容前应要求签署 NDA。
仅发送报价所需的几何体。从文件元数据中删除内部备注、客户名称和修订历史。
