本页解决的问题
车间里大多数圆弧错误是算术错误,不是控制错误。
单个圆弧程序段背后的几何关系
圆弧是圆上两点之间的部分。在 CNC 程序段中,你从不描述整个圆。你给控制器一个起点、一个终点、一个方向,以及足以确定经过这两点的唯一圆的数据。下面的一切都由此推导。
连接两点的直线是弦。从弦中点到圆弧的距离是矢高。两条指向端点的半径之间的夹角是圆心角,通常写作 θ。这三个值相互关联,知道其中任意两个就能求出第三个。
其中两个值可以直接从图纸上得到。弦是两个可用卡尺测量的特征之间的距离。矢高是圆弧高出该弦的高度,可用高度规或光学投影仪测得。半径通常是未知量,因为小特征上的大半径很难直接测量。
计算示例。图纸给出弦长 5,285 mm,半径 3,359 mm。弦长减半得 2,642.5 mm。弦中点、圆心和一个端点构成直角三角形,因此矢高可由勾股关系求得:s = R − √(R² − (c/2)²)。代入数值得 s ≈ 1,096.7 mm。这是一个浅圆弧,在 5,285 mm 跨度上约升高 1,096 mm。
求出矢高后,圆心角由 sin(θ/2) = (c/2) / R 求得。此处 θ/2 ≈ 51.85°,所以 θ ≈ 103.7°。弧长则为 L = R × θ(θ 以弧度计),约为 6,079 mm。将弧长与弦长对比,可以知道该移动实际覆盖了圆周的多少。
向控制器提供圆弧数据的两种方式
R 格式是短格式。你写出终点和一个半径值,由控制求解圆心。它紧凑,在屏幕上易读。问题在于,任意两点都有两个相同半径的圆经过,R 的正负决定取哪一个。正 R 取 180° 或更小的圆弧;负 R 取大于 180° 的圆弧。
I 和 J 格式是长格式。不用半径,而是给出从起点到圆心的矢量,沿 X 和 Z 测量。I 是 X 分量,J 是 Z 分量,K 用于铣床的 Y 轴。由于圆心是明确给出的,圆弧位于弦的哪一侧没有歧义。
这种歧义正是 R 程序段比 I/J 程序段更容易出错的原因。R 的舍入误差可能把圆心放到弦的错误一侧,控制器会拒绝该程序段,或者更糟,沿错误方向切出一段浅圆弧。整圆时起点和终点重合,仅靠 R 根本无法确定圆心。
圆弧短、几何简单、需要人工阅读程序时,选 R。圆弧超过 180°、是整圆,或同一轮廓由 CAM 输出成千上万次时,选 I 和 J。增量圆心矢量在反复后处理中不会漂移。
圆弧参数及其校验方法
符号遵循 ISO 6983,另有说明除外。
| 价值 | 符号 | 公式 | 适用场景 |
|---|---|---|---|
| 半径 | R | 已知或求解 | 决定其他所有值 |
| 弦 | c | c = 2R sin(θ/2) | 图纸上两个可测点 |
| 矢高 | s | s = R − √(R² − (c/2)²) | 高度规或投影仪校验 |
| 圆心角 | θ | θ = 2 arcsin((c/2)/R) | 决定弧长 |
| 弧长 | L | L = Rθ(θ 以弧度计) | 进给率和循环时间计算 |
| 圆心偏移 | I、J、K | I = Xc − Xs | 增量圆弧程序段 |
| 凸度 | b | b = 2s/c | 部分 CAM 后处理和 DXF 圆弧 |
算术与机床的交汇点
CNC 机床操作工在车间实际使用的计算方法不是完整推导,而是快速校验:弧长是否与图纸给出的弦长和半径相符?偏差超过零点几毫米,通常意味着程序段中某处数字写错了。
公差在这里很重要。对于公差 ±0.005 mm 的零件,几何正确但坐标被截断的圆弧仍可能超差。在 3,000 mm 半径上把 I 和 J 截断到三位小数,圆心偏移量会超过公差。圆心矢量应保留完整精度,让后处理负责舍入。
控制器行为也有差异。有些控制在编程终点不在 I、J 定义的圆上时报警。另一些则悄悄把终点移到该圆上最近的点。后者在试切时更宽容,在生产中更危险,因为错误永远不会以报警形式出现。
对于非常浅的圆弧,另一种选择是完全不用圆弧,而用一系列 G01 移动。每个短段的弦误差必须保持在公差以内,这意味着半径越大,段长越短。在 4,000 mm 的导轨上,这可能意味着大量程序段,但刀路变得可预测且易于验证。
哪种格式适合你的零件
小半径、短圆弧、手工编程:R 即可。两个候选圆心相距很远,正负号约定容易记住。大多数操作工扫一眼 R 程序段就知道刀具会怎么走。
长圆弧、整圆或 CAM 输出:用 I 和 J。尤其是整圆不能用 R 编写,因为起点和终点相同。有些控制只有在圆心矢量明确时才接受整圆。
当圆弧是配合面的一部分时,首件下机后要检查弦长和矢高。浅圆弧用比对仪叠加检查,比任何 CMM 程序都更快发现误差。如果圆弧不对,原因通常在程序段,不在机床。
钜亮五金(GreatLight)在 16 台五轴联动加工中心上加工圆弧密集的轮廓,共有 127 台高精度 CNC 机床,最大加工尺寸 4,000 mm。圆弧段在加工过程中和发货前都会验证,检测报告可按需提供。
我们收到的圆弧计算问题
为什么控制系统会拒绝一个看起来正确的 R 程序段?
R 的符号决定控制系统使用两个可能圆心中的哪一个。正 R 选择 180° 或更小的圆弧,负 R 选择大于 180° 的圆弧。如果符号与几何形状不符,控制系统要么报警,要么切错一侧。
R 值的舍入也可能把圆心推过弦,这样该半径的圆就无法同时通过两个端点。大半径至少保留四位小数,或者改用 I 和 J。
可以用 R 编程整圆吗?
不行。整圆的起点和终点相同,仅凭半径无法确定圆心,控制系统无法选定一个圆。
用 R 把整圆写成两个 180° 半圆,或者用 I 和 J 给出明确的圆心矢量。I 和 J 方式更干净,也是大多数后处理器输出的方式。
首次切削前如何手工检查圆弧?
从图纸取弦长和半径,计算矢高:s = R − √(R² − (c/2)²)。再检查弧长 L = Rθ,θ 用弧度。
如果弧长和弦长与图纸所示不一致,程序段就有笔误。这项检查不到一分钟,能抓住浅圆弧上的大多数后处理错误。
什么时候应该用 G01 移动代替圆弧?
当圆弧很浅、短线段的弦误差保持在零件公差以内时。半径越长,每段就必须越短才能保持相同的弦误差。
这在大半径轮廓上很常见,此时控制器的圆弧插补不是限制因素。代价是程序长度和加工节拍,不是精度。
圆弧格式会影响表面处理吗?
间接影响。R 符号错误可能产生方向错误的浅圆弧,在接刀处表现为台阶。圆心数据完整精确的正确程序段切削干净。
在我们的机床上,铝和不锈钢的圆弧轮廓通常控制在 Ra 0.8 到 1.6 μm 之间,图纸要求更细时可做到 Ra 0.2–0.8 μm。
DXF 或 CAM 后处理中的凸度(bulge)是什么意思?
凸度是描述两点之间圆弧的另一种方式。它等于两倍矢高除以弦长,符号表示方向。
凸度为零就是直线。一些 CAM 系统和 DXF 文件这样存储圆弧,因为它在格式转换中不会丢失圆心。
