17 吋鍛造鋁圈:C 台中心偏 20 µm,沒校正的控制器讓五支輻條各細約 40 µm、螺栓圓整組偏 36 µm,校正過的切回名目¶
17 吋鍛造鋁圈是 AI 代理 (agent) 只用三個公開的安裝尺寸數字,自己設計、自己寫程式的一體 6061 輪圈。它的第一次裝夾 OP30 是四支 Fanuc G43.4(RTCP)程式:HiNC 從代理的刀位點寫回,已經在通用的工作台 C 軸/擺頭 B 軸五軸機上通過驗收。
- T1 粗銑五個輻條窗,全程在 C 0。
- T2 以五軸側銑窗的 7° 拔模壁,B −7°,C 跟著壁面轉。
- T3 鑽螺栓孔、T4 做 60° 錐座,兩者都停在 C −3366°,這個角度就是 234°。
這一頁,代理在這台機的 C 台上放一個常見的幾何誤差。C 台實際的旋轉中心,比控制器運動學模型所定的位置偏 +X 20 µm;ISO 230-1 與 ISO 230-7 把這個誤差稱為 EX0C。它做成機台鏈上的一條連接,標記為誤差項。程式一行都沒改,整個輪圈以 0.5 mm 的網格切了四次:
- 誤差項關:切出名目件。其他全量趟的幾何差異比對,都以它為基準。
- 誤差項再關一次,並做幾何差異比對:這是對照趟,用來量雜訊底。
- 誤差項開、有標記:控制器不知道這個誤差,相當於運動學沒有校正。
- 誤差項開、清掉標記:控制器知道這個誤差,相當於運動學校正過。
誤差開的兩趟都打入 G54 X 0.020,也就是真機在 C 0 對刀(碰數)會量到的工作偏移。
控制器不知道誤差時,157,412 個切削步的刀尖全部落在計畫預測的位置上,相差不到 1.6×10⁻¹³ mm。預測是 δ = (d(1 − cos C), −d·sin C, 0),其中 d = 20 µm:C 0 時沒有偏移,C 跟著窗壁轉時最多 40 µm,在 234° 是 (31.8, 16.2) µm。零件上的結果:
- 朝 −X 的窗壁過切 39.7 µm,朝 +X 的窗壁不變。
- 每個窗整個往 +X 移 20 µm,每一面又多切 20 µm,所以五支輻條各細 38.2 到 41.3 µm,看起來就像刀具半徑大了 20 µm。
- 五個孔連同錐座整組朝 27° 平移 35.6 µm,螺栓圓不再對準車好的中心孔。
控制器知道誤差時,刀尖留在程式上,相差不超過 4.92×10⁻¹² mm,切出的就是名目輪圈。不一樣的只有機台的動作:每個切削步,X 軸的位置都比名目趟往 +X 多 20 µm。這裡的一切都是仿真,沒有切過任何輪圈。

有標記那一趟記下的毛胚,連同幾何差異放回畫布;接著播一支不切料的停刀程式,讓 T2(Ø12 mm 端銑刀,從 80 mm 熱縮刀把伸出 55 mm)傾 7° 停在窗 0。刀旁是輻條 0 朝窗 0 的側面,它朝 −X,過切 39.7 µm(紅)。五個錐座朝 27° 那一側紅、對側藍。色階 ±0.04 mm:紅=過切、藍=留料、綠=0,正負同權重。HiNC 3.2.46 開發版(含誤差項),0.5 mm 網格。
| 整個輪圈 OP30,0.5 mm,HiNC 3.2.46 開發版(含誤差項) | 依計畫公式的預測 | 有標記:控制器不知道誤差 | 清掉標記:控制器知道誤差 |
|---|---|---|---|
| 刀尖離程式多遠,切削步 | δ(C):C 0 時為 0,C 跟著窗壁轉時最多 40 µm,234° 時 (31.8, 16.2) µm | 157,412 步全部落在 δ 上,相差 ≤ 1.58×10⁻¹³ mm;最多 0.040 mm(T2)、0.036 mm(T3、T4)與 8.99×10⁻¹⁴ mm(T1) | ≤ 4.92×10⁻¹² mm |
| 朝 −X 的窗壁,中位偏差 | −39.685 µm | −39.686 µm | 0(10⁻⁶ µm 以下) |
| 五支輻條,寬度變化 | −38.16 到 −41.25 µm | −38.17 到 −41.25 µm | 0 |
| 五個螺栓孔,中心平移 | 35.64 µm、朝 27.0° | 35.63 µm、朝 26.96° | 0 |
| 車削面、輪輞與輻條正面 | 0 | 不變:有對應頂點的 5,653,587 個車削面頂點,距離都與清掉標記那一趟相同 | 不變 |
| 機台 X、Y 與名目趟相比,切削步 | 清掉標記時為 (20(1 − cos C), 20·sin C) µm,照計畫所寫(難題 2) | 打入的 G54 X 0.020 隨 C 轉 | 每一步 X +20.000 µm,Y、Z 為 0 |
| 這一趟的伺服器時間與記憶體峰值 | — | 350.3 秒、17.69 GiB | 350.4 秒、17.80 GiB |
案例¶
輪圈本身的案例頁講代理怎麼設計輪圈、寫刀路,並讓 HiNC 寫出與重播 G43.4 程式;這一頁從它驗收過的第一次裝夾開始。代理拿到的是:
-
驗收過的專案與程式。 OP30 專案的輪圈正面朝上。程式原點在輪軸與安裝面的交點,+Z 朝外,G54 是 (0, 0, −506.45)。程式共四支,行數與 B、C 值是設計代理(草擬這項研究的代理)讀 NC 得到的:
- T1 是 Ø20 mm 端銑刀,用 30,992 行粗銑五個窗。全程 B 0、C 0,窗壁留 0.5 mm。
- T2 是 Ø12 mm 端銑刀,用 9,404 行側銑 7° 拔模的窗壁:先留 0.4 mm 半精,再精修。B −7°,C 從 −54° 一路轉到 −3366°。
- T3 是 Ø15 mm 鑽頭,T4 是 Ø25 mm 60° 錐座刀,兩者都在 B 0、C −3366°。
-
HiNC 的誤差項。 機台鏈上的軸或主軸可以帶一個誤差項,也就是緊接在那根軸的連接之前、一條自己的靜態連接。控制器
XyzabcSolver負責把 NC 與刀位點轉成機械座標,含 RTCP;它一律在名目鏈上求解,名目鏈就是把每一條標記的連接都拿掉的同一條鏈。專案的啟用誤差項開關開著時,仿真的機台在運動、切削與檢查碰撞時,都保留這條連接。所以誤差會切進零件,就像一台控制器不知道自身誤差的真實機台。清掉標記,控制器就把這條連接算進去;在 RTCP 下,這就是運動學校正過的控制器(誤差項連接 (Error-Term Branches),英文,未鏡像)。 - 對刀與 P0。 C 軸上游只放一條平移時,即使 C = 0,工作台也會移動一個誤差量。真機對刀量到的 G54 已經含有這段偏移;HiNC 的 P0 在名目鏈上量,所以不含。要重現真機的結果,手冊建議手動打入對刀會量到的工作偏移(有誤差項的機台上的工作偏移)。
- 要求。 HiNC 的產品擁有者要以驗收過的案例為基礎,做 HiNC 誤差項的實作案例,產品案與論文案都可以;吃重的執行放到一台共用的伺服器上跑。
沒有任何資料寫明的:
- 這台機的 C 台中心偏多少、往哪邊偏。 這台機是為這些案例建的通用機,沒有量測可引。代理取旋轉軸位置誤差的典型值 20 µm,方向取 +X。
- 對刀會量到的 G54。 代理從機台鏈自己推。假設真機在 B = C = 0 探中心孔,設定 G54 的 X 與 Y(輪圈常見的做法),量到的就是 (0.020, 0, −506.45)。
- 0.5 mm 的網格看不看得出這個誤差。 20 µm 只有格寬的 4 %,最深的偏差 39.7 µm 也只有 8 %。
- 螺栓孔也會動。 鑽孔與錐座的程式跑在 C −3366°,正是 T2 結束時的角度;要讀 NC 才看得到。
代理建了什麼¶
每個值都標明是讀取(來自原案例或文件)、推得(由讀到的值算出)或自選(代理自己的決定)。
| 項目 | 值 | 來源 |
|---|---|---|
| 誤差是什麼 | C 台實際的旋轉中心比設計位置偏 +X;設計位置就是控制器運動學模型所用的位置。在 ISO 230-1 與 ISO 230-7 裡,這是 EX0C,也就是 C 軸平均線在 X 向的位置誤差 | 自選:誤差的種類與正負號;推得:ISO 代號 |
| 大小 | 0.020 mm,以 X 錨點的座標表示;這台機的 X 錨點軸向就是機台的軸向 | 自選:旋轉軸位置誤差的典型值;這台通用機沒有量測過 |
| 放在哪 | C 軸連接的正上游。這台機的 C 台騎在 X 軸上,所以新錨點 Cerr 把 X→C 這一段一分為二。前一段 X→Cerr 命名為 EX0C,帶 Static Translation (0.020, 0, 0),標為誤差項。C 軸的 Dynamic Rotation(旋轉軸向 (0, 0, −1)、樞軸點 (0, 0, 0))整個搬到 Cerr→C,C 軸重新繫結到它,值不變 |
自選,依產品擁有者 2026-10-06 的裁定(難題 1) |
| 機台鏈 | [O][base][Y][X][Cerr][C][w];[base][Z][B][S][t] |
建置後讀取回來 |
| 工作偏移 | 誤差開的兩趟用 G54 = (0.020, 0, −506.45),也就是對刀會量到的值;名目與對照兩趟用案例原本的 (0, 0, −506.45) | 推得 |
為什麼選 C 台中心,而不選 B 擺頭的樞軸偏移?設計代理比較過兩者:
- OP30 的 B 只有 0 與 −7°。B 的樞軸偏移到了 B −7° 只剩約 12 %,而且每一面窗壁都一樣;T1、T3、T4 完全不受影響。
- 這幾支程式用 C 的方式有三種:停在 C 0、跟著壁面轉、停在 234°。同一個誤差,在同一個零件上給出三種結果。
- 這些程式都用
G43.4。只有在 RTCP 下,有標記的誤差(沒校正的控制器)和不標記的誤差(校正過的控制器)才會切得不一樣。

