BCAM 薄葉片:C 軸中心偏 0.020 mm,同一個誤差讓 G1 修出的葉片變薄、NX 的變厚,校正過的控制器切回名目¶
BCAM 薄葉片是一片來自公開資料集的薄鋼葉片。它的正面用錐度球刀的側刃精修,一次用商用 CAM 系統產生的程式(NX,03.Finishing_NX.h),一次用作者自己的 G1 演算法(04.1–04.3)。兩支程式都在 Heidenhain M128(TCPM,刀具中心點控制)下切削,原案例在一台通用的 B/C 雙轉台機上驗收了兩者。兩支程式修的是同一個葉面,用的卻是相反的 B/C 解:NX 用 B −6.56…−5.00°、C 45–125°,G1 用 B +5.24…+6.58°、C 244–299°。
這一頁,代理在這台機台上放一個五軸機常見的幾何誤差:C 軸實際的迴轉中心,比控制器以為的位置偏 +X 0.020 mm。ISO 230-7 把這個誤差稱為 EX0C。它做成機台鏈上的一條連接,標為誤差項。兩支程式都從案例的半精修替代毛胚起播,在案例的驗收解析度 0.0625 mm 下各切四次:
- 誤差項關:名目趟。它切出的工件,是同一支程式之後每一次幾何差異(Diff)的理想幾何。
- 誤差項關、再做一次 Diff:對照趟,用來量雜訊底。
- 誤差項開、有標記:控制器不知道這個誤差,相當於一台運動學從沒校正過的機台。
- 誤差項開、清掉標記:控制器知道這個誤差,相當於一台運動學校正過的機台,例如用 Heidenhain 的 KinematicsOpt 量過、寫進控制器。
誤差項開的兩趟,打入這種機台在 B = C = 0 對刀(碰數)會量到的預設點 (preset):預設點 1 (−29.98, −25, 46.6)、預設點 2 (0.02, 0, −100)。案例本身是 (−30, −25, 46.6) 與 (0, 0, −100)。結果:
-
刀尖。 控制器不知道誤差時,每一個切削步的刀尖偏移都落在 δ = (d(1 − cos C), −d·sin C, 0) 上,其中 d = 0.020 mm,C 是該步的 C 軸角度。NX 的 1,757 個切削步與它最多差 2.6×10⁻¹³ mm,G1 的 1,487 步最多差 1.4×10⁻¹³ mm。偏移只跟 C 有關:
- NX 在 C 45–125° 切,δY 為負,刀往葉面外的空氣側偏。
- G1 在 C 244–299° 切,δY 為正,刀往料裡偏。
-
葉面。 NX 修的葉面整面留料:第 1 百分位、中位數、第 99 百分位是 +0.0101、+0.0184、+0.0266 mm,越往 +X 越多。G1 的葉面整面過切:−0.0291、−0.0215、−0.0114 mm,越往 −X 越深。所以同一個誤差,讓 NX 的葉片變厚、G1 的變薄。播放的結果對上了播放前寫下的預測:
- 沿弦五段的中位數,與預測最多差 0.0010 mm(NX)與 0.0004 mm(G1);
- 七個高度帶的中位數互差不超過 0.0006 mm。
-
論文的 45 個量測點(推算)。 代理把本案量到的位移加到原案例驗收的讀值上。G1 的 25 點裡,落在 ±0.01 mm 外的就由 9 點變成 20 點;NX 與 G1 下緣兩列平均的差,由 0.1156 mm 變成 0.1541 mm。
-
控制器知道誤差。 清掉標記後,刀尖回到程式上,差 ≤ 2.4×10⁻¹³ mm。切出的工件與名目逐頂點比,差 ≤ 5×10⁻¹⁰ mm;Diff 畫面與對照趟逐像素相同。B、C 不變。每個切削步和名目趟相比:
- X 往 +X 多約 0.0199 mm;
- Z 差 −0.0023…−0.0017 mm(NX)或 +0.0018…+0.0023 mm(G1);
- Y 不動。
-
成本。 全量八趟,每趟 2,410 步(NX)或 2,011 步(G1)。每趟 55–286 秒,記憶體峰值 3.33–5.64 GiB,在一台同時還有別的播放在跑的共用 32 執行緒伺服器上。
這裡的一切都是仿真,沒有切過任何葉片。

同一台 C 軸偏 0.020 mm 的機台,誤差項開、有標記。畫面是兩支精修程式修完的葉面並排,前視(從 −Y 看完成的葉面)。左邊 NX 整面藍:留料,葉片變厚,5–95 % 的葉面在 +0.011…+0.026 mm。右邊 G1 整面黃到紅:過切,葉片變薄,5–95 % 在 −0.028…−0.012 mm。精修刀碰不到兩側與底部,所以那裡是綠色。每個 Diff 都以自己程式的名目趟為準。色階 ±0.03 mm:紅=過切、藍=留料、綠=0,正負同權重。0.0625 mm;HiNC 3.2.46 開發版(含誤差項)。
| HiNC 3.2.46 開發版(含誤差項),0.0625 mm | NX(03) | G1(04.1–04.3) |
|---|---|---|
| 切削時的 C 軸角度 | 45.1–125.2° | 243.7–298.9° |
| 切削時的 B 軸角度 | −6.56…−5.00° | +5.24…+6.58° |
| 切削步(名目趟碰到料的步) | 1,757 | 1,487 |
| 刀尖偏移的長度 | 0.0154–0.0355 mm | 0.0203–0.0340 mm |
| 刀尖偏移與公式的最大差 | 2.6×10⁻¹³ mm | 1.4×10⁻¹³ mm |
| 葉面偏差 第 1 百分位/中位數/第 99 百分位(精修刀切到的部分) | +0.0101/+0.0184/+0.0266 mm | −0.0291/−0.0215/−0.0114 mm |
| 葉片厚度變化(第 1–99 百分位) | 變厚 0.0101–0.0266 mm | 變薄 0.0114–0.0291 mm |
| 論文量測點的平均位移(計畫的預測) | +0.0181 mm(+0.018) | −0.0204 mm(−0.020) |
| 控制器知道誤差時:刀尖/切出的工件與名目的差 | ≤ 2.4×10⁻¹³ mm/≤ 5×10⁻¹⁰ mm | ≤ 1.4×10⁻¹³ mm/≤ 5×10⁻¹⁰ mm |
案例¶
BCAM 薄葉片本身的案例頁記錄代理怎麼從 Zenodo 公開的六支 Heidenhain 程式與葉片 NURBS 建出整條加工:粗加工、半精修,再用兩種錐刀側銑修葉片正面,全部在 0.0625 mm 下播完。HiNC 在論文 45 個量測點上的讀值,與論文的值平均只差 0.0019 mm(NX)與 0.0047 mm(G1)。
那一案用的是照設計做的機台。這一頁在同一台機台上加一個五軸機常見的幾何誤差,回答三個問題:
- 這個誤差在葉面上長什麼樣子、有多大?
- 兩支用相反 B/C 解的程式,各會被它推往哪個方向?
- 控制器知道這個誤差時,也就是機台的運動學校正過時,切出來有什麼不同?
這個系列的另一個誤差項研究,在 NIST 五軸圓錐台上做過同一種誤差:C 軸中心偏移,用的是 Fanuc G43.4。這一案有四點不同:
- 控制器是跑
M128的 Heidenhain。 - 要照對刀會量到的值打入的,有兩個預設點。
- 同一個葉面由兩支程式、以兩種 B/C 解來修。
- 論文公布了 45 個量測點,可以推算這個誤差會怎麼改變論文的比較。
代理拿到的:
-
驗收過的專案與程式,來自原案例:
- 機台 GenericBC:台側是 B(繞 −Y)載著 C(繞 −Z),兩軸交於 B/C 樞點,台面在樞點下 100 mm;主軸側是 X、Y、Z 載著垂直的主軸。
- 毛胚與夾具:60 × 50 × 60 mm 的 S45C 塊料(代替論文的 AISI 1045),放在 86.6 mm 高的墊高座上。
- 精修刀 T22:錐度球刀,刀尖球 R3.332、半錐角 6°、刃長 28 mm,從熱縮刀把伸出 47 mm,刀長補正 127 mm。原案例算出刀把離零件至少 5.15 mm。
- 程式:
03.Finishing_NX.h(514 行)照原樣播;04.1–04.3用原案例的複本播,複本改了兩行:TOOL CALL 22,以及CYCL DEF 7.0 DATUM SHIFT。 -
兩個預設點:
- 預設點 1 = (−30, −25, 46.6) 是程式原點,在塊料的頂角。
- 預設點 2 = (0, 0, −100) 是 C 台面中心。04.x 以
CYCL DEF 7X−30 Y−25 Z146.6 從它落回同一個程式原點。 - 任務的清單 6 先用
CYCL DEF 247 Q339=+1選預設點 1,再播 03;清單 7 用Q339=+2選預設點 2,再播 04.1–04.3。
-
半精修替代毛胚:把設計面往外長 0.484 mm 的實體。
-
HiNC 的誤差項。 機台鏈上的軸或主軸可以帶一個誤差項,也就是緊接在那根軸的連接之前、一條自己的靜態連接。
- 控制器是
XyzabcSolver,負責把 NC 轉成機械座標,M128這類刀具中心點控制也由它算。它一律在名目鏈上求解,把標記的連接當作不存在。 - 專案的啟用誤差項開關開著時,仿真的機台在運動、切削與檢查碰撞時,都保留這條連接。
- 所以誤差會切進零件,就像一台控制器不知道自身誤差的真實機台。清掉標記後,控制器就把這條連接算進運動學,在
M128下用線性軸把誤差補回來(標記會改變什麼、誤差項連接 (Error-Term Branches),英文,未鏡像)。
- 控制器是
-
對刀與 P0(手冊寫明的):只放一條平移時,即使 C = 0,誤差也會讓台面移動。真實機台對刀量到的工作偏移,會把這段偏移吃進去;HiNC 的 P0 在名目鏈上量,所以不會。要重現真實機台的結果,就要手動打入對刀會量到的工作偏移(有誤差項的機台上的工作偏移)。
- 要求。 HiNC 的產品擁有者要以已有的案例為基礎做誤差項的實作案例,產品案與論文案都可以;重的工作放到一台共用的伺服器上跑。
沒有任何資料寫明的:
- 這台機台實際有什麼誤差。 論文沒寫用哪台機台,也沒有公布機台誤差的量測。0.020 mm 是代理選的典型值,正負號 +X 也是代理選的。
- 在有這個誤差的機台上,對刀會量到哪兩個預設點。 代理得自己從機台鏈推(下一節)。
- 論文的量測怎麼對位。 論文沒寫,而對位可能吃掉一部分偏移。所以論文的量測與原案例的名目仿真對得很好,也不能用來判斷作者的機台有沒有這個誤差。
- 0.0625 mm 的格子讀不讀得到 0.01–0.03 mm 的偏差。 這些偏差只有格寬的 16–46 %。
代理建了什麼¶
每個值都標明是讀取(來自論文或原案例)、推得(由讀到的值算出)或自選(代理自己的決定)。
| 項目 | 值 | 來源 |
|---|---|---|
| 誤差是什麼 | C 軸實際的迴轉中心比設計位置偏 +X。ISO 230-7 把它稱為 EX0C,也就是 C 軸在 X 向的位置誤差 | 自選(計畫) |
| 大小 | 0.020 mm,以 B 錨點的座標表示(B = 0 時就是機台的 X 方向) | 自選:沒做運動學校正的五軸機常見的量級,不是任何一台機台的量測值;正負號也是選的 |
| 放在哪 | C 軸連接的正上游。新錨點 Cerr 把原本的 B→C 一分為二。B→Cerr 命名為 EX0C,帶 Static Translation (0.020, 0, 0),標為誤差項。C 軸的 Dynamic Rotation(軸 (0, 0, −1)、樞軸 (0, 0, 0))整個搬到 Cerr→C,C 軸重新繫結到它,值不變 |
自選:產品擁有者 2026-10-06 裁定,誤差只放在角色連接(軸或主軸)的上游 |
| 機台鏈 | 台側 O→base→frame→B→Cerr→C→w;主軸側 base→X→Y→Z→S→t | 建置後讀取回來 |
| 工作偏移 | 有標記與不標記兩趟,打入 B = C = 0 對刀會量到的值:預設點 1 = (−29.98, −25, 46.6)、預設點 2 = (0.02, 0, −100)。名目與對照兩趟用案例原本的 (−30, −25, 46.6) 與 (0, 0, −100) | 推得:EX0C 在 C = 0 也把台面往 +X 推 0.020 mm,對刀碰塊料時會把它吃進預設點 1。預設點 2 照原案例的做法:預設點 1 加 (30, 25, −146.6)。這是手冊〈有誤差項的機台上的工作偏移〉建議的做法 |