設備頁拓樸欄的機台叢集(GeneralMechanism)。X 與 C 之間多了錨點 Cerr。EX0C 是從 X 到 Cerr 的 Static Translation,畫成粗線,帶橘色「誤差項」徽章。C 軸的 Dynamic Rotation 搬到 Cerr → C,仍擔任 C 軸。圖下方是同一張擷取中 X → Cerr → C 這一段的放大。HiNC 3.2.46 開發版(含誤差項),繁體中文介面。
刀尖會偏多少:計畫裡寫下的預測。 控制器以為工作台繞設計的中心轉,實際上它繞著偏了 d = 20 µm 的中心轉。C = 0 時,工作台多移的那段 d 已經含在對刀量到的 G54 裡,所以刀尖剛好落在程式上。C 轉到別的角度時,零件比控制器以為的多移了一段;換算到程式座標,刀尖偏了
δ = (I − RZ(C))·d = (d(1 − cos C), −d·sin C, 0)。
它的長度是 2d·|sin(C/2)|,C ≡ 180° 時最大,為 40 µm。δ 只看 C:與 B、刀長,以及點在零件上的位置都無關。零件表面偏多少,看 δ 在表面法向上的分量:
- T1 粗銑:全程 C 0,δ = 0。T1 本來就留 0.5 mm 給 T2,所以成品上沒有任何面來自 T1。
- T2 側銑:C 等於 φ,也就是牆面朝窗內法向的方位角,所以法向偏差是 cos 7°·d·(cos φ − 1):朝 +X 的牆是 0,朝 −X 的牆是 −39.7 µm(負=過切)。δ 可以拆成兩項,δ = (d, 0) − d·(cos φ, sin φ)。前一項讓整個窗往 +X 移 d;後一項讓每一面都多切 d,就像刀具半徑大了 d。所以五支輻條各細 38 到 41 µm,而輻條 0 少掉的全在窗 0 那一側。
- T3 鑽孔、T4 錐座:這時 C ≡ 234°,所以 δ = (1.588, 0.809)·d = (31.8, 16.2) µm,長 35.6 µm、朝 27°。五孔與錐座整組平移,螺栓圓偏離車好的中心孔;孔距與孔徑不變。60° 錐座的法向偏差是 ±30.9 µm。
- 車削面、輪輞、輻條正面:0。
- 清掉標記時,計畫寫的是:「機台 X、Y 多走 (d(1 − cos C), d·sin C),最多 40 µm;刀尖回到程式上」。機械座標實際怎麼走,見結果與難題 2。
各趟:
| 趟 | 網格 | 誤差項開關 | EX0C | G54 | 用途 |
|---|---|---|---|---|---|
| 名目,修剪 | 1 mm | 關 | 有標記(未生效) | (0, 0, −506.45) | 修剪:名目 |
| 有標記,修剪 | 1 mm | 開 | 有標記 | (0.020, 0, −506.45) | 修剪:控制器不知道誤差,做幾何差異比對 |
| 名目 | 0.5 mm | 關 | 有標記(未生效) | (0, 0, −506.45) | 匯出切削件,當作理想幾何 |
| 對照 | 0.5 mm | 關 | 有標記(未生效) | (0, 0, −506.45) | 做幾何差異比對,量雜訊底 |
| 有標記 | 0.5 mm | 開 | 有標記 | (0.020, 0, −506.45) | 做幾何差異比對;匯出切削件 |
| 不標記 | 0.5 mm | 開 | 清掉標記 | (0.020, 0, −506.45) | 做幾何差異比對;匯出切削件 |
各趟共同的設定:
- 物理關。 這一案只看幾何,切削力與撓曲不在範圍內。
- 碰撞偵測開,失敗時不暫停。每一步是主軸一轉。
- 只有這四支程式。 啟用 NC 條目
op30-t1-rough.cls.nc、op30-t2-flank.cls.nc、op30-t3-drill.cls.nc與op30-t4-seat.cls.nc;任務裡其他程式條目都關著,包括刀位點檔、扇區程式、優化後的程式與停刀程式。 - 幾何差異比對(工作流程:幾何驗證):偵測半徑 1 mm,色階(
DiffVisualRadius)±0.04 mm。 - 記下的毛胚。 全量的對照、有標記與不標記三趟,各自記下最後的毛胚;拍圖時把它放回畫布。
代理怎麼管理這件工作¶
- 先寫標準與預測。 計畫、預測與七條標準在 2026-10-06 20:23:51 提交;第一趟在 20:24:14 開始。
- 先跑修剪趟。 整個 OP30 以 1 mm、物理關播兩趟,一趟名目、一趟有標記,各 183,870 步。這兩趟確認三件事:建置正確、推出的 G54 正確(T1 每一步 δ = 0)、逐步公式成立。設計代理原本提議用 72° 扇區,並把誤差放大十倍來展示;計畫改成整輪 1 mm、真實值。
- 全量四趟,一次一趟。 0.5 mm、物理關、碰撞偵測開。四趟在同一個私有實例上依序跑,每趟開始前都重啟實例、從檔案重新載入專案。伺服器上的各項研究共用一把鎖,四趟都在同一次持鎖中跑完。計畫的停止條件都沒有碰到:伺服器記憶體留 50 GB 以上才開跑,單趟超過 40 GB 就停。
- 以名目切削件為理想幾何。 名目趟匯出切出的工件,10,923,528 個三角形,設成理想(目標)幾何,偵測半徑 1 mm。這樣幾何差異只顯示誤差改變了什麼,不含刀路本身留下的痕跡。
- 播 NC 條目,不播刀位點條目。 NC 把 C 寫死,結果就不依賴工作階段的歷史。刀位點轉 NC 的寫回關掉,誤差項專案的程式就不會被改寫。
- 每個數字都從紀錄算。 代理的分析腳本從執行紀錄算出本頁的數字,每個數字都附出處,可以重跑;寫作時另算的少數幾個,例如不標記減有標記的機械座標,也取自同一批逐步序列。特徵——窗壁、孔、錐座、車削面——用原案例輪圈腳本的設計幾何來挑。
- 畫面兩種介面語言各拍一套。 把各趟記下的毛胚連同幾何差異放回畫布來拍,不必為了拍圖重播。
- 人在哪裡介入。 HiNC 的產品擁有者要以驗收過的案例為基礎做誤差項的實作案例;同一天看過介面後又裁定,誤差項只放在角色連接(軸或主軸)的上游。這個裁定讓設計從一對平移改成一條平移加打入的工作偏移(難題 1)。誤差、預測與標準都是代理自己定的。
第一次播放前提交的標準:
| # | 標準 |
|---|---|
| 1 | 建置:誤差項專案重開沒有載入訊息;EX0C 是標記的 Static Translation (0.020, 0, 0)、在 X→Cerr;C 軸繫結在 Cerr→C、值與原本相同;角色檢查為空;案例在誤差項資料夾以外的檔案沒有變 |
| 2 | 每一趟 Finished、183,870 步(有標記與名目相差 1 % 以內亦可)、接觸(IsTouched)峰值 1;沒有碰撞、快移切料或行程警報;做幾何差異比對的趟只多 Diff--TargetNotClosed |
| 3 | 有標記:T1 每個切削步的刀尖與名目相差 ≤ 1×10⁻⁹ mm;每個切削步的刀尖減名目再減 δ ≤ 1×10⁻⁶ mm;T3、T4 的 δ = (1.588, 0.809, 0)·d ± 1×10⁻⁶ |
| 4 | 不標記:每個切削步的刀尖與名目相差 ≤ 1×10⁻⁶ mm |
| 5 | 對照:至少 99 % 的頂點離名目切削件 1 µm 以內 |
| 6 | 零件(有標記對名目,以頂點距離量):(a) 朝 −X 的窗壁中位偏差 −39.7 µm ± max(地板, 5 µm);(b) 五支輻條寬度變化 −38 到 −41 µm ± 5 µm;(c) 五孔擬合中心平移 35.6 µm ± 5 µm、朝 27° ± 5°;(d) T1 留下的面與車削面的偏差在地板內 |
| 7 | 成本:每一趟記下牆鐘時間與記憶體峰值(VmHWM) |
難題¶
每一個都依序寫出情況、若沒發現會有的風險、怎麼發現、怎麼解決,以及證明解法成立的證據。
1. 一對平移,還是一條平移加打入的工作偏移¶
- 情況。 設計代理提議在 C 的前後各放一條平移:前面 +d(
Cpiv-offset)、後面 −d(Cpiv-return)。C 0 時兩者抵銷,G54 與 P0 都不用動,四趟之間只差開關與標記。它也提議把修剪趟縮成 72° 扇區,並把誤差放大十倍來展示。 - 風險。 產品擁有者同一天看過介面後裁定:誤差項只放在角色連接(軸或主軸)的上游。C 後面那一條不在任何角色連接的上游。假如改成一條平移,卻照打案例原本的 G54,在 C 0 切的 T1 也會偏 20 µm,仿真出來的零件就不像對過刀的真機切出來的。
- 怎麼發現。 寫計畫、照裁定修改時發現的;設計代理的紀錄是裁定之前的版本。
- 解決。 只在 C 前面放 EX0C,位置在
X→Cerr。誤差開的兩趟打入對刀會量到的 G54 = (0.020, 0, −506.45);名目與對照兩趟維持 (0, 0, −506.45)。這樣得到的 δ 與成對平移的做法相同。修剪趟改成整輪 1 mm、真實值。 - 證據。 T1 的 130,003 個切削步全在 C 0,每一步的刀尖與名目相差 ≤ 8.99×10⁻¹⁴ mm,表示打入的 G54 推得對。每個切削步的刀尖與公式相差 ≤ 1.58×10⁻¹³ mm,修剪趟與全量趟都一樣。
2. 機械座標要拿哪一趟比:校正過的 X、Y 走的不是計畫寫的那個圓¶
- 情況。 計畫對不標記那一趟的預測是「機台 X、Y 多走 (d(1 − cos C), d·sin C),最多 40 µm」,比較對象是名目趟。手冊也說,誤差項開關開或關,每一步的機械座標都相同。
- 風險。 照預測寫,或寫成「有標記那一趟的機械座標與名目趟相同」,都會與量測不符。把這個差別當成控制器出錯,也不對。
- 怎麼發現。 逐步比較三趟的機械座標時發現:名目趟用 G54 X 0,誤差開的兩趟用 X 0.020。
-
解決。 照量到的寫,三組比較各配自己的式子:
- 不標記減名目:每個切削步都是 (+20.000, 0, 0) µm。校正過的控制器從打入的 G54 X 0.020 扣掉它知道的 0.020 mm,程式原點就落在真正的 C 軸上。整個工作台本來就偏了 20 µm,所以每一點都由名目的運動整個往 +X 平移 20 µm 走到。
- 有標記減名目:RZ(−C)·(d, 0),也就是打入的 G54 隨工作台轉。控制器看不到 EX0C,所以機械座標只差在工作偏移。
- 不標記減有標記:正好是計畫寫的 (d(1 − cos C), d·sin C),長度 0 到 40 µm。
計畫那句話沿用自成對平移的設計,那時四趟用同一個 G54。改成一條平移加打入的 G54 之後,它描述的就是不標記減有標記。「開關不改機械座標」只在工作偏移相同時成立。標準 4 判的是刀尖,不受影響。
-
證據。 三組比較的殘差依序 ≤ 4.7×10⁻¹²、1.28×10⁻¹³ 與 4.8×10⁻¹² mm;B、C 在三趟逐位相同。
3. 真實的 20 µm 在 0.5 mm 的網格上看不看得出來¶
- 情況。 20 µm 只有格寬的 4 %,最深的偏差 39.7 µm 也只有 8 %。
- 風險。 設計代理預期這個誤差會淹沒在體素雜訊裡,所以提議畫面用放大十倍的誤差。計畫留了一趟 ×10(0.2 mm、G54 X 0.2)備用,只為了畫面。那樣畫面就得另外說明怎麼換算,輪圈也要多跑一整趟。
- 怎麼發現。 計畫事先寫好判準:看兩個結果再決定。一個是同一批另一個誤差項案例的全量結果,那是 NIST 圓錐台,真實誤差 10 µm、網格 0.25 mm;另一個是本案 0.5 mm 的結果。兩者都直接讀出了預測值。
- 解決。 不放大。所有數字與畫面都是真實的 20 µm,色階 ±0.04 mm。×10 那一趟沒有跑。
- 證據。 十面平面窗壁:量到減預測的中位數 ≤ 0.02 µm,99.999 % 的頂點在預測 ±1 µm 內。螺栓圓平移量到 35.633 µm,預測 35.640 µm。
4. ±0.6 mm 的極值不是誤差¶
- 情況。 有標記那一趟切削件的頂點距離從 −0.585 到 +0.694 mm,比預測最大的 39.7 µm 大十幾倍。執行時的筆記判為加工面邊緣的量測假象,並要求先在頂點資料裡核對過再這麼說。
- 風險。 把它當成誤差,就會說零件切壞了;不核對就排除,說法也站不住。
- 怎麼發現。 分析逐點核對了距離超過 0.05 mm 的 2,899 個頂點。
-
解決。 這些頂點分成兩群:
- 2,856 個在輪輞的車削面上(R 192.39–215.49 mm,中位數在輪桶內面 R 192.4),不在加工面的邊緣。OP30 的刀沒到過那裡,兩趟在那一塊都是同一塊沒動過的毛胚,真實距離應該是 0。切得與名目相同的不標記那一趟,同一批頂點也讀到同一個值。所以這是量法本身的假象,不是誤差。可能的成因(沒有逐點驗證):距離搜尋只看最近 12 個三角形的重心;輪輞旋轉面由細長的三角形組成,重心離頂點很遠,真正的那一面可能不在這 12 個裡。輪圈原案例在它的車削面上也遇過同一類問題(它的案例頁難題 11〈檢查檢查的工具〉)。
- 另外 43 個在移位後的孔與錐座的兩條銳邊上:錐座外緣 z ≈ 30,以及孔與錐座的交線 z 23.08。讀值 +0.050 到 +0.061 mm,只在有標記那一趟出現。分析的解讀是:特徵相對網格移了 36 µm,0.5 mm 的網格把銳邊削圓的方式就跟著不同。
各特徵的擬合只用離邊 0.75 mm 以外的頂點。
-
證據。 兩趟的最低與最高距離完全相同。
5. 對照趟沒有自己的切削件¶
- 情況。 標準 5 要對照趟的切削件至少 99 % 的頂點在 1 µm 內,標準 6 的地板也要從對照趟的切削件取。
- 風險。 照原文,兩者都量不到。
- 怎麼發現。 結果裡沒有對照趟匯出的切削件。
-
解決。 改用三項證據代替:
- 對照趟的逐步序列與名目趟逐位相同:刀尖、機械座標與接觸,全部 183,870 步。
- 它的
Diff--Stats與不標記那一趟只差 6 條沒量到的量測線;三個鏡頭的幾何差異畫面,也與不標記那一趟逐像素相同。 - 不標記的切削件 99.944 % 的頂點在 1 µm 內,刀尖與名目相差 ≤ 4.92×10⁻¹² mm。
地板改用不標記切削件偏差絕對值的第 99.9 百分位,4.99×10⁻¹⁰ mm,也就是兩份幾乎相同的網格互量時的浮點雜訊。所以標準 6a 的容差 max(地板, 5 µm) 實際上就是 5 µm,與 6b、6c 相同;6d 的界限則是地板本身。
-
證據。 和結果一起保存的對照趟序列、四趟的
Diff--Stats與擷取畫面。
6. 執行筆記與紀錄不一致的兩處:記憶體的單位、修剪趟的網格¶
- 情況。 執行時的筆記把全量四趟的記憶體峰值寫成 11.2、16.1、18.6、18.7「GB」,把修剪趟的網格寫成 0.5 mm。
- 風險。 記憶體會被低估,GB 與 GiB 也會混在一起;修剪趟的網格寫錯,1 mm 與 0.5 mm 的比較就跟著錯。
- 怎麼發現。 分析讀執行紀錄時對出來的。
-
解決。 以紀錄為準:
- VmHWM 在紀錄裡以 bytes 記(/proc 的 kB × 1024),是 10.65、15.38、17.69、17.80 GiB,也就是 11.43、16.52、19.00、19.11 GB;筆記的值是把 bytes 除以 1.024×10⁹。
- 修剪趟的網格在紀錄裡是 1.0 mm,與計畫相同。修剪名目趟的切削步也比全量名目趟少 315 步,同樣指向網格不同。
本頁的記憶體一律寫 GiB(bytes ÷ 2³⁰)。
-
證據。 每一趟執行紀錄裡的記憶體峰值與網格欄位。
結果與效益¶
在 HiNC 3.2.46 開發版(含誤差項)上,以 0.5 mm、物理關量得。
標準 6 的地板就是雜訊底。計畫把它定為對照切削件偏差絕對值的第 99.9 百分位;對照趟沒有切削件,所以改從不標記的切削件取(難題 5):4.99×10⁻¹⁰ mm。
| # | 判定 | 量得 |
|---|---|---|
| 1 | 量得的部分通過;兩項沒有核 | EX0C 在 X→Cerr,是標記的 Static Translation (0.02, 0, 0)。C 是 Cerr→C 上的 Dynamic Rotation(旋轉軸向 (0, 0, −1)、樞軸點 (0, 0, 0)),繫結 C 軸,值與搬移前相同;這條連接換了新的 Guid。其餘 8 條連接的名稱、兩端、種類、角色與 Guid 都沒變。角色檢查在建置前後都是空的。案例專案載入、另存新檔後再載入,都沒有訊息。沒有核的第一項:插入 EX0C 之後從檔案重開專案時的載入訊息。有紀錄的那次重開在插入之前;之後每一趟都在重啟的實例上載入專案,但這些載入沒有留下紀錄:執行紀錄不收載入訊息,播放日誌只留含 error 等字樣的行。四趟全量都載入成功,EX0C 與標記照計畫、角色檢查為空,也都播完。沒有核的第二項:案例在誤差項資料夾以外的檔案有沒有變 |
| 2 | 通過 | 六趟都 Finished,都是 183,870 步,接觸峰值都是 1。警告以上的訊息:nc、step、ncManip 三個訊息槽都是空的;shell 只有做幾何差異比對的四趟各 1 則 Diff--TargetNotClosed,因為理想幾何是匯出的開放網格。0.5 mm 四趟的檔案、行號、刀號與接觸逐步相同 |
| 3 | 通過 | T1 的 130,003 個切削步 ≤ 8.99×10⁻¹⁴ mm;全部 157,412 個切削步與 δ 相差 ≤ 1.58×10⁻¹³ mm;T3、T4 的偏移除以 d 是 (1.587785, 0.809017, 0),殘差 ≤ 2.7×10⁻¹⁴ mm |
| 4 | 通過 | 全部 157,412 個切削步 ≤ 4.92×10⁻¹² mm |
| 5 | 照原文沒有量;替代證據通過 | 對照趟沒有匯出切削件(難題 5) |
| 6a | 通過 | 窗 0 a 側是輻條 0 朝窗 0 的側面,法向 177.66°,也是唯一朝 −X 的平面窗壁。中位數 −39.686 µm(8,398 個頂點),預測 −39.685。地板這麼小,容差就是 5 µm。所有窗壁中朝向在 −X ±5° 以內的 13,575 個頂點,中位數同樣是 −39.686 µm |
| 6b | 通過 | −39.70、−41.25、−40.67、−38.76、−38.17 µm;預測 −39.70、−41.25、−40.66、−38.75、−38.16 µm(各為輻條兩個側面相加) |
| 6c | 通過 | 五孔平均平移 35.63 µm、朝 26.96°;各孔 35.57–35.69 µm、朝 26.86–27.03°;錐座 35.64 µm、朝 27.00° |
| 6d | 照原文沒過;以分布判通過 | 成品上沒有任何面來自 T1,因為 T1 留 0.5 mm 給 T2。照原文逐點判,兩趟都有同一批 4,990 個車削面頂點超出地板(99.2 % 在輪輞),距離與不標記那一趟逐點相同,這是難題 4 的量測假象。地板是不標記切削件的第 99.9 百分位,依定義那份網格約有千分之一的頂點不低於地板;車削面又與不標記那一趟逐點相同,所以這些頂點只要落在車削面上,照原文逐點判就過不了。以分布判,車削面 99.9117 % 的頂點在地板內,比例與不標記那一趟相同;有對應頂點的 5,653,587 個頂點,距離與不標記那一趟相同,差 0 |
| 7 | 通過 | 見下文〈執行成本〉 |
刀尖:每個切削步都落在公式上¶
這裡的刀尖指每一步的 CL,也就是實際刀尖在程式座標中的位置。各趟步數相同,每一步的檔案、行號與刀號也相同,所以可以逐步對齊後直接相減。切削步是名目趟有接觸(IsTouched 為 1)的步,共 157,412 步:T1 130,003、T2 26,529、T3 655、T4 225。
| 比較 | 範圍 | 結果 |
|---|---|---|
| 有標記減名目,再減 δ | 157,412 個切削步 | 最大 1.58×10⁻¹³ mm |
| 有標記減名目 | T1 的 130,003 個切削步(C 0) | 最大 8.99×10⁻¹⁴ mm |
| 有標記減名目,偏移的長度 | T2 的 26,529 個切削步 | 最大 0.040 mm(= 2d,C ≡ 180° 時);ΔY 最大 0.020 mm |
| 有標記減名目 | T3、T4 的 880 個切削步(C ≡ 234°) | 每一步都是 (31.756, 16.180, 0) µm,與平均相差 ≤ 2.7×10⁻¹⁴ mm(任兩步之間 ≤ 4.7×10⁻¹⁴ mm) |
| 刀軸方向,有標記減名目 | 全部步 | ≤ 4.5×10⁻¹⁶ |
| 不標記減名目 | 157,412 個切削步 | 最大 4.92×10⁻¹² mm |
| 對照減名目 | 全部步 | 0:刀尖、機械座標與接觸逐位相同 |
有標記那一趟:每個切削步的刀尖偏移(它的 CL 減名目趟的 CL,程式座標)。(a) ΔX(藍)、ΔY(綠)對 C 角(取 0–360°):T1 全在 C 0、偏移 0;T3、T4 在 234° 聚成一點;T2 沿著黑色虛線的預測走。(b) XY 平面上,量到的點落在半徑 20 µm、圓心 (20, 0) 的圓上;T2 抽 1,500 步顯示。(c) 量到減預測的分布(對數軸):最大 1.6×10⁻¹³ mm,計畫門檻是 10⁻⁶ mm。有正負值的軸對稱 ±45 µm。HiNC 3.2.46 開發版(含誤差項),0.5 mm。
- 最前面 141 步不碰料,也不合公式。 第 0 步是第一支程式第 6 行的
T1 M06,機械座標全是 0;第 1–140 步是第 10 行的第一個G00,從那裡往外內插(G43.4在第 9 行已經生效)。起點是固定的機械位置,打入的 G54 移不動它,所以這段的刀尖離公式最多 0.020 mm。計畫的判準本來就只看切削步。 -
修剪趟(1 mm)與全量趟(0.5 mm)的刀尖與機械座標,逐步完全相同。 兩趟名目的刀尖與機械座標在全部 183,870 步都相同;修剪的有標記趟對預測的殘差,同樣是 1.58×10⁻¹³ mm。只有接觸隨網格變(
IsTouched記的是這一步碰不碰得到體素毛胚):- 1 mm 名目趟的切削步比 0.5 mm 少 315 步,全是 1 變 0。
- 修剪的有標記趟與名目趟之間,有 5 步不同(在 T2 與 T4)。
- 0.5 mm 的四趟逐步相同。
所以逐步公式用 1 mm 就驗得出來;零件與畫面才需要 0.5 mm。
零件:窗壁、輻條與螺栓孔¶
量法:有標記那一趟匯出的切削件共 6,192,799 個頂點,逐點量出它到名目切削件的帶號距離(正=留料,幾何差異裡是藍;負=過切,是紅)。
- 窗壁頂點:離 7° 拔模設計面的水平距離在 0.1 mm 以內、離正面與背面的邊 0.75 mm 以上的頂點,共 297,616 個。
- 孔壁有 25,800 個頂點,錐座有 12,077 個。
- 每個窗壁頂點的預測是 cos 7°·d·(cos φ − 1),φ 是它所在牆面朝窗內法向的方位角。
- T2 的 C 就等於這個方位角:逐步序列上,C 與刀軸反方向的方位角相差 ≤ 1.4×10⁻¹²°;設計代理也在刀位點上核對過,這個方位角就是牆面的法向。
五個窗、約 29.8 萬個窗壁頂點的偏差,依牆面朝窗內法向的方位角 φ,每 2° 一格(0=+X、90=+Y、180=−X、270=−Y)。藍線是有標記那一趟的中位數,淺藍帶是它的 5–95 % 範圍;黑虛線是預測 20·cos 7°·(cos φ − 1) µm;橘線是不標記那一趟,全為 0。縱軸對稱 ±45 µm,負=過切。0.5 mm,HiNC 3.2.46 開發版(含誤差項)。
- 朝 −X 的平面窗壁只有一面:窗 0 a 側,也就是輻條 0 朝窗 0 的側面,法向 177.66°。中位數 −39.686 µm(8,398 個頂點),預測 −39.685。所有窗壁中朝向在 −X ±5° 以內的 13,575 個頂點,中位數也是 −39.686 µm。
- 十面平面窗壁:量到減預測的中位數 ≤ 0.02 µm;99.999 % 的頂點在預測 ±1 µm 內。
- 轉角圓角與內外弧,共 30 段:量到減預測的中位數在 −0.22 到 +0.04 µm 之間。凹的轉角偏負、凸的內弧偏正,這是兩個多面體網格互量造成的(見〈誠實的限制〉)。
- 全部 297,616 個窗壁頂點:99.42 % 落在預測 ±1 µm 內。
- 不標記那一趟:每面窗壁的讀值都是 0,在 10⁻⁶ µm 以下。
十面平面窗壁(每個窗的兩個側面,µm)
a 側是輻條 j 朝窗 j 的側面,b 側是輻條 j+1 朝窗 j 的側面;φ 是牆面朝窗內法向的方位角。
| 面 | 輻條 | φ | 頂點 | 量到(中位數) | 預測 | 量到減預測(中位數) |
|---|---|---|---|---|---|---|
| 窗 0 a 側 | 0 | 177.66° | 8,398 | −39.686 | −39.685 | −0.0003 |
| 窗 0 b 側 | 1 | 74.34° | 9,756 | −14.497 | −14.494 | −0.003 |
| 窗 1 a 側 | 1 | 249.66° | 10,143 | −26.757 | −26.752 | −0.006 |
| 窗 1 b 側 | 2 | 146.34° | 10,868 | −36.389 | −36.374 | −0.015 |
| 窗 2 a 側 | 2 | 321.66° | 10,996 | −4.285 | −4.282 | −0.004 |
| 窗 2 b 側 | 3 | 218.34° | 10,995 | −35.433 | −35.420 | −0.013 |
| 窗 3 a 側 | 3 | 33.66° | 10,870 | −3.331 | −3.328 | −0.003 |
| 窗 3 b 側 | 4 | 290.34° | 10,124 | −12.956 | −12.950 | −0.006 |
| 窗 4 a 側 | 4 | 105.66° | 9,760 | −25.213 | −25.208 | −0.004 |
| 窗 4 b 側 | 0 | 2.34° | 8,352 | −0.017 | −0.017 | −0.0004 |
輻條寬度。 每支輻條的寬度變化,是它兩個側面法向偏差的和,垂直於 7° 拔模面量;水平寬度的變化,要再除以 cos 7°。
| 輻條(中心方位) | 兩個側面 | 量到 | 預測 | 差 | 水平寬度 |
|---|---|---|---|---|---|
| 0(90°) | 窗 0 a −39.686、窗 4 b −0.017 | −39.703 µm | −39.702 µm | −0.001 | −40.001 µm |
| 1(162°) | 窗 1 a −26.757、窗 0 b −14.497 | −41.254 µm | −41.245 µm | −0.009 | −41.564 µm |
| 2(234°) | 窗 2 a −4.285、窗 1 b −36.389 | −40.674 µm | −40.656 µm | −0.019 | −40.980 µm |
| 3(306°) | 窗 3 a −3.331、窗 2 b −35.433 | −38.764 µm | −38.748 µm | −0.016 | −39.055 µm |
| 4(18°) | 窗 4 a −25.213、窗 3 b −12.956 | −38.168 µm | −38.159 µm | −0.010 | −38.455 µm |
-
五支輻條各細 38.17 到 41.25 µm,平均 39.7 µm,正好等於 2d·cos 7°:
- δ 裡「每一面多切 d」那一項,讓兩側各少 d·cos 7°。
- 輻條的兩側不平行,「整個窗移 d」那一項沒有完全抵銷,所以各支差出約 ±1.6 µm。
-
輻條 0 少掉的 39.70 µm 幾乎全在窗 0 那一側(−39.686 µm),窗 4 那一側只少 0.017 µm。
- 不標記那一趟,每支輻條的變化都是 0,在 10⁻⁸ µm 以下。
十面平面窗壁的中位偏差與五支輻條的寬度變化。藍點是量到的,黑圈是預測,橘點是不標記那一趟;右欄是數值。量到與預測相差 ≤ 0.02 µm。橫軸對稱 ±45 µm,負=過切或變細。0.5 mm,HiNC 3.2.46 開發版(含誤差項)。
每個窗整個移了多少。 對每個窗的全部窗壁頂點套一個模型:整個窗平移 (tx, ty),每一面再多切 e。五個窗都往 +X 移 20.02 到 20.04 µm,Y 方向在 ±0.01 µm 以內,每一面多切 20.03 µm(水平量);預測是 (+20, 0) µm 與 20 µm。
五個窗的擬合(µm)
| 窗 | 平移 X | 平移 Y | 每面多切(水平) | 擬合 rms | 頂點 |
|---|---|---|---|---|---|
| 0 | +20.040 | +0.009 | 20.030 | 0.23 | 59,258 |
| 1 | +20.023 | −0.001 | 20.029 | 0.24 | 59,836 |
| 2 | +20.040 | +0.000 | 20.030 | 0.23 | 59,445 |
| 3 | +20.026 | +0.007 | 20.029 | 0.19 | 59,819 |
| 4 | +20.034 | −0.010 | 20.026 | 0.21 | 59,258 |
螺栓孔與錐座。
- T3、T4 每個切削步的刀尖都偏 (31.756, 16.180, 0) µm。
- 網格上的量法:把每個孔壁與錐座沿孔一圈的偏差,套進 a·cos ψ + b·sin ψ + c,ψ 是繞設計孔軸的方位角。偶極 (a, b) 就是中心的平移,c 是孔徑的變化。
- 五孔平移的平均就是螺栓圓的平移:(31.761, 16.153) µm,長 35.63 µm、朝 26.96°。預測是 (31.756, 16.180) µm,長 35.64 µm、朝 27.0°。各孔平移 35.57 到 35.69 µm,朝 26.86 到 27.03°。
- 錐座平移 35.64 µm、朝 27.00°,與孔同心,相差不到 0.03 µm;錐面的法向偶極是 30.86 到 30.87 µm,預測 30.87。
- 孔距變化 −0.03 到 +0.14 µm。孔壁平均偏差 −0.31 到 −0.40 µm,是網格互量造成的(見〈誠實的限制〉)。
- 不標記那一趟,各孔的平移都在 10⁻⁷ µm 以內。
(a) 五個 Ø15 孔壁與 60° 錐座沿孔一圈的偏差(五孔合併、每 5° 一格取中位數)。它是一個偶極:朝 27° 那一側過切 35.6 µm(錐座 30.9 µm),對側留料。(b) 每個孔與錐座擬合出的中心平移:五孔 35.57–35.69 µm、26.86–27.03°,預測 35.64 µm、27°;不標記那一趟為 0。軸對稱 ±45 µm。0.5 mm,HiNC 3.2.46 開發版(含誤差項)。
每個孔與錐座的擬合(µm)
| 特徵 | 頂點 | 中心平移 | 方位 | 平均偏差(孔徑) | 擬合 rms |
|---|---|---|---|---|---|
| 孔 0 | 5,160 | 35.568 | 27.03° | −0.40 | 0.54 |
| 孔 1 | 5,160 | 35.640 | 26.96° | −0.33 | 0.50 |
| 孔 2 | 5,160 | 35.635 | 26.86° | −0.36 | 0.58 |
| 孔 3 | 5,160 | 35.625 | 27.00° | −0.35 | 0.45 |
| 孔 4 | 5,160 | 35.695 | 26.94° | −0.31 | 0.48 |
| 五孔平均(螺栓圓) | 35.633 | 26.96° | |||
| 錐座 0–4 | 2,413–2,419 | 35.637–35.642 | 27.00–27.01° | −0.17 到 −0.18 | 0.30–0.33 |
| 預測 | 35.640 | 27.0° | 0 |
孔 0–4 的孔距變化依序是 −0.019、+0.054、+0.004、−0.029、+0.140 µm。錐座的法向偶極 30.863–30.867 µm(預測 30.865)。
整個切削件與車削面。
- 有標記那一趟 94.29 % 的頂點離名目 1 µm 以內。離開 0 的只有窗壁(0 到 −39.7 µm)與孔、錐座(±35.6 µm)。第 1 百分位是 −36.18 µm,第 99 百分位是 4.75×10⁻¹⁰ mm。
- 距離超過 0.05 mm 的頂點有 2,899 個。其中 2,856 個在輪輞的車削面上,不標記那一趟是同一批頂點、同一個值;另外 43 個在移位後的孔與錐座的銳邊上,讀值 +0.050 到 +0.061 mm。兩群都不是誤差(難題 4)。
- 車削面包括輪轂面、輻條正面、背面、中心孔與輪輞,只算離窗壁 2 mm 以外、離孔 13.5 mm 以外的部分。99.9117 % 的頂點在地板內,與不標記那一趟相同;有對應頂點的 5,653,587 個頂點,距離與不標記那一趟相同,差 0。
有標記與不標記兩趟切削件,每個頂點到名目切削件的距離(0.5 µm 一格、對數縱軸)。有標記那一趟只有窗壁(0 到 −39.7 µm)與孔、錐座(±35.6 µm)離開 0。距離超過 0.05 mm 的 2,899 個頂點中,2,856 個是輪輞車削面上的量測假象(不標記那一趟同一批、同一個值),43 個在孔與錐座的銳邊上。橫軸對稱 ±0.06 mm。HiNC 3.2.46 開發版(含誤差項)。
控制器知道誤差(不標記)¶
這一趟清掉 EX0C 的標記,開關仍開著,並打入與有標記那一趟相同的 G54 X 0.020。機台還是那一台 C 台偏了 20 µm 的機台,但控制器的模型裡有了這個偏移,等於運動學校正過的控制器。在 G43.4 下,控制器把 C 台真正的中心算進去,再用 X、Y 補回來。
- 刀尖:157,412 個切削步與名目相差 ≤ 4.92×10⁻¹² mm;刀軸方向相差 ≤ 4.5×10⁻¹⁶。
- 零件:99.944 % 的頂點離名目切削件 1 µm 以內;超過 0.05 mm 的 2,856 個頂點,全是輪輞上的量測假象(難題 4)。窗壁、輻條與孔的讀值都在 10⁻⁶ µm 以下。三個鏡頭的幾何差異畫面,都與對照趟逐像素相同。
- 機械座標:B、C 與名目趟、有標記那一趟都逐位相同。X、Y 的差分成三組,各自對到自己的式子:
| 比較 | 式子與意思 | 量到 | 殘差 |
|---|---|---|---|
| 不標記減名目 | (d, 0, 0):程式原點落在真正的 C 軸上,所以名目的運動整個往 +X 平移 20 µm | 157,412 個切削步都是 ΔX = 20.000 µm,ΔY、ΔZ 為 0 | ΔX 偏離 20 µm ≤ 4.7×10⁻¹² mm;ΔY ≤ 4.7×10⁻¹² mm、ΔZ ≤ 1.9×10⁻¹² mm |
| 有標記減名目 | RZ(−C)·(d, 0):打入的 G54 X 0.020 隨工作台轉;控制器看不到 EX0C | 每個切削步長 20 µm(起點由機械零點內插出去的 141 步除外) | ≤ 1.28×10⁻¹³ mm(切削步) |
| 不標記減有標記(兩趟都打入 X 0.020) | (d(1 − cos C), d·sin C):校正改變了 X、Y 位置的多少 | 長度 0 到 40 µm | 逐軸 ≤ 4.8×10⁻¹² mm(全部 183,870 步,由兩趟的逐步序列直接相減) |
計畫的預測是「不標記:機台 X、Y 多走 (d(1 − cos C), d·sin C),最多 40 µm」,比較對象是名目趟。實際量到的不一樣:這個式子描述的是不標記減有標記。相對名目趟,每個切削步的位置正好往 +X 多 20 µm——整段運動平移,每一步走的距離不變(難題 2)。
(a) 不標記(控制器知道誤差,橘)那一趟,157,412 個切削步的機械座標都比名目趟多 (+20, 0) µm。有標記(控制器不知道,藍)那一趟的差,只是打入的 G54 X 0.020 隨 C 轉。黑虛線是計畫寫的預測 (20(1 − cos C), 20·sin C) µm。(b) 各刀切削步上刀尖離程式的最大值(對數軸):有標記時 T2 0.040 mm、T3 與 T4 0.036 mm;不標記時 ≤ 4.92×10⁻¹² mm。HiNC 3.2.46 開發版(含誤差項)。