設備頁拓樸欄的機台叢集(GeneralMechanism)。B 與 C 之間多了錨點 Cerr。EX0C 是從 B 到 Cerr 的 Static Translation (0.020, 0, 0),畫成粗線,帶橘色「誤差項」徽章。C 軸的 Dynamic Rotation 搬到 Cerr→C,仍繫結在 C 軸。HiNC 3.2.46 開發版(含誤差項),繁體中文介面。
刀尖會偏多少:計畫裡寫下的預測。 符號:
- d 同時指向量 (0.020, 0, 0) mm 與它的長度。
- RZ、RY 是繞 +Z、+Y 的右手旋轉。
- 程式座標的原點是預設點 1,也就是塊料的頂角。X 沿著葉片的弦,Y 穿過葉片(完成的葉面朝 −Y),Z 向上。
預測:
- 控制器以為工件繞設計的 C 軸轉,實際上工件繞著偏了 d 的軸轉。
- C = 0 時,台面多移的 d 已經含在對刀量到的預設點裡,所以刀尖剛好落在程式上。
-
C 轉到別的角度時,工件比控制器以為的多移了一段。換算到隨台面轉的程式座標,刀尖的偏移是
δ = (I − RZ(C))·d = (d(1 − cos C), −d·sin C, 0)。
-
δ 只跟 C 有關,與 B、刀的位置、高度都無關;長度是 2d·sin(C/2)。
-
葉面偏多少,要看 δ 在葉面法向上的分量。完成的葉面朝 −Y:法向在 X ≈ 16 處是 (−0.35, −0.94, 0),到 X ≈ 46 處轉成 (+0.36, −0.93, 0)。這些法向是設計代理(草擬這項研究的代理)讀自設計面的。
- NX 在 C ≈ 90° 附近切,δ ≈ (+0.020, −0.020, 0)。刀往 −Y 偏,也就是往葉面外的空氣側偏:留料,葉片變厚。
- G1 在 C ≈ 270° 附近切,δ ≈ (+0.020, +0.020, 0)。刀往 +Y 偏,吃進料裡:過切,葉片變薄。
-
計畫寫下的數字:
- 沿弦五段(X 12–20、20–28、28–36、36–44、44–48)的中位數:NX +0.012、+0.016、+0.020、+0.023、+0.027 mm;G1 −0.027、−0.024、−0.020、−0.017、−0.013 mm。
- 論文 45 點的平均位移:NX +0.018 mm、G1 −0.020 mm。
- 高度方向不變。
-
計畫也寫了這一點的用處:刀具半徑錯,會讓兩支程式的葉面往同一個方向偏;C 軸位置錯,會讓兩面反向。這是分辨「刀的問題」與「機台的問題」的一條線索。
為什麼選 C 軸的位置誤差。 這是設計代理的理由(推得):
-
從對刀姿態(B = C = 0)算起,精修時 B 只傾 5.0–6.6°,C 卻轉到 45–125° 或 244–299°。旋轉軸的位置誤差印到零件上,會乘上 2·sin(轉角/2):
- C:NX 是 0.77–1.77 倍,G1 是 1.02–1.70 倍;
- B:只有 0.09–0.12 倍,大約一成。
所以「刀幾乎是直的」,並不表示誤差會像三軸一樣小。
-
在兩種 B/C 解下,同一個誤差在兩支程式上正負號相反。只有這一案看得到這一點,也是對讀者最有用的一點。
- 切削全程在
M128下,所以不標記那一趟才有意義:它代表校正過的控制器。 - 只需要播精修:每趟 2,000–2,400 步,全部從同一個替代毛胚起播。
-
設計代理也比過其他候選:
- C 軸在 Y 向的位置誤差會讓兩支都變薄,分不出兩種解;
- C 軸傾斜 0.01°,在葉頂最多只印出 7.6 µm。
各趟:
| 趟 | 格距 | 誤差項開關 | EX0C | 預設點 1/預設點 2 的 X | 用途 |
|---|---|---|---|---|---|
| NX、G1 名目,修剪 | 0.25 mm | 關 | 有標記(未生效) | −30/0 | 修剪:名目 |
| NX、G1 有標記,修剪 | 0.25 mm | 開 | 有標記 | −29.98/0.02 | 修剪:控制器不知道;做 Diff |
| NX、G1 名目 | 0.0625 mm | 關 | 有標記(未生效) | −30/0 | 匯出切出的工件,當該組的理想幾何 |
| NX、G1 對照 | 0.0625 mm | 關 | 有標記(未生效) | −30/0 | 做 Diff,量雜訊底 |
| NX、G1 不標記 | 0.0625 mm | 開 | 清掉標記 | −29.98/0.02 | 控制器知道;做 Diff、匯出切出的工件 |
| NX、G1 有標記 | 0.0625 mm | 開 | 有標記 | −29.98/0.02 | 控制器不知道;做 Diff、匯出切出的工件 |
| 拍刀把 | 0.0625 mm | 開 | 有標記 | −29.98/0.02 | 放回 G1 有標記那一趟的毛胚,再播停刀程式 pose-g1-bottom-pass.h |
各趟共同的設定:
- 物理關。 這項研究只看幾何,切削力與撓曲不在範圍內。
- 碰撞偵測開,失敗時不暫停。每一步是主軸一轉。
- 只開自己那一組的清單。 每一趟只開自己的任務清單:NX 是 6,G1 是 7。原案例讀取已記錄的半精修毛胚、匯出完成零件的條目都關掉。
- Diff(工作流程:幾何驗證):偵測半徑 1 mm,色階 ±0.03 mm,以該組自己的名目切削結果為準。
- 記下的毛胚。 對照、有標記、不標記三趟,各自記下最後的毛胚;拍圖時把它連同 Diff 放回畫布。
代理怎麼管理這件工作¶
- 先寫標準與預測。 計畫、預測與七條標準在 2026-10-06 21:02 提交,第一次播放在 21:03 開始。
- 毛胚一律用替代毛胚。 每一趟都從案例的半精修替代毛胚起播,也就是設計面往外長 0.484 mm 的實體,不播粗加工(01)與半精修(02)。精修會把葉面上的料全部切掉,前兩支程式的誤差留不到葉面上。原案例播 01 與 02 要 197,265 步、1 小時 54 分。
- 兩個播放組。 NX 組用
Q339=+1選預設點 1,再播 03(清單 6);G1 組用Q339=+2選預設點 2,再播 04.1–04.3(清單 7)。 - 先跑修剪趟。 0.25 mm 四趟,兩組各名目、有標記一趟,在同一個實例上接著跑。它們驗了建置、逐步的 δ 公式與它的正負號。
-
全量八趟,一次一趟,解析度 0.0625 mm,也就是案例的驗收解析度。
- 每趟開始前都重啟 HiNC 的私有實例。
- 八趟排伺服器上各研究共用的驗收鎖,在同一次持有裡接著跑。
- 這段時間伺服器上同時有別的播放,所以牆鐘時間是在負載下量的。
-
以名目切出的工件為理想幾何。 每組的名目趟匯出切出的工件,當作該組 Diff 的理想幾何。這樣 Diff 只顯示誤差改變了什麼,不含刀路本身留下的痕跡。
- 量網格距離。 有標記與不標記兩趟匯出切出的工件,代理逐頂點量它到名目工件的帶號距離。對照趟不匯出工件。
- 每個數字都從紀錄算。 代理的分析腳本從執行紀錄算出本頁的每一個數字,每個數字都附出處,可以重跑。
- 畫面兩種介面語言各拍一套,都是把記下的毛胚放回畫布拍的。刀把畫面另外播原案例的停刀程式(難題 11)。
- 人在哪裡介入。 HiNC 的產品擁有者要以已有的案例為基礎做誤差項的實作案例;同一天又裁定,誤差項只放在角色連接(軸或主軸)的上游。這個裁定讓設計從一對平移改成一條平移加打入的預設點(難題 1)。誤差、預測與標準都是代理自己定的。
第一次播放前提交的標準,摘要自計畫原文。兩個定義:
- 切削步指名目趟裡碰到料(
IsTouched)的步:NX 1,757 步、G1 1,487 步。 - 行號指程式檔的第幾行,不是單節號;這幾支程式的單節號不連續。
| # | 標準 |
|---|---|
| 1 | 建置:誤差項專案重開沒有載入訊息;EX0C 是標記的 Static Translation (0.020, 0, 0)、在 B→Cerr;C 軸繫結在 Cerr→C、值與原本相同;角色檢查為空;案例在誤差項資料夾以外的檔案沒有變 |
| 2 | 每一趟 Finished;03 與 04.1–04.3 每一行都執行;沒有碰撞與快移切料;做 Diff 的趟只多 Diff--TargetNotClosed;步數照記(預期 NX 約 2,410、G1 約 2,011) |
| 3 | 有標記:每一個切削步,Cl − Cl(名目) − δ 的長度 ≤ 1×10⁻⁶ mm;正負號照預測(NX 第一個進給點在 C 49.7,δY < 0;G1 在 C ≈ 293,δY > 0) |
| 4 | 不標記:每一個切削步,Cl − Cl(名目) 的長度 ≤ 1×10⁻⁶ mm |
| 5 | 對照:網格距離絕對值的第 99 百分位 ≤ 0.005 mm(雜訊底) |
| 6 | 葉面(有標記的切削結果對名目,以網格距離量,精修帶 X 12–48、Z −43…−3.5):NX ≥ 99 % 為正、G1 ≥ 99 % 為負;沿弦五段中位數在預測 ±0.004 mm 內;七個高度帶的中位數互差 ≤ 0.004 mm |
| 7 | 刀把離零件 ≥ 4.8 mm;每趟記下牆鐘時間與 VmHWM,單趟超過 30 GB 就停 |
| 修剪 | 出自計畫〈怎麼跑〉:驗對刀預設點的推法(C ≡ 0 的步 δ = 0) |
難題¶
每一個都依序寫出情況、若沒發現會有的風險、怎麼發現、怎麼解決,以及證明解法成立的證據。
1. 成對平移,還是一條平移加打入的預設點,兩個都要打¶
- 情況。 設計代理原本提議在 C 的前後各放一條標記的平移:
B→Cpivot放 +d,C→Cback放 −d。在對刀姿態 B = C = 0 時兩段互相抵銷,兩個預設點都不用動。 -
風險。
- 產品擁有者同一天裁定,誤差項只能放在角色連接(軸或主軸)的上游;C 後面那一條不合這條規則。
- 改成一條平移後,C = 0 時台面也偏 0.020 mm。如果照用案例原本的預設點,C = 0 附近切到的地方也會多偏 0.020 mm,對過刀的真實機台不會這樣。
- 這一案又有兩個預設點:NX 從預設點 1 跑;G1 從預設點 2(C 台面中心)出發,再以
CYCL DEF 7落回程式原點。只改其中一個,兩支程式就不是同一次對刀。
-
怎麼發現。 照裁定改寫計畫時發現的;對刀單獨寫成計畫誤差段落裡的一列。
-
解決。
- 只在 C 前面放 EX0C。
- 有標記與不標記兩趟,打入 B = C = 0 對刀會量到的預設點 1 = (−29.98, −25, 46.6) 與預設點 2 = (0.02, 0, −100);預設點 2 照原案例的做法,由預設點 1 加 (30, 25, −146.6)。
- 名目、對照兩趟維持案例原本的兩個值。
-
證據。
- 兩組的每一個切削步都對上公式,差 ≤ 2.6×10⁻¹³ mm。
- 這個式子沒有常數項:δ(0) = 0。所以兩個預設點都照推算生效,否則每一步都會多一個常數差(難題 3)。
- 不標記兩趟與名目差 ≤ 2.4×10⁻¹³ mm。
- 正向運動學式在 1.7×10⁻¹³ mm 內成立,並列為一致性檢查。
2. 用真實值,還是放大十倍¶
- 情況。 設計代理提議畫面用 d = 0.2 mm 的展示值(×10);真實值另外跑,而且只在雜訊底 ≤ 0.005 mm 時才判。
-
風險。
- 用 ×10 時,NX 底道下緣約 2 % 的點碰不到替代毛胚,偏差會被截在替代毛胚的表面上(設計代理自己算出來的),畫面與數字都要另外換算。
- 用真實值時,偏差只有 0.0625 mm 格寬的 16–46 %,可能淹沒在雜訊裡。
-
怎麼發現。 截斷寫在設計代理自己的疑點裡。這個系列另一案的 0.25 mm 試跑(RPTU 基準件的件 4)量到,網格距離與誤差大小成正比,小到 ±2.7 µm 都讀得到。
- 解決。 計畫只跑真實的 0.020 mm,用案例的驗收解析度 0.0625 mm,Diff 色階 ±0.03 mm。
-
證據。
- 不標記趟切出的工件與名目差 ≤ 5×10⁻¹⁰ mm。
- 對照畫面 100 % 在 ±0.001 mm 內。
- 網格距離與錐刀重掃的預測,在 99 % 的點上差 ≤ 0.0004 mm。
3. 修剪趟要驗「C = 0 的步」,卻沒有這種步¶
- 情況。 計畫〈怎麼跑〉要修剪趟驗對刀預設點的推法,判據是 C ≡ 0 的步 δ = 0。
- 風險。 照字面找不到可驗的步,預設點推得對不對就沒有直接證據。更糟的是,如果拿換刀位置(C = 0)的 −0.020 mm 當證據,反而會以為預設點推錯了。
-
怎麼發現。 逐步列出 C = 0 的步:NX 2 步、G1 6 步,全在
M128外;M128下 C 從不為 0。C = 0 的步是:- 03 與 04.1 的換刀步;
- 04.2 與 04.3 的
TOOL CALL步,停在前一支程式轉回 B = C = 0 的位置(刀沒有回換刀位置); - 每支程式
M129後轉回 B = C = 0 的步。
-
解決。 照字面記為驗不了,改以全量的有標記、不標記四趟代證;修剪趟的逐步序列與全量相同(G1 逐位相同,NX 只差
IsTouched)。- 判據是標準 3 的逐步比對:有標記那一趟,每一步的 Cl(有標記) − Cl(名目) 都要等於 δ(C) = (I − RZ(C))·d。這個式子沒有常數項:δ(0) = 0。預設點推錯或沒有生效時,每一步都會多一個常數差(沒有生效時是 −d)。
- 正向運動學式把每一步的刀尖寫成名目鏈的正向運動學(用打入的預設點)再加 δ(C),只是一致性檢查。實際機台鏈的正向運動學成立時,它只剩「打入的預設點=案例的預設點+d」這個算術,與機械座標無關;單獨用它,驗不出 HiNC 有沒有用上打入的預設點。
-
證據。
- 全量有標記的兩趟,合公式的 2,273 步(NX)與 1,843 步(G1)殘差 ≤ 2.6×10⁻¹³/1.4×10⁻¹³ mm,沒有常數差。
- 不標記兩趟的切削步與名目差 ≤ 2.4×10⁻¹³/1.4×10⁻¹³ mm。
- 正向運動學式在四趟的全部步上,殘差 ≤ 1.7×10⁻¹³ mm。
- 在換刀位置,兩趟的機械座標相同,刀尖偏 X −0.020 mm,正是 −RZ(0)·d(殘差 2.4×10⁻¹⁵/6.1×10⁻¹⁵ mm)。換刀位置是固定的機械座標,打入的預設點移不動它。
4. 不合公式的步:換刀、第一段進刀與轉回 B/C¶
- 情況。 有標記那一趟,NX 有 137 步、G1 有 168 步的刀尖偏移不等於 δ。單軸最多差 0.0315 mm(NX)與 0.0288 mm(G1),向量長度最多差 0.0355 mm(NX)與 0.0339 mm(G1);這些最大差都出現在最後轉回 B = C = 0、δ = 0 的那一步。
- 風險。 這些步可能被看成對刀預設點推錯,或模型本身有錯。
- 怎麼發現。 代理逐步比對全部的步,而不只切削步,再把不合的步依程式行分組。
-
解決。 查明了原因,細節在〈結果〉的刀尖一節。
- 03 與 04.1 的換刀位置是固定的機械座標,打入的預設點移不動它。這兩支
M128後的第一段FMAX從那裡以機械座標內插,偏移沿路漸變成 δ。 - 04.2、04.3 的刀沒有回換刀位置:
TOOL CALL與先轉 B/C 都停在前一支程式的結束點,第一段FMAX從那裡內插,也是過渡。 M129後轉回 B/C,同樣是過渡。
標準 3 只判切削步,照原文成立;這些步另外列出。可以推論:真實機台有同樣的誤差時,這段進刀路徑也會偏同樣的量,但全在空中。
- 03 與 04.1 的換刀位置是固定的機械座標,打入的預設點移不動它。這兩支
-
證據。 這 137/168 步沒有一步碰到料。用每一趟自己的機械座標走正向運動學,每一步都對到 1.7×10⁻¹³ mm 以內。
5. 機械座標要拿哪一趟來比¶
- 情況。 計畫預測「不標記:MC.X/Y/Z 多走 (d(1 − cos C)·cos B, d·sin C, d(1 − cos C)·sin B),最多約 40 µm」,沒寫比較的對象。文件也說,誤差項開關開或關,每一步的機械座標都相同。
- 風險。 有兩種寫法會與量測不符:「不標記比名目最多多走 40 µm」,以及「有標記那一趟的機械座標與名目趟相同」。
- 怎麼發現。 逐步比較三趟的機械座標時看到:名目趟用案例的預設點(X −30、0),有標記與不標記兩趟用對刀預設點(X −29.98、0.02)。
-
解決。 照量到的寫,三組比較各配自己的式子(見〈控制器知道誤差〉的表):
- 計畫的式子,其實是「不標記減有標記」。
- 不標記減名目:合公式的每一步固定是 0.020 mm 的 RY(−B)·d。
- 有標記減名目:在這些步上也是 0.020 mm,也就是對刀預設點經
M128轉過的量。
「開關不改機械座標」只在工作偏移相同時成立。
-
證據。 三組比較的殘差在 1.3–2.4×10⁻¹³ mm;三趟的 B、C 逐位相同。
6. NX「≥ 99 % 為正」:算整個框,還是只算精修刀切到的部分¶
- 情況。 標準 6 要求「精修帶 X 12–48、Z −43..−3.5」裡 NX 至少 99 % 為正。照字面算整個框,446,701 個葉面頂點裡,大於 0 的有 99.49 %,大於 1×10⁻⁶ mm 的卻只有 98.99 %。
-
風險。
- 照字面(d > 0)算整個框是 99.49 %,過。但其中約 2,230 點,只是兩趟在同一個替代毛胚表面上 ±5×10⁻¹⁰ mm 的雜訊碰巧為正;下面那 4,510 個雜訊點約一半為正、一半為負。
- 改用排除雜訊的 1×10⁻⁶ mm 門檻,整個框只剩 98.99 %,不過。差的那些點幾乎全在 NX 底道沒碰到的那一條替代毛胚上。
-
怎麼發現。 統計不為正的 4,524 點在哪裡:
- 4,510 點在框底 Z −43.0…−41.8,離設計面至少 0.45 mm,是 NX 底道根本沒碰到的替代毛胚表面。兩趟在那裡是同一個面,距離在 ±1×10⁻⁶ mm 內。
- 14 點在 Z ≈ −16.0 的道次交界(X 12.4–26.7),偏差 −0.00035…−0.000003 mm。
-
解決。 只算精修刀切到的部分:440,576 點中 99.997 % 大於 1×10⁻⁶ mm。設計代理算預測時的「精修帶」也只算精修刀切到的點(22,010 個葉面格點中的 21,789 點)。兩邊用的是同一種範圍,判法不同:
- 設計以名目錐刀包絡碰得到的格點判,剔除 1.0 %;
- 量測以有標記那一趟離設計面小於 0.45 mm 的頂點判,剔除 1.4 %。
判定寫明用的是哪一種,整個框的兩個數字照列。
-
證據。 分析紀錄裡 NX 有標記那一趟的葉面統計,列有正負號錯或為 0 的頂點數。
7. NX 最後一段比預測低 0.0010 mm¶
- 情況。 沿弦最後一段(X 44–48),NX 量到 +0.0260 mm,計畫寫 +0.027 mm;設計代理的一階式算出 +0.0267 mm。
- 風險。 差距在 ±0.004 mm 的容差內,但它是五段裡唯一差到 0.001 mm 的,可能被讀成 HiNC 少切或多切。
- 怎麼發現。 代理把量測與兩種預測逐段並排:設計代理的一階式,以及錐刀重掃。
-
解決。
- 一階式把 δ 投在設計面的法向上,網格距離量的卻是沿名目切出面的法向。
- NX 尾端的名目切出面,相對設計面傾約 1.2°(中位數;第 95 百分位 8.6°)。
- 改投在切出面自己的法向上,或沿量到的刀尖路徑重掃錐刀,都得到 +0.0259 mm。
量測值照原樣報。這個傾角是用錐刀在接觸點的面法向近似算的,只用來解釋這 0.001 mm。
-
證據。 分析紀錄裡錐刀重掃的分段結果。
8. 網格距離的極值是邊緣假象¶
- 情況。 整件的網格距離最大值 G1 +0.25 mm、NX +0.058 mm,最小值 G1 −0.055 mm,都遠超過預測的 ±0.03 mm。
- 風險。 引用最大、最小值,會讓人以為葉頂或前緣被切壞了。
- 怎麼發現。 代理列出偏差絕對值大於 0.04 mm 的頂點:NX 25 點、G1 24 點。
-
解決。
- 這些點都在精修帶外。NX 的 25 點與 G1 的 15 點在葉面頂邊(Z −3.0,替代毛胚頂面與葉面的交界);G1 在那裡的值正好是 0.0625 mm 格寬的整數倍:+0.0625、+0.125、+0.25。G1 另外 9 點在 X < 12 前緣的道次交界(Z −16.9)。
- 統計一律只用精修帶內的點;整件只引用第 1、5、95、99 百分位,不引用極值。
- 成因沒有查明。可能是匯出的網格在葉面與平頂交界處跳了一格,或是只看最近 12 個三角形的距離搜尋,在銳邊附近出錯。
-
證據。 分析紀錄裡偏差大於 0.04 mm 的頂點清單。
9. 對照趟沒有自己的網格¶
- 情況。 標準 5 用網格距離的第 99 百分位判對照趟的雜訊底,但這一批的工具在對照趟不匯出切出的工件。
- 風險。 標準 5 照字面量不到。
- 怎麼發現。 寫分析時發現:對照趟沒有網格可量。
- 解決。 NIST 圓錐台的誤差項研究遇到同樣的情形。照那一案的做法,改用三樣證據判雜訊底:逐步序列、
Diff--Stats,以及用色相讀值的 Diff 畫面。不標記那一趟的Diff--Stats與對照趟相同,它的網格當作旁證。 - 證據。 見〈結果〉的標準 5。
10. 論文的 45 點只能推算¶
- 情況。 論文的量測點,是在真的半精修毛胚上精修後量的。本案為了省下粗加工與半精修(197,265 步、1 小時 54 分),每一趟都從替代毛胚起播,而且物理關。
- 風險。 可能把「原案例讀值+位移」寫成量測或一趟播放;也可能兩者其實不能相加。
- 怎麼發現。 設計就是這樣規劃的。分析時確認了點位與原案例相同:每一點的高度都與原案例的報告一致。
-
解決。 某一點的位移,取有標記那一趟切出的工件上離該點 0.1 mm 內葉面頂點的中位數。位移加到原案例的驗收讀值上,全文都標「推算」。兩者可以相加,因為:
- 精修把這些點上的料全部切掉,起始毛胚不留痕跡;
- 原案例的修剪趟(替代毛胚)與整條驗收,在 45 點上最多只差 0.0014 mm。
-
證據。
- 位移的平均 NX +0.0181、G1 −0.0204 mm,與設計表的平均差不到 0.00003 mm;逐點最多差 0.00047 mm(NX)與 0.00085 mm(G1)。
- 設計表是在播放後才提交的;播放前提交的計畫寫的是平均 +0.018/−0.020 mm。
- 在同一批點上重掃錐刀算出的位移,也與量到的相符。
11. 拍刀把的停刀程式,要用那一趟打入的預設點¶
- 情況。 刀把畫面把 G1 有標記那一趟記下的毛胚連同 Diff 放回畫布,再播原案例的停刀程式
pose-g1-bottom-pass.h(04.3 的 G1 複本截到第 46 單節),讓刀停在底道中段。 - 風險。 如果停刀程式用名目的預設點(X −30、0)播,刀相對已切好的工件會偏 0.020 mm,可能在記下的毛胚上再切一刀。畫面上的 Diff 就不再是有標記那一趟切出來的。
- 怎麼發現。 準備拍圖時。
- 解決。 代理的工具放回毛胚之前,先打入那一趟打過的預設點(預設點 1 X −29.98、預設點 2 X 0.02),播完再還原。
- 證據。 那次播放 381 步、205.3 秒、
Finished,並回報Play-Touch--None:整次播放沒有碰到料。
結果與效益¶
在 HiNC 3.2.46 開發版(含誤差項)上,以 0.0625 mm、物理關量得。
| # | 判定 | 量得 |
|---|---|---|
| 1 | 量得的部分通過;一項沒有紀錄 | EX0C 在 B→Cerr,是標記的 Static Translation (0.02, 0, 0)。C 是 Cerr→C 上的 Dynamic Rotation(軸 (0, 0, −1)、樞軸 (0, 0, 0)),繫結 C 軸,搬移前後的值相同。角色檢查在建置前後都是空的,12 趟播放各自的角色檢查也都是空的。另存新檔後重新載入沒有訊息,原案例載入也沒有。沒有紀錄的一項:案例在誤差項資料夾以外的檔案有沒有變。建置是在伺服器上的一份工作副本裡做的,那份副本的檔案狀態沒有和結果一起保存 |
| 2 | 通過 | 12 趟(8 趟 0.0625 mm、4 趟 0.25 mm)全部 Finished。NX 每趟 2,410 步、G1 每趟 2,011 步,與原案例相同。每支程式裡每一個帶軸字語的 L 單節都有步,只有開頭那一行 L B+0.0 C+0.0 FMAX 沒有:軸已經在那裡,移動長度 0。最後一個移動行(03 第 512 行、04.1/04.2 第 72 行、04.3 第 77 行)也有步。Warning 以上的訊息:nc、step、ncManip 三個訊息槽都是空的;shell 只有做 Diff 的 8 趟各 1 則 Diff--TargetNotClosed。沒有 Collision--Detected,也沒有快移切料。紀錄只收 Warning 以上,所以「每一行都執行」是從每個移動行都有步推得的 |
| 3 | 通過 | 兩趟步數相同,以步序號對齊。NX 的 1,757 個切削步最多差 2.6×10⁻¹³ mm,G1 的 1,487 步最多差 1.4×10⁻¹³ mm。NX 第一個切削步在 03 第 22 行,C 49.719°,δ = (+0.00707, −0.01526, 0);G1 第一個切削步在 04.1 第 20 行,C 292.935°,δ = (+0.01221, +0.01842, 0)。兩者都與預測的 (+0.0071, −0.0153, 0)、(+0.0122, +0.0184, 0) 相同,而且從第一個進給單節到這一步,C 都沒變。0.25 mm 修剪趟一樣是 2.6×10⁻¹³/1.4×10⁻¹³ mm。不切削的步裡,NX 有 137 步、G1 有 168 步不合公式,沒有一步碰到料(難題 4) |
| 4 | 通過 | NX 最多 2.4×10⁻¹³ mm,G1 最多 1.4×10⁻¹³ mm。不切削的換刀與進退刀步,情形同標準 3 |
| 5 | 通過,以畫面、序列與 Diff--Stats 判 |
對照趟沒有匯出切出的工件(難題 9),所以照 NIST 圓錐台誤差項研究的做法,改用三樣證據判。(1) 逐步序列與名目逐位相同,兩組都是。(2) Diff--Stats 的八個數與不標記那一趟完全相同。(3) 前視與等角視的 Diff 畫面用色相讀值,100 % 的像素在 ±0.001 mm 內(極值 −0.00019…+0.00023 mm),而且與不標記那一趟的畫面逐位元組相同。另外,不標記那一趟匯出的工件,每個頂點離名目 ≤ 5.0×10⁻¹⁰ mm(第 99 百分位 4.8×10⁻¹⁰ mm) |
| 6 | 通過(NX 的 99 % 以精修刀切到的部分計,見難題 6) | NX:精修刀切到的 440,576 個頂點裡,99.997 % 大於 1×10⁻⁶ mm。照字面算整個框(446,701 點),大於 0 的有 99.49 %,大於 1×10⁻⁶ mm 的只有 98.99 %;其餘幾乎全在框底一條 NX 底道沒碰到的替代毛胚表面上。G1:445,950 點全部為負。沿弦五段的中位數:NX +0.0123、+0.0161、+0.0195、+0.0227、+0.0260 mm;G1 −0.0271、−0.0239、−0.0204、−0.0168、−0.0129 mm;與預測最多差 0.0010/0.0004 mm。七個高度帶的中位數互差:NX 0.0004 mm(整個框 0.0009 mm),G1 0.0006 mm |
| 7 | 通過 | 刀把間隙是推算值:原案例算的 5.15 mm,減去刀相對工件最多移動的 0.0355 mm,至少 5.11 mm。12 趟都開著碰撞偵測,都沒有 Collision--Detected。0.0625 mm 八趟的牆鐘時間 55.1–285.5 秒。VmHWM 最高 5.64 GiB(6.05 GB,NX 有標記),遠低於 30 GB。0.25 mm 四趟在同一個實例上,累積最高 6.10 GiB(6.55 GB) |
| 修剪 | 照字面驗不了;改以全量趟的逐步比對代證 | M128 下沒有 C = 0 的步:切削時 C 在 45–125° 與 244–299°。C = 0 的步(NX 2 步、G1 6 步)都在 M128 外(難題 3)。改以全量的有標記與不標記四趟代證,因為修剪趟的逐步序列與全量相同(G1 逐位相同,NX 只差 IsTouched)。證據是標準 3、4 的逐步比對。Cl(有標記) − Cl(名目) 逐步等於 δ(C) = (I − RZ(C))·d,殘差 ≤ 2.6×10⁻¹³ mm;這個式子沒有常數項,δ(0) = 0。不標記那一趟與名目差 ≤ 2.4×10⁻¹³ mm。預設點推錯或沒有生效,每一步都會多一個常數差。正向運動學式(名目鏈+打入的預設點+δ(C),殘差 ≤ 1.7×10⁻¹³ mm)並列為一致性檢查(難題 3) |
刀尖:每一個切削步都落在公式上¶
這裡的刀尖指每一步的 CL,也就是實際刀尖在程式座標中的位置。同一組的兩趟步數相同(NX 2,410、G1 2,011),所以可以逐步對齊後相減。殘差在 10⁻¹³ mm 級,表示每一步都配對正確。
| 比較 | 範圍 | NX | G1 |
|---|---|---|---|
| 有標記減名目,再減 δ | 切削步 | 2.6×10⁻¹³ mm(1,757 步) | 1.4×10⁻¹³ mm(1,487 步) |
| 同上 | 合公式的每一步 | 2,410 步中 2,273 步,2.6×10⁻¹³ mm | 2,011 步中 1,843 步,1.4×10⁻¹³ mm |
| 有標記減名目:偏移的長度 | 切削步 | 0.0154–0.0355 mm | 0.0203–0.0340 mm |
| 有標記減名目:X/Y/Z 的最大偏移(絕對值) | 切削步 | 0.0315/0.0200/2.6×10⁻¹³ mm | 0.0289/0.0200/1.4×10⁻¹³ mm |
| 刀軸方向,有標記減名目 | 全部步 | 4.4×10⁻¹⁶ | 4.4×10⁻¹⁶ |
| 不標記減名目 | 切削步 | 2.4×10⁻¹³ mm | 1.4×10⁻¹³ mm |
| 對照減名目 | 全部步 | 0:兩趟序列逐位相同 | 0 |
誤差項開、有標記:每個切削步的刀尖偏移對 C 軸角度。偏移是該步的 CL 減名目趟的,程式座標。點是量到的,圖上每 9 步取 1 點;黑線是公式 (d(1 − cos C), −d·sin C),d = 0.020 mm。NX(C 45–125°)δY 為負,G1(C 244–299°)δY 為正:NX 與 G1 的 3,244 步,是同一條曲線的兩段,與公式差 ≤ 2.6×10⁻¹³ mm。縱軸對稱。HiNC 3.2.46 開發版(含誤差項),0.0625 mm。
-
兩組的正負號。
- NX 的第一個切削步在 03 第 22 行,C 49.719°、B −5.997°,量到 δ = (+0.00707, −0.01526, 0)。
- G1 的第一個切削步在 04.1 第 20 行,C 292.935°、B +6.044°,量到 δ = (+0.01221, +0.01842, 0)。
- 兩者都與預測逐位一致。
-
G1 的 C 角度。 G1 趟回報的機台 C 是 −116.3…−61.1°:
M126走短路徑,與 243.7…298.9° 是同一組角度。公式只用 cos、sin,不受影響。 -
不合公式的 137/168 步(難題 4)全是不切削的步,沒有一步碰到料。它們分成四類:
- 換刀位置: 03、04.1 第 5 行的
TOOL CALL,以及在那裡先轉 B/C 的第 8 行(03)、第 13 行(04.1)。兩趟在這裡的機械座標相同,打入的預設點移不動它們,所以刀尖相對零件偏 −RZ(C)·d;C = 0 時就是 X −0.020 mm,也就是誤差本身。這類步 NX 9 步、G1 11 步,與這個式子的殘差 2.4×10⁻¹⁵/6.1×10⁻¹⁵ mm。 - 前一支程式的結束點: 04.2 第 5 行、04.3 第 10 行的
TOOL CALL(各 1 步),以及接著在原地先轉 B/C 的第 13 行(04.2,10 步)、第 18 行(04.3,9 步)。刀沒有回換刀位置,停在前一支程式M129後轉回 B = C = 0 的位置。那裡兩趟的機械座標已經不同,所以刀尖偏移不是 −0.020 mm;04.2 第 5 行是 (−0.0277, +0.0184, −0.0008) mm。 -
M128後的第一段FMAX: 03 第 10 行 109 步;04.1、04.2、04.3 的第 15、15、20 行,66、9、9 步。- 03 與 04.1 的這一段從換刀位置以機械座標內插,偏移沿路由 −RZ(C)·d 漸變成 δ。
- 04.2、04.3 的這一段從前一支程式的結束點出發,偏移由那裡的值漸變成 δ。
-
M129後轉回 B = C = 0: 03 第 512 行 19 步;04.1、04.2、04.3 各 17、17、18 步。同樣是兩者之間的過渡。
- 換刀位置: 03、04.1 第 5 行的
-
再用正向運動學做一致性檢查,用每一趟自己的機械座標:
- 全量八趟的每一步,刀尖都等於「經實際機台鏈(開關開時含 EX0C),從程式原點真正所在處量」的位置,殘差 ≤ 1.7×10⁻¹³ mm。
- 有標記與不標記四趟的每一步,刀尖也都等於「名目鏈+打入的預設點」算出的位置再加 δ(C),殘差 ≤ 1.7×10⁻¹³ mm。
也就是說,有 EX0C 的機台在每一步都把刀尖從名目鏈的位置移了 δ,這 137/168 步也一樣。兩式只差一個常數:打入的預設點 − 案例的預設點 − d,等於 0,而且與機械座標無關。所以第二式單獨證明不了打入的預設點有生效;那要靠標準 3 的逐步比對沒有常數項(難題 3)。
-
0.25 mm 修剪趟與 0.0625 mm 全量趟的逐步序列相同(比對解壓後序列的 MD5):
- G1 完全相同:名目=修剪名目=對照,有標記=修剪有標記。
- NX 只差
IsTouched(這一步有沒有碰到料):名目趟 11 步、有標記那一趟 10 步。這一欄看格子;刀尖與機械座標都相同。
-
碰到料的步數。 NX 有標記那一趟,碰到料的步比名目趟少 6 步:只有名目碰到的 7 步,只有有標記碰到的 1 步。G1 有標記那一趟多 1 步。這與誤差的方向相符:NX 的刀往空氣側、G1 的刀往料裡。
葉面:NX 留料、G1 過切¶
量法:
- 有標記那一趟匯出的工件(NX 1,418,426 個頂點、G1 1,416,898 個),代理逐點量它到同一組名目工件的帶號距離。正=留料(Diff 藍),負=過切(Diff 紅)。
- 葉面取離原案例定位好的設計面格點(480 × 210 點)1 mm 以內的頂點,框在 X 12–48、Z −43…−3.5。
- 其中離設計面至少 0.45 mm 的頂點算作替代毛胚(替代毛胚在 0.484 mm):精修刀沒碰到,或只擦掉不到 0.034 mm。NX 有 6,125 點,都在框底 Z −43…−41.6;G1 沒有。其餘就是「精修刀切到的部分」。
| NX(03) | G1(04.1–04.3) | 設計的預測(NX;G1) | |
|---|---|---|---|
| 框內葉面頂點 | 446,701 | 445,950 | |
| 精修刀切到的頂點 | 440,576 | 445,950 | |
| 正負號(精修刀切到的部分) | 99.997 % > +1×10⁻⁶ mm | 100 % < −1×10⁻⁶ mm | 100 % 正;100 % 負 |
| 第 1 百分位/中位數/第 99 百分位 | +0.0101/+0.0184/+0.0266 mm | −0.0291/−0.0215/−0.0114 mm | +0.010/+0.0175/+0.028;−0.029/−0.0225/−0.012 |
| 最小…最大 | −0.00035…+0.0343 mm | −0.0298…−0.0052 mm | |
| 七個高度帶中位數互差 | 0.0004 mm | 0.0006 mm | ≤ 0.001;≤ 0.0007 |
中位數與設計的預測差約 0.001 mm,原因是兩邊取點的方式不同。設計的統計用葉面格點,越往 +X 越疏;量測用網格頂點,沿弦較平均。在設計用的同一組葉面點上,把錐刀沿量到的刀尖路徑重掃一次,中位數正好是 +0.0175/−0.0225 mm;量測與重掃之差的中位數 ≤ 0.000004 mm。
沿弦五段的中位數。「C」是完成那些點的步的 C 軸角度,取中位數。
| 沿弦段 X(mm) | C:NX/G1 | NX 量到 | NX 預測(計畫) | NX 重掃 | G1 量到 | G1 預測(計畫) | G1 重掃 |
|---|---|---|---|---|---|---|---|
| 12–20 | 55.6°/250.0° | +0.0123 | +0.012 | +0.0124 | −0.0271 | −0.027 | −0.0270 |
| 20–28 | 74.1°/258.4° | +0.0161 | +0.016 | +0.0161 | −0.0239 | −0.024 | −0.0239 |
| 28–36 | 92.5°/268.5° | +0.0195 | +0.020 | +0.0195 | −0.0204 | −0.020 | −0.0204 |
| 36–44 | 109.5°/278.0° | +0.0227 | +0.023 | +0.0228 | −0.0168 | −0.017 | −0.0168 |
| 44–48 | 124.3°/291.5° | +0.0260 | +0.027 | +0.0259 | −0.0129 | −0.013 | −0.0129 |
單位 mm。與計畫的最大差:NX 0.0010 mm(最後一段,難題 7),G1 0.0004 mm。計畫的容差是 ±0.004 mm。
葉面沿弦的偏差:有標記那一趟切出的葉面,對各自名目趟切出的葉面(網格距離,Z −43…−3.5,精修刀切到的部分)。藍線是 NX 每 1 mm 的中位數與 5–95 % 色帶,全在 0 上;橘線是 G1,全在 0 下。黑圈是錐刀沿量到的刀尖路徑重掃的預測,灰色橫段是播放前寫下的五段預測。正=留料(Diff 藍),負=過切(Diff 紅);縱軸正負對稱。HiNC 3.2.46 開發版(含誤差項),0.0625 mm。
- 為什麼 NX 往 +X 越留越多。 葉面的法向沿弦轉了約 40°,完成各段的 C 也從 56° 轉到 124°。兩者合起來,δ 落在法向上的分量由 +0.012 增加到 +0.026 mm。G1 的 C 從 250° 轉到 291°,偏差由 −0.027 變淺到 −0.013 mm。
- 高度方向不變。 從 Z −43 到 −3.5 分七帶:NX 的中位數在 +0.0182…+0.0186 mm,G1 在 −0.0212…−0.0218 mm。刀是整支平移的,所以偏差不分道次、不分高度。
-
獨立的幾何檢查。 這個檢查不經過 HiNC 的切削仿真:
- 把 T22 錐刀(刀尖球 R3.332、半錐角 6°、刃長 28 mm)放到名目趟與有標記那一趟每一個碰到料的步上,刀尖、刀軸取自逐步序列。
- 對每個葉面點取最近的刀面,得到完成面。兩趟各得一個完成面,相減就是預測。
- 預測與 HiNC 網格距離的差,99 % 的點在 ±0.0004 mm 內(NX 21,640 點、G1 22,010 點)。
-
葉片厚度。 精修程式不碰背面。離設計面 1 mm 以外的是背面、兩端圓角、頂面與底部(NX 720,453 個頂點、G1 720,459 個),沒有一個動超過 0.0005 mm。所以葉片厚度的變化就等於正面的偏差:NX 變厚 0.0101–0.0266 mm,G1 變薄 0.0114–0.0291 mm(第 1–99 百分位)。
- 整件的極值不是偏差(難題 8)。G1 最大 +0.25 mm、NX 最大 +0.058 mm,都在葉頂邊(Z −3.0);G1 另有 9 點 −0.040…−0.055 mm,在 X < 12 前緣的道次交界。這些點都在精修帶外。整件的百分位不受影響:NX 第 95/99 百分位 +0.0249/+0.0263 mm,G1 第 1/5 百分位 −0.0287/−0.0271 mm。
下面四張圖,都在同一個鏡頭下原地交替誤差項開(有標記)與誤差項關(對照)。
- 畫面是把各趟記下的毛胚連同 Diff 放回畫布拍的,沒有重播。
- 畫布上沒有介面文字,所以中英兩種介面的畫布截圖逐位元組相同,只有標籤照語言不同。
- 前視沿用原案例拍葉面的鏡頭,從 −Y 看完成的葉面;等角視是 HiNC 的預設等角視再縮放。