整輪斜視(從 −X、−Y 上方看)的幾何差異,在同一台有 EX0C 的機台上原地交替兩趟:控制器不知道誤差(有標記),以及控制器知道誤差(不標記)。知道誤差的那一趟切回名目,畫面與對照趟逐像素相同。色階 ±0.04 mm(紅=過切、藍=留料、綠=0,正負同權重);0.5 mm;HiNC 3.2.46 開發版(含誤差項)。輪轂特寫與俯視也做了同一種交替;因為不標記那一幀與對照那一幀逐像素相同,看起來就和下一節的開/關交替一樣,只差標籤。
對照趟與比對畫面¶
對照趟(開關關、做幾何差異比對)其實就是名目趟再播一次:刀尖、機械座標與接觸在全部 183,870 步都逐位相同。它的 Diff--Stats 與不標記那一趟只差在沒量到的量測線,3,183 對 3,177;三個鏡頭的幾何差異畫面,也與不標記那一趟逐像素相同。
下面三張圖,都在同一個鏡頭下原地交替誤差項開(有標記)與誤差項關(對照)。
- 畫面是把各趟記下的毛胚連同幾何差異放回畫布拍的,沒有重播。
- 畫布上沒有介面文字,所以中英兩種介面的畫布擷取逐像素相同,只有標籤照語言不同。
- 鏡頭是 HiNC 預設的俯視與等角視,再用滑鼠滾輪縮放。
- 整輪斜視的這一張,是這一案的比較圖。