NX(03)的 Diff,前視,原地交替誤差項開(有標記)與誤差項關(對照)。誤差項開時,葉面整面藍:+0.011…+0.026 mm,留料,越往 +X 越多。誤差項關時全綠。精修刀碰不到兩側與底部,所以那裡兩幀都是綠。Diff 色階 ±0.03 mm(紅=過切、藍=留料、綠=0,正負同權重);0.0625 mm;HiNC 3.2.46 開發版(含誤差項)。

NX(03)的 Diff,等角視,原地交替誤差項開(有標記)與誤差項關(對照)。精修刀碰不到頂面、兩側與底部,所以那裡兩幀都是綠。色階、格距與版本同上。

G1(04.1–04.3)的 Diff,前視,原地交替誤差項開(有標記)與誤差項關(對照)。誤差項開時,葉面整面黃到紅:−0.028…−0.012 mm,過切,越往 −X 越深。誤差項關時全綠。色階、格距與版本同上。

G1(04.1–04.3)的 Diff,等角視,原地交替誤差項開(有標記)與誤差項關(對照)。色階、格距與版本同上。
用色相讀 Diff 畫面的值。 Df 色條上,藍色(色相 240°)是 +0.03 mm,綠色(120°)是 0,紅色(0°)是 −0.03 mm。截圖裡的色相與色條上的位置成線性(最大偏差 0.1°),1° 色相等於 0.00025 mm。有標記那一趟的前視畫面上,偏差大於 0.002 mm 的像素:
- NX:中位數 +0.0178 mm,5–95 % 在 +0.0104…+0.0251 mm;
- G1:中位數 −0.0203 mm,5–95 % 在 −0.0282…−0.0147 mm。
這與網格距離相符。
論文的 45 點(推算)¶
論文的偏差圖在 NX 那半邊標了 20 點、G1 那半邊 25 點,數值由原案例讀出。推算的做法:
- 在每一點,取有標記那一趟切出的工件上 0.1 mm 內葉面頂點的中位數,當作這個誤差在那一點造成的位移。
- 把位移加到原案例驗收的 HiNC 讀值上。
原案例的讀值來自真的半精修毛胚、物理開;位移來自替代毛胚、物理關。精修會把這些點上的料全部切掉,所以兩者可以相加;但結果是推算,不是一趟播放(難題 10)。
| NX(20 點) | G1(25 點) | |
|---|---|---|
| 位移的平均:量到 | +0.0181 mm | −0.0204 mm |
| 位移的平均:設計的預測 | +0.018 mm | −0.020 mm |
| 逐點與設計預測的最大差 | 0.00047 mm | 0.00085 mm |
| 位移的範圍 | +0.0114…+0.0253 mm | −0.0284…−0.0123 mm |
| 原案例 HiNC 讀值的範圍 | −0.001…+0.141 mm | −0.017…+0.024 mm |
| 推算(原案例+位移)的範圍 | +0.0186…+0.161 mm | −0.0333…+0.0117 mm(平均 −0.0158) |
| 落在 ±0.01 mm 外:論文量測/原案例/推算 | 14/14/20 點 | 0/9/20 點 |
| 第 4–5 列的平均:原案例 → 推算 | +0.1126 → +0.1307 mm | −0.003 → −0.0234 mm |
- NX 與 G1 的差變大約三分之一。 NX 與 G1 第 4–5 列平均的差,是原案例針對下緣兩列的那條標準。它由 0.1156 mm 變成 0.1541 mm,多了約 33 %;以論文偏差圖的標註值算是 0.1125 mm。
- 哪些預測在播放之前。 設計代理寫的是 0.116 → 0.154 mm,以及 G1 由 9 點變 20 點。這些數字與逐點表在它的設計紀錄裡;紀錄寫於計畫之前,卻在 21:54 才提交,晚於十二次播放(21:03–21:48)。播放前提交的計畫寫的是平均 +0.018/−0.020 mm,量到的是 +0.0181/−0.0204 mm。
- G1 會落到論文的範圍外。 論文量到的 G1 25 點全部在 ±0.01 mm 內。在這台 C 軸偏 0.020 mm、又沒校正的機台上,照這個推算,會有 20 點超出。
- 論文自己的比較說明不了這個誤差。 論文量測與原案例的名目仿真,平均只差 0.0019 mm(NX)與 0.0047 mm(G1)。但論文沒寫怎麼對位,所以這不能拿來斷定作者的機台有沒有這個誤差。
論文的 45 個量測點(推算)。灰方塊是原案例驗收的 HiNC 讀值,菱形是再加上本案在同一點量到的位移,空心圓是論文的量測值。NX 每點多留 0.011…0.025 mm;G1 每點多切 0.012…0.028 mm,25 點中落在 ±0.01 mm 外的由 9 點變成 20 點。縱軸正負對稱。HiNC 3.2.46 開發版(含誤差項),0.0625 mm。
45 點的數字表(mm)
| 程式 | 列–點 | 高度 Z | 論文 | 原案例 HiNC | 本案量到的位移 | 設計預測的位移 | 推算:原案例+位移 |
|---|---|---|---|---|---|---|---|
| NX | 1–1 | −7.6 | +0.02 | +0.014 | +0.01295 | +0.013 | +0.0270 |
| NX | 1–2 | −9.2 | +0.02 | +0.017 | +0.01607 | +0.016 | +0.0331 |
| NX | 1–3 | −8.5 | −0.00 | −0.001 | +0.01957 | +0.020 | +0.0186 |
| NX | 1–4 | −8.5 | +0.02 | +0.017 | +0.02185 | +0.022 | +0.0388 |
| NX | 2–1 | −18.9 | +0.02 | +0.021 | +0.01279 | +0.013 | +0.0338 |
| NX | 2–2 | −17.5 | +0.01 | +0.009 | +0.01637 | +0.016 | +0.0254 |
| NX | 2–3 | −17.9 | −0.00 | −0.000 | +0.02076 | +0.021 | +0.0208 |
| NX | 2–4 | −18.7 | +0.01 | +0.008 | +0.02376 | +0.024 | +0.0318 |
| NX | 3–1 | −26.2 | +0.07 | +0.071 | +0.01216 | +0.012 | +0.0832 |
| NX | 3–2 | −25.5 | +0.05 | +0.047 | +0.01636 | +0.016 | +0.0634 |
| NX | 3–3 | −25.9 | −0.00 | −0.001 | +0.02056 | +0.021 | +0.0196 |
| NX | 3–4 | −26.3 | +0.00 | +0.001 | +0.02530 | +0.025 | +0.0263 |
| NX | 4–1 | −32.0 | +0.10 | +0.101 | +0.01140 | +0.011 | +0.1124 |
| NX | 4–2 | −32.1 | +0.10 | +0.098 | +0.01587 | +0.016 | +0.1139 |
| NX | 4–3 | −32.5 | +0.09 | +0.089 | +0.02031 | +0.020 | +0.1093 |
| NX | 4–4 | −32.8 | +0.07 | +0.070 | +0.02520 | +0.025 | +0.0952 |
| NX | 5–1 | −41.0 | +0.13 | +0.130 | +0.01159 | +0.012 | +0.1416 |
| NX | 5–2 | −40.4 | +0.14 | +0.136 | +0.01547 | +0.015 | +0.1515 |
| NX | 5–3 | −40.8 | +0.14 | +0.141 | +0.01998 | +0.020 | +0.1610 |
| NX | 5–4 | −40.8 | +0.13 | +0.136 | +0.02461 | +0.025 | +0.1606 |
| G1 | 1–1 | −7.2 | −0.00 | +0.004 | −0.02748 | −0.027 | −0.0235 |
| G1 | 1–2 | −7.6 | +0.01 | +0.014 | −0.02448 | −0.025 | −0.0105 |
| G1 | 1–3 | −8.1 | +0.01 | +0.013 | −0.02035 | −0.020 | −0.0074 |
| G1 | 1–4 | −7.7 | +0.01 | +0.009 | −0.01737 | −0.017 | −0.0084 |
| G1 | 1–5 | −8.1 | +0.01 | +0.003 | −0.01385 | −0.013 | −0.0108 |
| G1 | 2–1 | −14.3 | +0.01 | +0.009 | −0.02743 | −0.027 | −0.0184 |
| G1 | 2–2 | −14.4 | +0.01 | +0.014 | −0.02346 | −0.024 | −0.0095 |
| G1 | 2–3 | −15.2 | +0.01 | +0.008 | −0.02003 | −0.020 | −0.0120 |
| G1 | 2–4 | −14.4 | +0.00 | −0.002 | −0.01671 | −0.017 | −0.0187 |
| G1 | 2–5 | −14.5 | +0.00 | −0.001 | −0.01312 | −0.013 | −0.0141 |
| G1 | 3–1 | −23.7 | −0.00 | −0.002 | −0.02786 | −0.028 | −0.0299 |
| G1 | 3–2 | −23.4 | +0.01 | +0.014 | −0.02434 | −0.024 | −0.0103 |
| G1 | 3–3 | −24.1 | +0.01 | +0.016 | −0.02043 | −0.020 | −0.0044 |
| G1 | 3–4 | −23.8 | +0.00 | +0.021 | −0.01662 | −0.017 | +0.0044 |
| G1 | 3–5 | −23.8 | +0.00 | +0.024 | −0.01230 | −0.013 | +0.0117 |
| G1 | 4–1 | −32.0 | +0.00 | +0.001 | −0.02790 | −0.028 | −0.0269 |
| G1 | 4–2 | −32.4 | +0.01 | +0.009 | −0.02451 | −0.024 | −0.0155 |
| G1 | 4–3 | −32.1 | +0.01 | +0.006 | −0.01995 | −0.020 | −0.0140 |
| G1 | 4–4 | −31.8 | −0.00 | −0.011 | −0.01593 | −0.016 | −0.0269 |
| G1 | 4–5 | −32.2 | −0.00 | −0.002 | −0.01239 | −0.013 | −0.0144 |
| G1 | 5–1 | −40.0 | +0.00 | +0.000 | −0.02841 | −0.029 | −0.0284 |
| G1 | 5–2 | −40.4 | −0.00 | −0.004 | −0.02449 | −0.025 | −0.0285 |
| G1 | 5–3 | −40.8 | +0.00 | −0.003 | −0.02056 | −0.020 | −0.0236 |
| G1 | 5–4 | −41.1 | −0.01 | −0.017 | −0.01629 | −0.016 | −0.0333 |
| G1 | 5–5 | −41.5 | −0.01 | −0.009 | −0.01336 | −0.013 | −0.0224 |
「論文」「原案例 HiNC」兩欄取自原案例的 45 點表;「設計預測的位移」取自設計代理的預測表,寫於計畫之前、播放後才提交;推算值四捨五入到 0.0001 mm。
控制器知道誤差(不標記)¶
這一趟清掉 EX0C 的標記,開關仍開著,打入與有標記那一趟相同的對刀預設點。機台還是那一台有 EX0C 的機台,但控制器的模型裡有了這個誤差,等於運動學校正過的控制器。在 M128 下,控制器把 C 軸的實際位置算進去,用線性軸補回來。
- 刀尖:每一個切削步與名目差 ≤ 2.4×10⁻¹³ mm(NX)、1.4×10⁻¹³ mm(G1)。
- 零件:匯出的工件逐頂點與名目差 ≤ 5.0×10⁻¹⁰ mm。
Diff--Stats的八個數與對照趟完全相同,前視、等角視的 Diff 畫面也與對照趟逐像素相同。 - 機械座標:B、C 與名目趟、與有標記那一趟都逐位相同。X/Y/Z 的差分成三組,每組都對到自己的式子:
| 比較 | 式子與意思 | NX | G1 | 殘差 NX/G1 |
|---|---|---|---|---|
| 不標記減有標記(兩趟打入同樣的預設點) | RY(−B)(I − RZ(−C))·d:校正前後機械座標的差,也就是計畫寫的式子 | 長度 0.0153–0.0355 mm;ΔX 絕對值最多 0.0314、ΔY +0.0142…+0.0200、ΔZ 絕對值最多 0.0035 mm | 長度 0.0203–0.0340 mm;ΔX 絕對值最多 0.0287、ΔY −0.0200…−0.0175、ΔZ 絕對值最多 0.0028 mm | 2.4×10⁻¹³/1.4×10⁻¹³ mm |
| 不標記減名目 | RY(−B)·d:C 軸真正的位置,與 C 無關 | 合公式的每一步正好 0.020 mm;切削步 ΔX +0.01987…+0.01992、ΔY 0、ΔZ −0.00228…−0.00174 mm | 合公式的每一步正好 0.020 mm;切削步 ΔX +0.01987…+0.01992、ΔY 0、ΔZ +0.00183…+0.00229 mm | 2.3×10⁻¹³/1.3×10⁻¹³ mm |
| 有標記減名目 | RY(−B)RZ(−C)·d:對刀預設點多打的 0.020 mm 經 M128 轉過的量 |
合公式的每一步正好 0.020 mm | 合公式的每一步正好 0.020 mm | 2.4×10⁻¹³/1.3×10⁻¹³ mm |
表中「合公式的每一步」,指有標記那一趟合公式的 2,273 步(NX)與 1,843 步(G1);第二列的 ΔX、ΔZ 範圍取切削步。不合公式的步上,第二、三列的值是:
- 換刀位置那 9/11 步:三趟的機械座標相同,差 0;
M128後第一段FMAX(109/84 步):差在 0 與 0.020 mm 之間;- 其餘:0.020 mm。
計畫預測「不標記:MC.X/Y/Z 多走 (d(1 − cos C)·cos B, d·sin C, d(1 − cos C)·sin B),最多約 40 µm」,沒寫比較的對象。實際量到:
- 相對打入同樣對刀預設點的有標記那一趟,差的正是這個式子,最多 0.0355 mm(NX)/0.0340 mm(G1)。
- 相對名目趟(預設點 X −30),合公式的每一步都是固定 0.020 mm 的 RY(−B)·d,與 C 無關(難題 5)。
表的最後一列還說明一件事:有標記那一趟與名目趟的機械座標並不相同,差別正好是打入的預設點差經 M128 轉過的量,沒有別的成分。「開關不改機械座標」只在工作偏移相同時成立。
線性軸相對名目趟的位置差,兩趟都打入對刀預設點。左:控制器不知道誤差(標記),差的是隨 C 轉的預設點差 RY(−B)·RZ(−C)·d,刀尖因此離開程式。右:控制器知道誤差(不標記),每個切削步 X 比名目大 d·cos B(約 +0.020 mm),Z 差 d·sin B(NX −0.0023…−0.0017、G1 +0.0018…+0.0023 mm),Y 不動,刀尖回到程式上。點是量到的,黑線是預測;縱軸正負對稱。HiNC 3.2.46 開發版(含誤差項)。

NX(03)的 Diff,前視。畫面在同一台有 EX0C 的機台的兩趟之間原地交替:控制器不知道誤差(標記),與控制器知道誤差(不標記)。知道誤差的那一趟切回名目,畫面與對照趟逐像素相同。Diff 色階 ±0.03 mm(紅=過切、藍=留料、綠=0,正負同權重);0.0625 mm;HiNC 3.2.46 開發版(含誤差項)。

G1(04.1–04.3)的 Diff,前視,原地交替控制器不知道誤差(標記)與知道誤差(不標記)。色階、格距與版本同上。
對照趟與 Diff--Stats¶
對照趟(開關關、做 Diff)其實就是名目趟再播一次,逐步序列與名目逐位相同。它的四張畫面(兩組 × 前視、等角視)100 % 的像素在 ±0.001 mm 內,而且與不標記那一趟的四張畫面逐位元組相同。
做 Diff 的八趟的 Diff--Stats
| 趟 | 回報的葉 | 比較前的表面葉 | 隨需展開 | 新節點 | NaN 葉 | 量到的量測線 | 沒量到的量測線 | 目標三角形 |
|---|---|---|---|---|---|---|---|---|
| NX,有標記 | 1,423,270 | 1,396,005 | 19,343 | 46,608 | 164 | 5,602,677 | 4,757 | 2,791,548 |
| NX,對照與不標記 | 1,422,853 | 1,395,788 | 19,278 | 46,343 | 0 | 5,602,407 | 516 | 2,791,548 |
| G1,有標記 | 1,421,697 | 1,394,641 | 19,053 | 46,109 | 0 | 5,602,460 | 2,929 | 2,789,554 |
| G1,對照與不標記 | 1,421,942 | 1,394,793 | 19,097 | 46,246 | 1 | 5,603,733 | 538 | 2,789,554 |
| NX,有標記,修剪(0.25 mm) | 1,044,810 | 936,237 | 53,786 | 162,359 | 169 | 4,104,514 | 2,890 | 1,868,266 |
| G1,有標記,修剪(0.25 mm) | 1,077,674 | 913,457 | 72,603 | 236,820 | 0 | 4,237,837 | 1,764 | 1,829,980 |
名目趟不做 Diff。兩組的對照與不標記,八個數都完全相同。0.0625 mm 的六趟裡 NaN 葉最多 164 個(NX 有標記,回報葉的 0.012 %);0.25 mm 的 NX 有標記那一趟有 169 個(0.016 %)。
刀具與刀把¶