整輪斜視(從 −X、−Y 上方看)的幾何差異,原地交替誤差項開(有標記、打入 G54 X 0.020)與誤差項關(對照)。開的那一幀,朝 −X 的窗壁紅(過切到 −39.7 µm),其他看得到的窗壁依朝向呈黃色到紅色;朝 +X、維持綠色的窗壁背對這個鏡頭。五個錐座一側紅、一側藍。關的那一幀全綠。色階 ±0.04 mm(紅=過切、藍=留料、綠=0,正負同權重);0.5 mm;HiNC 3.2.46 開發版(含誤差項)。

輪轂與輻條 0 的斜視特寫,原地交替誤差項開(有標記)與誤差項關(對照)。開的那一幀,左上方輻條 0 朝窗 0 的側面紅(−39.7 µm),五個錐座朝 27° 那一側紅、對側藍;關的那一幀全綠。色階、網格與版本同上。

整輪俯視(+Z)的幾何差異,原地交替誤差項開(有標記)與誤差項關(對照)。開的那一幀,五個螺栓孔一側紅、一側藍,因為整組往 27° 移了;7° 拔模的窗壁在俯視下只是一條窄帶。關的那一幀全綠。色階、網格與版本同上。

同一個場景拉遠:有標記那一趟的毛胚連同幾何差異,播完停刀程式之後的樣子。T2(Ø12 mm 端銑刀,裝在 80 mm 熱縮刀把上)傾 7° 停在窗 0,旁邊是輻條 0 朝向它的紅色側面。色階、網格與版本同上。
做幾何差異比對的四趟的 Diff--Stats
| 趟 | 回報的葉 | 比較前的表面葉 | 隨需展開 | 新節點 | NaN 葉 | 量到的量測線 | 沒量到的量測線 | 目標三角形 |
|---|---|---|---|---|---|---|---|---|
| 有標記 | 6,952,184 | 5,460,057 | 727,427 | 2,219,554 | 61 | 27,702,729 | 7,735 | 10,923,368 |
| 對照 | 6,952,400 | 5,461,611 | 727,461 | 2,218,250 | 22 | 27,706,720 | 3,183 | 10,923,368 |
| 不標記 | 6,952,400 | 5,461,611 | 727,461 | 2,218,250 | 22 | 27,706,720 | 3,177 | 10,923,368 |
| 有標記,修剪(1 mm) | 6,812,493 | 5,196,740 | 764,163 | 2,379,916 | 57 | 27,148,269 | 6,412 | 10,397,158 |
名目趟不做幾何差異比對。修剪的有標記趟比對的目標是 1 mm 名目趟切出的工件,所以目標三角形數不同。
執行成本¶
全部在共用的 32 執行緒伺服器上,以 HiNC 3.2.46 開發版(含誤差項)的私有實例執行:
| 播放 | 網格 | 步數 | 牆鐘時間 | 記憶體峰值(VmHWM) |
|---|---|---|---|---|
| 名目,修剪 | 1 mm | 183,870 | 260.2 秒 | 9.46 GiB |
| 有標記,修剪 | 1 mm | 183,870 | 280.3 秒 | 19.74 GiB(同一實例的第二趟,所以含名目修剪趟) |
| 名目 | 0.5 mm | 183,870 | 330.3 秒 | 10.65 GiB |
| 對照 | 0.5 mm | 183,870 | 345.3 秒 | 15.38 GiB |
| 有標記 | 0.5 mm | 183,870 | 350.3 秒 | 17.69 GiB |
| 不標記 | 0.5 mm | 183,870 | 350.4 秒 | 17.80 GiB |
- 記憶體峰值。 VmHWM 是行程常駐記憶體的最高水位。全量每趟開始前都重啟實例,所以 VmHWM 是那一趟自己的峰值,包含幾何差異、匯出與毛胚紀錄。兩趟修剪在同一個實例上接著跑,所以修剪有標記趟的值是兩趟累積的峰值,不能拿來和全量比。換算方式:GiB = bytes ÷ 2³⁰。
-
幾何差異與毛胚紀錄的記憶體。 有三趟做比對並記錄毛胚,它們的峰值比名目趟多 4.73 GiB(對照)、7.04 GiB(有標記)與 7.15 GiB(不標記)。比對的目標是 1,092 萬個三角形的名目切削件。這些增量不全是比對本身:
- 名目趟有匯出,但沒有記錄毛胚。
- 對照趟有記錄毛胚,但沒有匯出。
- 有標記與不標記兩趟兩樣都做。
- 有標記與對照做的是同樣的比對,峰值還是相差 2.31 GiB。
-
牆鐘時間從開始播放算到第一次輪詢讀到
Finished,所以包含匯出、比對與記錄毛胚。狀態每 5 秒輪詢一次,所以牆鐘時間可能晚到 5 秒。 - 合計:六次播放共 1,916.8 秒,約 32 分鐘;全量四趟 1,376.3 秒,約 23 分鐘。2026-10-06 的時間線:建置 20:24:10–20:24:14,修剪 20:24:14–20:33:35,全量 20:35:15–20:59:29。
- 伺服器不是這一案獨用的。 修剪兩趟播放時,另一個實例幾乎整段都在播另一個代理研究的 0.25 mm 全量。對照趟的最後約 44 秒與有標記趟的前約 2.3 分鐘,碰上那一項研究為了拍刀把圖而重播的那一趟。這幾趟的牆鐘時間含那份負載;名目與不標記兩趟播放時,旁邊沒有這樣的播放。VmHWM 是各實例自己的峰值,不受影響。
它說明了什麼¶
對加工工程師。
- C 台中心只偏 20 µm,五軸側銑的輪圈就讓每支輻條細約 40 µm,看起來就像刀具半徑大了 20 µm。所以輻條變細不一定是刀具或刀補出了問題,也可能是 C 台中心。
- 對刀只吃得掉對刀那個姿態的偏移,這裡是 C 0。在 C 0 切的粗銑完全不受影響。
- 三軸的工作只要停在對刀角度以外的 C,誤差一樣會切進零件。這裡是鑽孔與錐座:五孔整組偏 36 µm,螺栓圓不再與中心孔同心。垂直的工作應拉回對刀時的 C,否則就要先把運動學校正好。
- 運動學校正過的控制器能把誤差整個補回來。差別只在每個切削步的 X 位置,都比名目趟往 +X 多 20 µm:整段運動平移,每一步走的距離不變。
- 在 HiNC 裡,可以把一台機量到的常數誤差放進它的模型;上機之前,就看得到這個誤差在自己零件上的樣子與大小。
對老師或學生。
- 旋轉軸的位置誤差怎麼變成刀尖偏移 δ = (I − R(C))·d,以及 δ 為什麼只看 C。
- δ 可以拆成「整個平移 d」加上「沿牆面法向每一面多切 d」,所以它既像窗整個移了位,又像刀具半徑錯了。
- 表面只留下偏移的法向分量:朝 +X 的牆完全不動,拔模面上的偏差還要再乘一次 cos 7°。
- 標記與不標記,分別對應沒校正與校正過的運動學。
- 真機的對刀,與 HiNC 在名目鏈上量的 P0 不一樣。
- 比機械座標時,要拿工作偏移相同的那一趟比。
對評估這種做法的人。
- 成本。 建置加六次播放,約 32 分鐘的伺服器時間。全量每趟的記憶體峰值最高 17.80 GiB;做比對並記錄毛胚的三趟,峰值比名目趟多 4.73–7.15 GiB,但不全是比對本身(見上文)。
-
預測。 預測在第一次播放前就寫好:
- 刀尖公式在每個切削步都對到 1.58×10⁻¹³ mm 以內。
- 平面窗壁與輻條對到 0.02 µm 以內。
- 螺栓圓平移的長度對到 0.008 µm、方位對到 0.04° 以內;預測與量到的中心位置向量相差 0.03 µm。
-
沒中的地方。 都照量到的寫:不標記的機械座標該拿哪一趟比、對照趟沒有切削件、標準 6d 照原文逐點判沒過,以及 ±0.6 mm 的量測假象。
誠實的限制¶
- 只放了一個誤差。 這一案只有 EX0C。真實的 C 台同時還有別的誤差:Y 向的位置誤差、C 軸對 X 與對 Y 的傾斜,以及隨角度變化的徑向跳動與擺動。誤差項只能表達常數誤差,表達不了隨位置變化的誤差(定位、真直度、體積誤差表)、背隙、伺服不匹配與熱變形(機台幾何誤差)。
- 大小與正負號是選的。 20 µm 是典型值,這台通用機從沒量測過。如果正負號取 −X,所有偏差都會反過來:朝 −X 的牆會留料 39.7 µm,每支輻條各粗約 40 µm,孔會往 207° 移。
- 對刀是手動打入的,對刀角度是假設的。 HiNC 的 P0 在名目鏈上量,不會像真機的對刀那樣把誤差吃進去;誤差開的兩趟用的 G54 X 0.020 是推算出來的。對刀假設在 B = C = 0;如果在別的 C 對刀,整個偏差圖樣會跟著轉。
- 孔的結果只屬於這支 NC。 T3、T4 跑在 C −3366°,正是 T2 結束時的角度;這個角度是 HiNC 由刀位點寫回的程式帶下來的(設計代理的判讀)。換一個把垂直鑽孔寫成 C 0 的後處理,孔就不會動。
- 只看幾何。 物理關,所以沒有切削力、撓曲與熱。原案例 T2 精修的撓曲本來就不在去料幾何裡,所以這裡量到的偏差只來自誤差項。
-
0.5 mm 網格的讀法。
- 銳邊旁讀不準:移位後的孔與錐座銳邊上,有 43 個頂點讀到 +0.050 到 +0.061 mm,所以特徵的擬合只用離邊 0.75 mm 以外的頂點。
- 曲面上,兩個多面體網格互量,讀值會依曲率偏一點:凹的轉角圓角(R12)殘差中位數 −0.07 µm(各段最低 −0.22),凸的內弧 +0.01 µm(各段最高 +0.04),孔壁平均 −0.31 到 −0.40 µm。
- 輪輞上的 2,856 個頂點是量測假象(難題 4)。
-
對照趟沒有自己的切削件。 它的雜訊底改用難題 5 的替代證據判。
- 幾何差異的目標三角形比 STL 少 160 個。 HiNC 讀入名目切削件後回報 10,923,368 個目標三角形,離線讀同一個 STL 得到 10,923,528 個;成因沒查。
-
紀錄缺了幾項。
- 插入 EX0C 之後從檔案重開誤差項專案時的載入訊息沒有留下:執行紀錄不收,播放日誌只留含 error 等字樣的行。
- 案例在誤差項資料夾以外的檔案有沒有變,沒有核。
- 警告以下的訊息沒有收,因為紀錄只收警告以上。
-
牆鐘時間含其他負載,而且是輪詢的(見上文〈執行成本〉)。
讀者可以帶到自己案例的¶
- 把誤差放在一條自己的連接上,緊接在它所屬那一軸的上游。 那一軸自己的運動、值與角色都照舊(誤差項放在哪裡 (Where an Error Term Goes),英文,未鏡像)。
- 手動打入對刀會量到的工作偏移。 HiNC 的 P0 在名目鏈上量,真機的對刀卻會把對刀姿態下誤差造成的偏移吃進去。從機台鏈推出這個偏移,再拿對刀姿態下切的工作核對。這裡全在 C 0 的 T1,刀尖與名目相差 ≤ 8.99×10⁻¹⁴ mm(程式原點對齊)。
- 第一次播放前先預測刀尖偏移,有封閉形式就寫封閉形式。旋轉軸的位置誤差給出 δ = (I − R(C))·d。它只看 C,所以每把刀的每一步都能拿來核對。
- 先證明兩趟的步對得上,再逐步比較。 這裡 0.5 mm 的四趟步都相同,每一步的檔案、行號、刀號與接觸也相同;1 mm 的兩趟檔案、行號與刀號相同,接觸有 5 步不同。不是這樣時,就照手冊說的,以時間或機械座標來比。
- 比機械座標,要拿工作偏移相同的那一趟比。 只有那時,「開關不改機械座標」才成立。
- 以名目切削件當理想幾何。 這樣幾何差異才只顯示誤差,不含刀路本身的痕跡。
- 用一趟應該什麼都不變的執行量雜訊底,任何極值都先在頂點資料裡核對過,再說它是什麼造成的。 這裡 ±0.6 mm 的極值,在一趟切出名目件的執行裡也一模一樣。
- 讀程式在三軸工作時把 C 停在哪裡。 在對刀角度以外的 C 鑽孔,會把旋轉軸的位置誤差帶進零件。
- 逐步公式用粗網格驗,細網格留給零件與畫面。 1 mm 與 0.5 mm 的刀尖與機械座標逐步相同。
- 替幾何差異與毛胚紀錄預留記憶體。 這裡兩樣都做的三趟,峰值比名目趟的 10.65 GiB 多 4.73 到 7.15 GiB。
來源與授權¶
- 輪圈尺寸數字:ANKUSI Open Wheel Fitment Dataset: bolt pattern, centre bore and OE wheel specifications for 7,603 vehicle variants,ANKUSI Wheels 工程團隊,figshare,第 4 版,2026-09-20,https://doi.org/10.6084/m9.figshare.33921994。授權:CC BY 4.0。連結失效時的搜尋詞:
ANKUSI Open Wheel Fitment Dataset、figshare 33921994。 - 輪緣高度:德文維基百科,Autofelge,「Form J, entspricht einer Höhe von 17,3 mm」。
- 出處標示:「Wheel size numbers from the ANKUSI Open Wheel Fitment Dataset (ANKUSI Wheels engineering team, figshare, doi:10.6084/m9.figshare.33921994, CC BY 4.0). Wheel design by Tech Coordinate's agent.」資料集依現狀提供,不附任何保證。
-
使用與修改了什麼:
- 只用了三個數字,CSV 本身沒有保留。
- 輪圈設計、毛胚、夾具、機台、主軸與每一條刀路都出自代理之手,見輪圈的案例頁。這不是任何廠牌的輪圈,也不指明任何車款。
- 誤差的種類、大小、正負號與對刀方式是代理選的。EX0C 是 ISO 230-1 與 ISO 230-7 對這個誤差的代號;數值不是任何機台的量測。
- 本頁沒有重製任何第三方的圖:畫面都是 HiNC 的擷取,圖表畫的是 HiNC 的逐步結果與切削網格。
- 本頁的一切都是仿真;沒有切過任何輪圈。
另見¶
- 17 吋鍛造鋁圈——輪圈、它的刀路,以及這裡切的程式怎麼做出來、怎麼通過驗收
- 17 吋鍛造鋁圈的 NC 優化——同一批程式的 HiNC 進給優化,是另一項研究
- 建立虛擬工具機:誤差項——標記會改變什麼、啟用誤差項開關,以及有誤差項的機台上的工作偏移
- 運動拓樸:誤差項連接 (Error-Term Branches)(英文,未鏡像)——控制器求解的名目鏈,以及它看得到哪些誤差
- 模型之外的加工問題:機台幾何誤差——模型放不進的機台誤差
- 工作流程:幾何驗證——幾何差異比對、偵測半徑與色階
- 程式原點對齊——P0,以及手動打入量到的工作偏移
- 實作案例——其他案例,以及案例頁怎麼讀