G1 誤差項開、有標記切完的工件。再用原案例的停刀程式 pose-g1-bottom-pass.h(04.3 的 G1 複本截到第 46 單節),在同一組打入的預設點下播放,讓刀停在底道中段(近景)。錐度球刀、Ø11.4 頸部與熱縮刀把都在畫面裡;葉面疊 Diff 顏色,黃到紅=過切。Diff 色階 ±0.03 mm(紅=過切、藍=留料、綠=0,正負同權重);0.0625 mm;HiNC 3.2.46 開發版(含誤差項)。

同一刻的等角視:刀具、頸部與熱縮刀把在葉面前方,葉面依 Diff 呈黃到紅。色階、格距與版本同上。
停刀程式重走的是已經切完的底道,一點料都沒碰到:播放 381 步、205.3 秒、Finished,並回報 Play-Touch--None。所以畫面上的 Diff 就是 G1 有標記那一趟切出來的。
執行成本¶
以下都在共用的 32 執行緒伺服器上,以 HiNC 3.2.46 開發版(含誤差項)的私有實例執行。
| 播放 | 格距 | 步數 | 牆鐘時間 | VmHWM |
|---|---|---|---|---|
| NX 名目,修剪 | 0.25 mm | 2,410 | 30.0 秒 | 2.57 GiB(同一實例累積) |
| NX 有標記,修剪 | 0.25 mm | 2,410 | 140.3 秒 | 4.20 GiB(同一實例累積) |
| G1 名目,修剪 | 0.25 mm | 2,011 | 25.0 秒 | 5.68 GiB(同一實例累積) |
| G1 有標記,修剪 | 0.25 mm | 2,011 | 130.2 秒 | 6.10 GiB(同一實例累積) |
| NX 名目 | 0.0625 mm | 2,410 | 55.1 秒 | 3.40 GiB |
| NX 對照 | 0.0625 mm | 2,410 | 275.5 秒 | 4.60 GiB |
| NX 不標記 | 0.0625 mm | 2,410 | 285.5 秒 | 5.13 GiB |
| NX 有標記 | 0.0625 mm | 2,410 | 285.5 秒 | 5.64 GiB |
| G1 名目 | 0.0625 mm | 2,011 | 55.1 秒 | 3.33 GiB |
| G1 對照 | 0.0625 mm | 2,011 | 280.6 秒 | 4.46 GiB |
| G1 不標記 | 0.0625 mm | 2,011 | 280.5 秒 | 5.24 GiB |
| G1 有標記 | 0.0625 mm | 2,011 | 250.4 秒 | 5.31 GiB |
| 拍刀把(停刀程式) | 0.0625 mm | 381 | 205.3 秒 | 沒有記 |
-
VmHWM 是行程常駐記憶體的最高水位,由 bytes 換算:GiB = bytes ÷ 2³⁰。
- 全量每趟開始前都重啟實例,所以 VmHWM 是那一趟自己的峰值,包含 Diff、匯出與毛胚紀錄。
- 四趟修剪在同一個實例上接著跑,所以是到那時為止的累積峰值。
- 計畫的停止線「單趟 30 GB」用 GB(bytes ÷ 10⁹);最高的 NX 有標記那一趟是 6.05 GB。
-
牆鐘時間從開始播放算到第一次輪詢讀到
Finished,所以包含播放後的 Diff、匯出與毛胚紀錄。名目趟不做 Diff,是 55.1 秒;做 Diff 的六趟是 250.4–285.5 秒。量的時候伺服器上還有別的播放,所以代理沒有把各段時間拆開。 - 總時間。 全量八趟在 2026-10-06 從 21:18:06 跑到 21:48:58,含每趟前重啟實例,約 31 分鐘;牆鐘時間合計 1,768 秒。修剪四趟合計 325.5 秒,拍刀把 205.3 秒。
-
與設計的估計比。
- 全量趟:設計估每趟 2–3 分鐘、峰值 ≤ 15 GiB;量到每趟 0.9–4.8 分鐘、≤ 5.64 GiB。
- 修剪趟:設計估每趟約 20 秒、≤ 6 GB;做 Diff 的兩趟要 130–140 秒,同一實例累積到 6.55 GB。
- 停止線(單趟 30 GB)沒有碰到。
它說明了什麼¶
對加工工程師。
- C 軸的迴轉中心只偏 0.020 mm,這片葉片在
M128下就整面偏 0.010–0.029 mm:NX 程式的葉片變厚,G1 程式的變薄。對刀只吃得掉一個姿態的偏移,也就是 C = 0;側銑時 C 已經離那裡轉開 45° 以上。 - 兩支程式用相反的 B/C 解,誤差的正負號也相反。所以同一台機台上兩支程式切得不同,不一定是程式的問題;先看機台的運動學有沒有校正。線索在這裡:刀具半徑錯,會讓兩支程式往同一方向偏;C 軸位置錯,會讓它們反向偏。
- 論文的 G1 葉片在 ±0.01 mm 內。照這裡的推算,在這台沒校正的機台上,25 點會有 20 點超出這個範圍。
- 運動學校正過的控制器能把誤差整個補回來,代價只是切削時線性軸每一步都離名目位置 0.020 mm。
- 在 HiNC 裡,可以把一台機台量到的常數誤差放進它的模型;上機之前,就看得到這個誤差在自己零件上的樣子與大小。
對老師或學生。
- 旋轉軸的位置誤差,怎麼變成刀尖偏移 (I − RZ(C))·d;為什麼它只看 C,與 B 和刀的位置無關。
- 為什麼「刀幾乎是直的」不等於「誤差像三軸一樣小」:B 只傾 5–6.6°,C 卻離對刀姿態轉開 45–125°(G1 走短路徑,是 61–116°),所以 C 的位置誤差印到零件上是 0.77–1.77 倍。
- 葉面只留下偏移的法向分量,所以 NX 的偏差沿弦由 +0.012 加大到 +0.026 mm。
- 真實機台的對刀與 HiNC 在名目鏈上量的 P0 差在哪裡,以及機械座標要拿哪一趟來比。
對評估這種做法值不值得的人。
- 成本。 建置加十二次播放,另有一次拍刀把;全量八趟約 31 分鐘伺服器時間,每趟記憶體 ≤ 5.64 GiB。
-
預測。 計畫的預測在播放前提交:
- 刀尖公式逐步對到 10⁻¹³ mm 級;
- 沿弦五段與預測最多差 0.0010 mm;
- 論文 45 點的平均位移量到 +0.0181/−0.0204 mm,計畫寫的是 +0.018/−0.020 mm。
設計代理的逐點預測,平均起來與量到的位移差不到 0.00003 mm,逐點最多差 0.00047 mm(NX)與 0.00085 mm(G1)。它寫於計畫之前,但播放後才提交,所以提交紀錄證明不了它是事先寫的。
-
沒中的地方。 預測沒中、或照字面驗不了的地方,都照量到的寫:機械座標的比較對象、
M128下沒有 C = 0 的步,以及 NX 整個框的 98.99 %。
誠實的限制¶
- 只放了一個誤差。 這一案只有 EX0C。真實的五軸機同時有好幾項誤差,例如 C 軸在 Y 向的位置誤差、B 軸的位置誤差、B 與 C 之間的垂直度。誤差項只能表達常數誤差;隨位置變化的誤差(定位、真直度、體積誤差表)、背隙、伺服不匹配與熱變形都表達不了(機台幾何誤差)。
- 大小與正負號是選的。 0.020 mm 是典型值,+X 也是選的。δ 對 d 是線性的,所以取 −X 時,兩支程式的正負號會對調,大小不變:NX 變薄、G1 變厚。
- 機台不是論文的那一台。 論文沒寫用哪台機台;這裡是原案例自選的通用 B/C 雙轉台機。
-
毛胚是替代毛胚。 每一趟都從設計面外長 0.484 mm 的替代毛胚起播,不播 01、02。真實機台上,02(
M128、C 0–360°)也帶同一個誤差;但精修會把葉面上的料全部切掉,所以 02 的誤差不影響葉面(推得)。框底 Z −43…−41.6 那一條算作替代毛胚,不進精修帶的統計。那裡有 6,125 點離設計面至少 0.45 mm:- 4,510 點兩趟的精修刀都沒碰到,兩趟是同一個替代毛胚表面;
- 另 1,615 點,名目趟切得比有標記那一趟深(有標記那一趟沒碰到,或只擦掉不到 0.034 mm),留料最多 +0.024 mm。
-
只看幾何。 物理關,沒有切削力與撓曲;原案例驗收時物理是開的。
- 對刀是手打的。 HiNC 的 P0 在名目鏈上量,不會像真實機台的對刀那樣把誤差吃進去。誤差項開的兩趟用的預設點是推算的,不是在仿真裡對刀量出來的。
- 論文 45 點的「加上誤差」是推算,不是一趟播放(難題 10)。
- 刀把間隙是推算。 至少 5.11 mm,是原案例的 5.15 mm 減去最大位移;本案沒有量,佐證只有 HiNC 的碰撞偵測沒有回報。
-
對照趟沒有自己的網格。 它的雜訊底由三樣證據判:
- 畫面色相(1° 色相 = 0.00025 mm;暗的或反鋸齒的像素可能差幾度);
- 逐步序列;
Diff--Stats。
-
葉面點的挑法。 挑法依賴原案例的 NURBS 設計面格點(480 × 210、1 mm 以內),並把離設計面至少 0.45 mm 的點判為替代毛胚。換一種挑法,各段的中位數會差到 1×10⁻⁴ mm 級。網格距離以最近 12 個三角形求距離,銳邊附近有假象(難題 8)。
- 只有 G1 有刀把畫面。 計畫只要求一張刀把入鏡的圖,所以 NX 沒有刀把近景。
- 紀錄缺了幾項。 紀錄只收 Warning 以上,所以沒有
executedLineCount,也沒有 Warning 以下的訊息。拍刀把那一次播放的紀錄在第一個警告代碼後被截斷,記憶體也沒有記。 - 牆鐘時間在負載下量。 伺服器上同時有別的播放。狀態每 5 秒輪詢一次,所以牆鐘時間最多可能晚 5 秒。修剪趟的 VmHWM 是同一個實例的累積值。
讀者可以帶到自己案例的¶
- 把誤差放在一條自己的連接上,緊接在它所屬那一軸的上游。 那一軸自己的連接、值與角色都照舊(誤差項放在哪裡 (Where an Error Term Goes),英文,未鏡像)。
- 把對刀會量到的每一個工作偏移都打進去。 HiNC 的 P0 在名目鏈上量,真實機台的對刀卻會把對刀姿態下誤差造成的偏移吃進去。程式像這裡一樣從不只一個預設點跑時,每一個都要從同一次對刀推出來,否則各支程式就不是同一次對刀(程式原點對齊)。
- 第一次播放前,先把刀尖偏移的封閉式寫下來,並在第一個切削步核對正負號。 旋轉軸的位置誤差給出 δ = (I − R(C))·d。這個式子沒有常數項,所以工作偏移推錯或沒生效時,每一步都會多一個常數差。
- 逐步比對全部的步,而不只切削步,再把不合的步依程式行分組。 這裡不合的是換刀、
M128後的第一段進刀,以及旋轉軸轉回原位,全都在空中。 - 讓兩支用相反旋轉軸解的程式,分辨機台的誤差與刀具的誤差。 C 軸位置錯會讓兩面反向偏,刀具半徑錯會讓兩面同向偏。
- 比機械座標,要拿工作偏移相同的那一趟比。 只有那時,「開關不改機械座標」才成立。
- 以名目切出的工件當理想幾何,並且只判精修刀切到的部分。 這樣 Diff 只顯示誤差,不含刀路本身的痕跡;刀沒碰過的替代毛胚表面,也不會被當成結果。
- 網格距離只引用百分位,不引用極值。 在邊緣與道次交界,極值可能是格子或距離搜尋造成的假象。
- 拍圖用的停刀程式,要在它所呈現那一趟的工作偏移下播。 否則它可能在記下的毛胚上再切一刀。
- 放大誤差之前,先試真實值。 這裡 0.0625 mm 的格子讀得到 0.01–0.03 mm 的偏差,只有格寬的 16–46 %;錐刀重掃的預測在 99 % 的點上差 ≤ 0.0004 mm。
來源與授權¶
- 來源。 K. Rajain, G. Gómez Escudero, M. Bizzarri, H. Gonzalez Barrio, A. Calleja-Ochoa, L. N. López de Lacalle, M. Barton, High-quality smooth finishing of blade-like geometries via G1 multi-pass 5-axis flank CNC machining using conical cutting tools, Zenodo (2025)——https://zenodo.org/records/15830311;論文見 K. Rajain 等人,The International Journal of Advanced Manufacturing Technology 136, 4383–4397 (2025),https://doi.org/10.1007/s00170-024-14898-6。連結若搬移,可搜尋
zenodo 15830311或標題。 -
本研究用到資料集的:
03.Finishing_NX.h照原樣用,以及原案例改過兩行的04.1–04.3複本;- 偏差圖
dimentional_deviation_blade.png上 45 個標註點的值,由原案例讀出; - 葉片的 NURBS 曲面:原案例把它定位、轉成實體,這裡用來挑葉面頂點。
-
授權。 資料集以 Creative Commons Attribution 4.0 International 授權,https://creativecommons.org/licenses/by/4.0/,照原樣提供、不附任何保證。
- 已出版的論文不是開放取用。
- 本頁幾個出自論文的事實沿用原案例:60 × 50 × 60 mm 的塊料、AISI 1045 材料,以及論文沒寫用哪台機台、也沒寫量測怎麼對位。
- 原案例讀自 BCAM 典藏庫中作者的提交版本 https://bird.bcamath.org/handle/20.500.11824/1905(CC BY-NC-SA 3.0 ES),該版本讀過、沒有保留。
出處標示,照原案例的來源紀錄:
NC programs, blade models and deviation map: K. Rajain, G. Gómez Escudero, M. Bizzarri, H. Gonzalez Barrio, A. Calleja-Ochoa, L. N. López de Lacalle, M. Barton, "High-quality smooth finishing of blade-like geometries via G1 multi-pass 5-axis flank CNC machining using conical cutting tools", Zenodo (2025), https://zenodo.org/records/15830311; described in K. Rajain et al., The International Journal of Advanced Manufacturing Technology 136, 4383-4397 (2025), https://doi.org/10.1007/s00170-024-14898-6. Licensed CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), provided as-is and as-available without warranties (CC BY 4.0 Section 5). Changes: the three G1 programs are played from copies with two lines changed (TOOL CALL 0 -> TOOL CALL 22; CYCL DEF 7.0 -> CYCL DEF 7.0 DATUM SHIFT); blade_full.obj was placed in the programs' frame and meshed into a closed solid; the map's labelled points were located on the image; for pictures only, 03 and the G1 copy of 04.3 were cut short so that a play ends in the middle of the bottom pass.
本研究另外做的:
- 程式沒有再改。拍刀把用的停刀程式
pose-g1-bottom-pass.h,就是出處標示裡寫的「為拍圖截短的 04.3 G1 複本」。 - 仿真的機台加了誤差項 EX0C;誤差的位置、大小、正負號與對刀預設點,都是代理選的。
- 本頁沒有重製論文或資料集的任何圖。所有畫面都是 HiNC 的截圖;圖表畫的是 HiNC 的逐步結果與切削網格,以及資料集偏差圖上的標註值。
- 全部是仿真,沒有切過任何葉片。本站不提供下載:讀者自行到 Zenodo 取得原始檔。
另見¶
- BCAM 薄葉片:在切削之前就分辨出兩種五軸側銑精加工——葉片、機台與兩種精修怎麼設定、怎麼通過驗收
- 建立虛擬工具機:誤差項——標記會改變什麼、啟用誤差項開關,以及有誤差項的機台上的工作偏移
- 運動拓樸:誤差項連接 (Error-Term Branches)(英文,未鏡像)——控制器求解的名目鏈,以及它看得到什麼
- 模型之外的加工問題:機台幾何誤差——模型放不進的機台誤差
- Heidenhain 控制器支援——
M128、CYCL DEF 247的預設點,以及疊在其上的CYCL DEF 7平移 - 工作流程:幾何驗證——幾何差異、偵測半徑與色階
- 程式原點對齊——P0,以及手動打入量到的工作偏移
- 實作案例——其他案例,以及案例頁怎麼讀