BCAM 薄葉片:在切削之前就分辨出兩種五軸側銑精加工¶
巴斯克應用數學中心 (Basque Center for Applied Mathematics) 與巴斯克大學 (University of the Basque Country) 的一個研究團隊,公開了一項比較背後的程式:一個薄的、葉片狀的鋼製零件,以錐刀的側刃精加工,一次用商用 CAM 系統 (NX) 產生的程式,一次用作者自己的多道次演算法(本頁稱為 G1)。他們公開了六支 Heidenhain 程式、以 NURBS 曲面表示的葉片,以及一張他們在完成面上量得的偏差圖:NX 程式在面的底部附近留下最多 +0.14 mm,G1 程式則保持在 ±0.01 mm 之內。他們沒有公開機台、夾具、葉片在程式座標系中的位置,也沒有給三把刀具中兩把的尺寸。
一個 AI 代理 (agent) 依這些檔案、資料集對錐刀的簡短描述,以及作者論文補充的少數事實建立這個案例。它用半精加工程式把 CAD 放進程式的座標系,在仿真任何東西之前就先以幾何預測出量測圖,接著透過 HiNC 的 Web API 建出並播放專案:粗加工與半精加工只跑一次,兩種精加工都從那次記錄下的毛胚開始,解析度 0.0625 mm。加工完成的零件在論文標示的 45 個點上,與論文數值平均相差 NX 為 0.0019 mm、G1 為 0.0047 mm,沒有任何碰撞。途中代理遇到十一個難題。本頁是這段過程的紀錄,小問題也包括在內。

案例¶
資料集(Zenodo,2025,CC BY 4.0)包含九個檔案:
- 六支程式,Heidenhain TNC 對話式格式:一支三軸粗加工(
01,21 號刀)、一支繞著葉片走一整圈的五軸球刀半精加工(02,24 號刀)、分三道的 NX 側銑精加工(03,22 號刀),以及作者的 G1 精加工,每支程式一道(04.1–04.3)。所有五軸程式都用M128(刀具中心點控制)與 B/C 旋轉軸字。 - 葉片兩份:
blade_full.obj,一片修剪過的雙三次 B-spline 曲面(133 × 73 個控制點),以及blade_front.obj,一個三角網格。 - 偏差圖(論文的 Fig. 16):完成面以 −0.25 至 +0.25 mm 著色,NX 那半邊印有 20 個數值、G1 那半邊 25 個,精度到 0.01 mm。檔案與論文都沒有指名量測它所用的儀器。

紀錄的描述補充了錐刀:它「has a taper angle of 6 degrees, a radius of 3 mm, 3 flutes, a cutting length of 28 mm, and an overall length of 83 mm」(錐角 6 度、半徑 3 mm、3 刃、切削長度 28 mm、全長 83 mm)。
作者提交版的論文(讀過,但沒有保留;它的授權是非商業性的)補充了:一塊 60 × 50 × 60 mm 的 AISI 1045 鋼塊、各刀具的類型、切削速度 100 m/min、每刃 0.03 mm,以及每道側銑 19 mm 的軸向切深。
沒交代的:機台與它的運動學、夾具、鋼塊與葉片在程式座標系中的位置、21 號與 24 號刀的直徑、刀把,以及 G1 程式——帶著原點平移並呼叫 0 號刀——與 NX 程式——兩者都沒有——之間的關係。
代理建了什麼¶
每個值都標明出處:讀取(來源寫明的)、推得(由來源推算的)或自選(來源沒說、由代理決定的)。
| 項目 | 值 |
|---|---|
| 設計模型 | blade_full.obj 放進程式座標系(見下),並網格化成一個封閉實體,從 Z −51.6 的底面到葉片頂部 Z −3.0,141,116 個三角形——推得;在 CAD 的下端(Z −47.95)以下,以它的端截面筆直往下延伸到底面——自選 |
| CAD 放在哪裡 | NC = R·OBJ + t:OBJ Y → X、OBJ Z → −Y、OBJ X → −Z,t = (30, 25, 42.10) mm——只由程式 02 推得 |
| 毛胚 | 60 × 50 × 60 mm——讀取;X 0–60、Y 0–50、頂面在 Z 0——由粗加工的範圍推得 |
| 材料 | AISI 1045——讀取;HiNC 資源庫中與它對應的 JIS 材料 S45C——自選 |
| 機台 | 以簡單方塊組成的通用 B/C 雙轉台機:B 讓工作台繞 Y 傾斜,C 讓它旋轉;機械原點與換刀位置在 Z 600——自選 |
| 夾具 | 一個高 86.6 mm 的墊高座,讓鋼塊頂面位於 C 軸旋轉台上方 146.6 mm——由 G1 程式的原點平移推得 |
| 控制器 | Heidenhain;預設點 1 在程式原點,預設點 2 在 C 軸旋轉台中心——推得 |
| 21 號刀 | 平底端銑刀——讀取(論文);Ø18——推得:從 Z −5.86 到底面 −51.6 的每一層粗加工,刀具中心都與葉片保持 9.496 mm,扣掉論文的 0.5 mm 預留量;刃數、各段長度、伸出量、刀把——自選 |
| 24 號刀 | 球刀——讀取(論文);Ø6——由半精加工刀具路徑的擬合推得;刃數、各段長度、頸部、伸出量與刀把——自選 |
| 22 號刀 | 錐角 6°、半徑 3 mm、3 刃、切削長度 28 mm、全長 83 mm——讀取(紀錄的描述);一把錐度球刀,6° 為半錐角,3 mm 為側刃在刀尖平面處的半徑,刀尖球頭 R3.332——由程式推得;Ø11.4 頸部、熱縮刀把、伸出量 47 mm——自選 |
| 主軸 | 通用電主軸,連續 7.5 kW、最高 24,000 rpm——自選 |
| 轉速與進給 | 3,183、13,793 與 5,305 rpm;精加工各道 477 mm/min——由程式讀取 |
| 程式 | 01、02、03 逐位元組原樣;04.1–04.3 用改了兩行的複本(見下) |
| 任務 | 粗加工與半精加工只跑一次,並記錄下毛胚;NX 與 G1 精加工各自從那筆記錄開始,開啟幾何差異,並匯出加工完成的零件 |

代理怎麼管理這件工作¶
- 什麼算通過,先寫下來。 在任何仿真之前,代理先定下六項標準:G1 的 25 個點全部在設計面 ±0.04 mm 之內;NX 最下兩列每點 +0.05 mm 以上、平均 +0.09 以上,最上兩列 +0.05 以下;NX 最下兩列的平均比 G1 最下兩列的平均至少高 0.07 mm;45 個點中至少 40 個,HiNC 與一個獨立的幾何預測相差在 0.03 mm 之內;一次乾淨的執行;以及照原樣播放 G1 程式
04.1(TOOL CALL 0)時,只做記錄、不下判定。 - 仿真之前先預測。 代理在自己的一支簡短腳本裡,讓錐刀沿每一道精加工刀路掃過,並量它到放好的 CAD 的距離。這項計算與 HiNC 沒有共用任何程式碼,所以兩者一致,就是對雙方的交叉核對。
- 先跑精簡版的執行。 精加工程式先在一個代替半精加工後葉片的替代毛胚上播放——把設計模型加厚半精加工留下的 0.48 mm——只花幾十秒。粗加工與半精加工共 197,265 步,只以驗收解析度 0.0625 mm 跑一次,兩種精加工都從它記錄下的毛胚播放。
- 共用一台伺服器。 這些執行送到一台共用 Linux 伺服器上、已發佈版 HiNC 的一份私有複本,其他代理也在那台伺服器上建其他案例。重的執行都在同一把共用鎖上排隊。驗收鏈第二次啟動時,排在另一個案例的驗收執行後面等了 21 分鐘,卻什麼都沒播放(見最後一個難題);第三次啟動立刻取得鎖,並在同一次持鎖中跑完:粗加工與半精加工 1 h 54 min,然後每種精加工各約 2 分鐘。
- 邊播放邊觀察。 擁有者要求長時間的執行要在播放時就被監看,而不是只在結束時判定:錯的程式原點或錯的刀具補正不會讓播放停下來——它會一連幾個小時持續碰撞、切空氣或切得太深——而不會破壞後續加工的小缺陷,則可以記下來、讓它繼續跑。從那時起,代理每隔幾分鐘(在很短的精加工期間更頻繁)用不改變任何狀態的請求讀一次執行(方法見透過 HTTP API 進行重播驗收 §2):警報數與警告、每個檔案已執行的行數,以及最近 4,000 步中與毛胚接觸的步數比例,還有切削力、降伏應力比與主軸功率的峰值。最後一步的刀具與行號、以及切深峰值,是之後才加進檢查的。這項要求是在粗加工與半精加工進行中提出的,它們在接近結束時做了一次這樣的檢查;NX 精加工在播放途中做了三次,G1 精加工則在它剛播完時做了一次。每一次檢查都讀到沒有警報,精加工各道有 72–74 % 的步在接觸,負載都在刀具與主軸的極限之內。一張在後來某次精加工播放途中拍下的畫布截圖,呈現了刀具,以及到那時為止切出的毛胚。
- 人在哪裡介入。 這個案例是一起收集的十四個案例之一,其中大多是論文裡的單刀實驗。精簡版執行通過之後,擁有者問這些案例是做什麼用的:實作案例是給生產工程師認得出來的零件。代理在驗收鏈開始之前把它從佇列中撤回,並交出一份附圖的頁面,因為一份只有文字的報告沒能讓人看出這個案例在講什麼。擁有者裁定薄葉片是產品案例;驗收是在這項裁定之後才跑的。
- 獨立查核書面紀錄。 本頁發佈之前,五個代理各自拿案例檔案與執行紀錄,逐項查核本頁與公司網站摘要中的一部分——共 322 項陳述。每部分提出的問題,最多五個交給另一個受命反駁它們的代理:24 個成立,1 個被駁倒。其餘 25 個由代理自己權衡。修正都已反映在本頁:一個難題數目、把一張沒有指名儀器的圖說成「掃描」的用詞、一個從側刃而不是從完成面讀出的 G1 範圍、三列刀具的出處,以及 0 號刀的證據——它原本把一把刀放進了一個根本沒有刀的主軸。更早的一輪、在驗收之前的六個反駁代理,撞上了帳號的用量上限,什麼都沒傳回。
難題¶
每一個都依序講述:情況、錯過的風險、怎麼發現、解法,以及證明解法站得住的證據。
哪個檔案才是完成面?¶
- 情況。 資料集把網格命名為
blade_front.obj,讀起來像是加工過的正面。 - 風險。 拿加工完成的零件去和葉片錯的那一面比較。
- 怎麼發現。 CAD 一放好,網格的每一個頂點都落在朝 +Y 的那一面;而所有精加工刀路都走在 −Y 那一面。
- 解法。 改用
blade_full.obj。它的曲面環繞整個葉片、兩端經過修剪,所以把兩端封起來,就得到整片葉片的實體。網格的三角形間距約 2.5 mm,而面的曲率半徑約 45 mm,弦高誤差接近 0.017 mm——和 G1 的偏差一樣大,所以無論如何都不能拿它當設計模型。 - 證據。 網格的頂點落在 NURBS 曲面上 OBJ Z ≤ 0 的那一半(在 5 µm 之內;只有它在 OBJ Z = 0 處切平的邊緣,最多偏離 0.09 mm);精加工刀路只碰到另一半。
葉片在程式座標系的哪裡?¶
- 情況。 CAD 與程式用的是不同的座標系,也沒有給出轉換。
- 風險。 拿精加工程式來擬合 CAD 的位置,會讓 G1 程式在建構上就「吻合」。
- 解法。 只拿半精加工程式
02來擬合:它的球頭以固定的距離繞葉片走一整圈,所以設計曲面就是球心軌跡的一個等距偏移面。從兩個包圍盒所暗示的座標軸互換出發,剛體擬合一直停在這個互換上(7·10⁻⁵ rad 之內),以及 X、Y 各 30 與 25 mm 的平移上(3 µm 之內)——CAD 的原點是 60 × 50 mm 鋼塊的中心——殘差 2.2 µm。沿葉片的高度是決定得最弱的方向(以球半徑 2 到 3.3 mm 做的各次擬合,落在 42.07–42.11 mm)。 - 證據。 用這個擺放,在任何仿真之前,對偏差圖 NX 半邊的幾何預測,與印出的 20 個數值平均只差 0.002 mm、最多 0.008 mm。
「半徑 3 mm」量的是哪裡?¶
- 情況。 6° 的錐面與半徑 3 的刀尖球相切時,三道 G1 與 NX 程式上面兩道,都與設計面保持 0.28–0.30 mm 的距離——從刀尖以上 3 到 23 mm、沿整個弦向都是同樣的間隙。
- 風險。 一把細了 0.3 mm 的刀仍會切進半精加工留下的 0.48 mm,但只切掉其中約 0.19 mm,於是精加工會「留下」一層均勻的 0.3 mm——而沒有任何一支程式留下它。
- 解法。 在每個高度都一樣的間隙是半徑偏移,不是角度誤差(錯的角度會隨高度變大)。所以 6° 是半錐角,而 3 mm 是錐面往下延伸、與刀尖平面相交處的半徑——正是 HiNC 一般 APT 定義直徑的方式。刀尖球的半徑因此是 3 cos 6° / (1 − sin 6°) = 3.332 mm。另一種可能——程式給的是球心而不是刀尖——在程式 02 上測試過,擬合差了五倍。專案用一般 APT 描述這把刀,它明確寫出刀尖球與錐面(直徑 6、圓角半徑 3.332、圓心在刀軸上距刀尖 3.332、beta 6°)。
- 證據。 用這把刀,每一道 G1 的側刃都落在設計面約 −0.02 至 +0.01 mm 之內,而幾何預測在論文的 25 個 G1 點上,把 G1 完成面放在 −0.016 至 +0.025 mm。論文指名的型錄編號(06030B)在網路上找不到。
21 號與 24 號刀的尺寸¶
- 情況。 檔案對它們隻字未提;論文說一把是平底端銑刀、一把是球刀。
- 解法。 從 Z −5.86 到底面的每一層粗加工,刀具中心最近都來到離葉片 9.496 mm;配上論文的 0.5 mm 預留量,就是一把 Ø18 的刀。半精加工的球刀,擬合殘差從半徑 2 到 3.3 幾乎持平(2.24–2.47 µm),在 3(Ø6)最低,這會在葉片上留下 0.48 mm,而不是論文說的「至多 0.2 mm」;要留 0.2 mm,半徑得接近 3.4,介於 3.3(2.32 µm)與 3.5(3.35 µm)的擬合之間,殘差正從那裡開始上升。本頁報告這項不一致,而不是採用論文的數字。
- 證據。 擬合殘差從半徑 3.0 的 2.24 µm,升到 3.5 的 3.35 µm、4.0 的 11.8 µm。粗加工最上面四層掃過整個鋼塊頂面,所以葉片頂部在 Z −3.0。
兩支程式,兩個原點¶
- 情況。 G1 程式以
CYCL DEF 7X−30 Y−25 Z146.6 平移原點;NX 程式沒有平移。然而兩者在程式座標中涵蓋同一個範圍。 - 風險。 在同一個預設點上,G1 刀路會落在離 NX 刀路 30 與 25 mm 之外的地方。
- 解法。 X−30 Y−25 是鋼塊的一半,所以專案把 G1 程式解讀為:從鋼塊中心正下方、頂面以下 146.6 mm 的一個預設點執行,並把那一點當作旋轉台的中心;來源沒有說作者是怎麼執行它們的。專案保留兩個預設點:預設點 1 在程式原點,給
01–03用;預設點 2 在 C 軸旋轉台中心,給04.x用;各自由任務以CYCL DEF 247啟用,就像操作員從基準點預設表啟用一樣。夾具是一個墊高座,剛好把鋼塊頂面放在那個高度。複本把平移的第一行——程式裡是一行空的CYCL DEF 7.0——寫成CYCL DEF 7.0 DATUM SHIFT,帶上 TNC 會顯示的循環名稱。 - 證據。 HiNC 把在程式原點上的預設點 1 放在機械座標 (−30, −25, 46.6);預設點 2 是它加上 (30, 25, −146.6),也就是 (0, 0, −100),C 軸旋轉台頂面的中心。G1 與 NX 刀路精修的是同一面。
0 號刀¶
- 情況。 G1 程式呼叫
TOOL CALL 0。在 TNC 上,0 號刀是零刀,長度與半徑都是 0;HiNC 同樣以長度 0 補正它,而刀具庫中沒有 0 號刀時,主軸上原本的刀留著不動。 - 風險。 照原樣播放時,沿著刀路走的是主軸的量測基準點。在機台上,留在主軸上的刀會以它的全長垂在那一點下方——這裡錐刀連刀把是 127 mm——而且是沿著傾斜的刀軸,那根刀軸在一道刀路中又隨 C 轉動 47° 到 55°,所以刀尖的偏移會改變方向,沒有任何工件座標偏移能修正它。
- 解法。 專案播放的是把
TOOL CALL 0改成呼叫 22 號刀的複本——也就是 NX 程式用的同一把錐刀——這是程式要切到它所寫的位置之前必須做的修改;來源沒有說機台上實際跑的是什麼。 - 證據。 已發佈的
04.1為了記錄,照原樣在替代毛胚上播放一次,主軸上沒有刀:完全沒有切削步,Z 軸主軸頭與零件碰撞 61 次。
機械原點在夾具裡面¶
- 情況。 通用機台的機械原點把主軸的量規線放在旋轉樞軸上,也就是工作台上方 100 mm。
- 風險。 一把 127 mm 的刀一開始,刀把就在墊高座裡面,刀尖在工作台頂面以下 27 mm。
- 怎麼發現。 第一次精簡版執行:33 則碰撞訊息,以及 29 kN 的切削力峰值。
- 解法。 機械原點與換刀位置都放在 Z 600,與 NIST 五軸案例相同。
一把太短、照規則放不下的刀¶
- 情況。 錐刀全長 83 mm,必須伸到葉片頂部以下 42.6 mm;慣用的規則還要再加 5 mm 給刀把的間隙。
- 解法。 伸出量 47 mm、夾持 36 mm;沿四支精加工程式的整條刀路,每 1 mm 路徑、每 2° 旋轉取樣一次,刀把與半精加工後的零件至少保持 5.15 mm。刃部以上一段 Ø11.4 的頸部,讓刀柄離完成面 0.26 mm,換成一般的 Ø12 刀柄就會擦到。
量測點在哪裡?¶
- 情況。 偏差圖給的是數值,不是座標。
- 解法。 每個印出的數值都掛在一條引線上,引線末端是一個小圓圈。用一個圓圈模板,加上一項檢查——圓圈旁邊只有引線、而不是相鄰的數字——找出了全部 45 個。高度取自面的上緣(葉片頂部)與深色底條的上緣(CAD 葉片的下端);弦向位置取自面在每一列上的輪廓。以右邊為 +X 來看,預測與 NX 半邊平均相差 0.002 mm;鏡像的話是 0.021 mm。
切削之前就已知道¶
- 情況。 幾何預測在任何仿真之前就已重現偏差圖的 NX 半邊:最下兩列 +0.07 至 +0.14 mm,最上兩列 0 至 +0.02 mm。
- 代表什麼。 論文量到的 +0.14 mm 幾乎全都在 NX 程式本身:它各道刀路的幾何掃掠,沒有撓曲、沒有機台誤差,就已經在下半部的面上留下 +0.07 至 +0.14 mm,越往刀尖越多。不需要刀具或零件的任何撓曲來解釋它。
兩次沒有跑起來的驗收鏈¶
- 情況。 擁有者的裁定下來後,代理在共用伺服器上以背景方式啟動驗收鏈,然後去做別的工作。
- 風險。 為一個根本不在佇列裡的執行等上好幾個小時,或是一條什麼都沒播放、卻回報自己已完成的鏈。
- 怎麼發現。 第一次,鏈自己的日誌根本不存在:啟動時指定的腳本位置,是私有執行資料夾所在之處,而不是案例工具所在之處,而錯誤寫進了一個沒人讀的檔案。重新啟動後,它排隊等到輪到自己,接著在同一秒內記下三次播放各自的開始與結束:私有的 HiNC 實例重新啟動時沒有開啟任何專案,所以每次播放的第一個請求都被拒絕(
Player command is not a ListCommand)。 - 解法。 在實例上開啟專案——案例的重啟腳本現在會做這件事——並且每次啟動之後,先讀日誌的前幾行(任務清單與
status Running)以及伺服器的鎖表,再離開。 - 證據。 第三次啟動立刻取得鎖,1 h 54 min 之後,日誌記下粗加工與半精加工的 197,265 步。
結果與效益¶
在 HiNC 3.2.42 上量得,加工解析度 0.0625 mm,主軸每轉一圈一步,在一台 32 執行緒、125 GB 記憶體的 Linux 伺服器上。兩種精加工都從第一次播放記錄下的毛胚開始。
| 執行 | 步數 | 仿真時間 | 實際耗時 | 切削力峰值 | 降伏應力比峰值 | 在論文的點上 |
|---|---|---|---|---|---|---|
粗加工與半精加工(01、02) |
197,265 | 34 min 55 s | 1 h 54 min | 724 N | 0.27 | — |
NX 精加工(03) |
2,410 | 24.8 s | 2 min 5 s | 232 N | 0.52 | 與印出的數值平均相差 0.0019 mm,最大 0.0059 mm |
G1 精加工(04.1–04.3) |
2,011 | 21.6 s | 2 min 20 s | 507 N | 0.85 | 平均 0.0047 mm,最大 0.024 mm |
照原樣的 G1 04.1,在替代毛胚上、0.25 mm |
0 | — | — | — | — | Z 軸主軸頭與零件碰撞 61 次 |
私有實例的常駐記憶體,在粗加工與半精加工期間峰值 8.85 GiB,NX 精加工之後 11.73 GiB,到整條鏈結束時至少 13.45 GiB(每 10 秒取樣一次;G1 精加工最後 9 秒還在上升,沒有取到)。主軸功率比在粗加工與半精加工那一段的峰值是 0.28。


兩張圖用同一個色階:藍色是留下的材料(+0.25 mm 以上),綠色是落在設計面上,黃到紅才會是切得太深。論文自己的偏差圖顏色正好相反。

45 個點逐一列出:論文印的值、HiNC 在完成面上的讀值,以及代理在任何模擬之前寫下的幾何預測,單位都是 mm、相對設計面(列由葉片頂部往下,點沿著弦向)。
| 程式 | 列–點 | 高度 Z | 論文 | HiNC | 幾何預測 |
|---|---|---|---|---|---|
| NX | 1–1 | −7.6 | +0.02 | +0.014 | +0.012 |
| NX | 1–2 | −9.2 | +0.02 | +0.017 | +0.017 |
| NX | 1–3 | −8.5 | −0.00 | −0.001 | −0.001 |
| NX | 1–4 | −8.5 | +0.02 | +0.017 | +0.016 |
| NX | 2–1 | −18.9 | +0.02 | +0.021 | +0.021 |
| NX | 2–2 | −17.5 | +0.01 | +0.009 | +0.010 |
| NX | 2–3 | −17.9 | −0.00 | −0.000 | −0.000 |
| NX | 2–4 | −18.7 | +0.01 | +0.008 | +0.008 |
| NX | 3–1 | −26.2 | +0.07 | +0.071 | +0.071 |
| NX | 3–2 | −25.5 | +0.05 | +0.047 | +0.047 |
| NX | 3–3 | −25.9 | −0.00 | −0.001 | −0.001 |
| NX | 3–4 | −26.3 | +0.00 | +0.001 | +0.001 |
| NX | 4–1 | −32.0 | +0.10 | +0.101 | +0.101 |
| NX | 4–2 | −32.1 | +0.10 | +0.098 | +0.098 |
| NX | 4–3 | −32.5 | +0.09 | +0.089 | +0.088 |
| NX | 4–4 | −32.8 | +0.07 | +0.070 | +0.071 |
| NX | 5–1 | −41.0 | +0.13 | +0.130 | +0.130 |
| NX | 5–2 | −40.4 | +0.14 | +0.136 | +0.136 |
| NX | 5–3 | −40.8 | +0.14 | +0.141 | +0.141 |
| NX | 5–4 | −40.8 | +0.13 | +0.136 | +0.136 |
| G1 | 1–1 | −7.2 | −0.00 | +0.004 | +0.004 |
| G1 | 1–2 | −7.6 | +0.01 | +0.014 | +0.014 |
| G1 | 1–3 | −8.1 | +0.01 | +0.013 | +0.013 |
| G1 | 1–4 | −7.7 | +0.01 | +0.009 | +0.009 |
| G1 | 1–5 | −8.1 | +0.01 | +0.003 | +0.003 |
| G1 | 2–1 | −14.3 | +0.01 | +0.009 | +0.008 |
| G1 | 2–2 | −14.4 | +0.01 | +0.014 | +0.015 |
| G1 | 2–3 | −15.2 | +0.01 | +0.008 | +0.008 |
| G1 | 2–4 | −14.4 | +0.00 | −0.002 | −0.002 |
| G1 | 2–5 | −14.5 | +0.00 | −0.001 | −0.001 |
| G1 | 3–1 | −23.7 | −0.00 | −0.002 | −0.002 |
| G1 | 3–2 | −23.4 | +0.01 | +0.014 | +0.013 |
| G1 | 3–3 | −24.1 | +0.01 | +0.016 | +0.016 |
| G1 | 3–4 | −23.8 | +0.00 | +0.021 | +0.022 |
| G1 | 3–5 | −23.8 | +0.00 | +0.024 | +0.025 |
| G1 | 4–1 | −32.0 | +0.00 | +0.001 | +0.001 |
| G1 | 4–2 | −32.4 | +0.01 | +0.009 | +0.010 |
| G1 | 4–3 | −32.1 | +0.01 | +0.006 | +0.006 |
| G1 | 4–4 | −31.8 | −0.00 | −0.011 | −0.011 |
| G1 | 4–5 | −32.2 | −0.00 | −0.002 | −0.001 |
| G1 | 5–1 | −40.0 | +0.00 | +0.000 | −0.001 |
| G1 | 5–2 | −40.4 | −0.00 | −0.004 | −0.004 |
| G1 | 5–3 | −40.8 | +0.00 | −0.003 | −0.003 |
| G1 | 5–4 | −41.1 | −0.01 | −0.017 | −0.016 |
| G1 | 5–5 | −41.5 | −0.01 | −0.009 | −0.009 |
| 標準(在第一次播放之前寫下) | 量得 | 判定 |
|---|---|---|
| G1 的 25 個點全部在設計面 ±0.04 mm 之內,每支 G1 程式都有切削 | 最大 0.024 mm;04.1、04.2、04.3 每個區塊都執行了(71、71 與 76 個,原點平移的四行算一個),完成面七個高度帶的中位數落在 −0.004 至 +0.011 mm(沒切到的那一道,它的高度帶會停在 +0.48) |
通過 |
| NX 最下兩列每點 +0.05 mm 以上、平均 +0.09 以上;最上兩列 +0.05 以下 | +0.070 至 +0.141,平均 +0.113;最上兩列最多 +0.021 | 通過 |
| NX 最下兩列的平均比 G1 的至少高 0.07 mm | 0.116 mm:NX +0.113 對 G1 −0.003(論文印出的值:0.1125;幾何預測:0.115) | 通過 |
| 45 個點中至少 40 個,HiNC 與幾何預測相差在 0.03 mm 之內 | 45 個全部;最大差 0.0018 mm,平均 0.0005 mm | 通過 |
| 一次乾淨的執行 | 每支程式的每個區塊都執行了(01、02、03 各 21,586、21,057 與 514 個);沒有碰撞,沒有快移穿過材料;依代理的檢查刀把離零件 5.15 mm,HiNC 中也沒有刀把碰撞 |
通過 |
照原樣的 04.1,只做記錄 |
在替代毛胚上、0.25 mm:沒有切削步;Z 軸主軸頭與零件碰撞 61 次 | 已記錄 |
精簡版執行跑在前面:兩種精加工都在替代毛胚上以 0.25 mm、主軸每轉一圈一步播放,每支約 20 秒。
| 精簡版執行 | 步數 | 仿真時間 | 在論文的點上 | 切削力峰值 |
|---|---|---|---|---|
NX 精加工(03) |
2,410 | 24.8 s | 平均 0.0019 mm,最大 0.0052 mm | 243 N |
G1 精加工(04.1–04.3) |
2,011 | 21.6 s | 平均 0.0048 mm,最大 0.024 mm | 486 N |
每一步依每轉進給切分,與網格無關,所以步數與仿真時間都和驗收相同。在 45 個點上,精簡版執行的讀值與驗收的數值相差不到 0.0014 mm,所以精簡版執行短短幾十秒就已給出答案。
- 給加工工程師。 HiNC 只憑程式、在切任何金屬之前,就分辨出兩種精加工策略:NX 程式在下半部的面上留下 +0.07 至 +0.14 mm,論文量到的正是 +0.07 至 +0.14;G1 程式在論文的 25 個點上都在 0.024 mm 之內。粗加工與半精加工播放並記錄下來之後,每一種精加工變化只花約兩分鐘的伺服器時間——這就是在記錄下來的毛胚上比較 CAM 策略的代價。HiNC 的碰撞檢查(含刀把)在每一道刀路上都沒有發現任何東西,而代理自己的檢查讓刀把離零件 5.15 mm、頸部離零件 0.26 mm。
- 給老師或學生。 用錐刀側銑:錐面沿著五軸刀路掃過時,可能離開它要精修的曲面一段距離,而且越往刀尖越大;怎麼對照程式去解讀型錄上的「半徑 3 mm」;用一支繞零件一圈的程式來擺放 CAD 模型;以及原點平移與 0 號刀透露了程式是怎麼執行的。
- 給評估這種做法值不值得的人。 從公開檔案到一個通過驗收的仿真:代理自己寫了約 2,100 行 Python(擺放、預測、設定、播放、判定),在共用伺服器上跑了 2 小時的驗收,每次精簡版執行只要幾十秒。人訂下規則(刀把用工廠會用的伸出量、只用公開資料)、裁定哪些案例留在實作案例中,並要求長時間的執行要邊播放邊觀察;其餘都由代理完成。兩次什麼都沒做的啟動,花掉約四小時的等待,沒有花掉伺服器時間。發佈之前,審查代理確認了書面紀錄中的 24 個問題,代理自己又權衡了 25 個;修正都已反映在本頁。
誠實的限制¶
- CAD 的擺放是擬合出來的,不是給定的;它沿葉片的高度在各次擬合之間相差約 0.04 mm(42.07–42.11 mm)。
- 機台、主軸、夾具的形狀與刀把都是代理的選擇;夾具的高度以及 21 號與 24 號刀的直徑是由程式推算的,不是來源寫明的。機台的運動學誤差、刀具的偏擺與撓曲,以及葉片的柔性,都不在比較之中。
- HiNC 加工完成的零件是和設計比較,而不是和論文的量測資料比較:匯出的零件是在 45 個點上沿設計面的法向量測的,論文量測的對位方式不明,而最佳擬合對位會把均勻的偏移藏起來。
- 論文印出的數值精度到 0.01 mm,所以在單一點上優於約 0.005 mm 的吻合,落在印出數值的捨入範圍之內。
- 粗加工與半精加工的最大切深讀值 48.6 mm,等於葉片的整個高度(Z −3.0 至 −51.6),而粗加工的切深應該等於它 2.86 mm 的每層下刀量。這次執行在紀錄被清除之前,沒有找出是哪一步;同一次播放的負載一直很低(724 N,降伏應力比 0.27),加工完成的面也不依賴它。
- 錐刀的角度、半徑、刃數與各段長度讀自資料集的描述;6° 是哪一個角、3 mm 的半徑在哪裡量,是從程式推斷的;型錄資料沒有找到。
- 每支 G1 程式改了兩行才能播放;本頁寫明改了哪兩行、為什麼。
讀者可以帶到自己案例的¶
- 用一支以固定偏移繞零件一整圈的程式來擺放 CAD 模型,而不是用你想要評判的那支程式。
- 刀具與設計之間的間隙若在每個高度都一樣,是半徑問題;隨高度變大的,是角度問題。
- 把公開檔案的檔名(這裡是
blade_front.obj)當成一項要拿程式去核對的主張,而不是當成哪一面被加工過的陳述。 - 一支程式裡有原點平移與 0 號刀,另一支涵蓋同一範圍的程式兩者都沒有,這指向兩個預設點,以及一把由操作員換上的刀。
- 在信任錐刀的曲面之前,先依刀具幾何頁的一致性關係式核對它的 APT 值;錐形球刀要用一般 APT,因為
TaperApt是尖角錐刀。 - 執行切錯位置時,先讀逐步紀錄(
DatumShift、刀具補正),再去改設定。 - 長時間的播放要邊跑邊看——警報數、最近各步的接觸與負載——只有在設定錯誤會毀掉後續加工時才停下它。
- 粗加工與半精加工階段記錄下來之後,就能在那個毛胚上比較各種精加工策略,每種只要幾分鐘。
來源與授權¶
- 來源。 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或標題。 - 授權。 資料集:Creative Commons Attribution 4.0 International,https://creativecommons.org/licenses/by/4.0/。已出版的論文不是開放取用,本案例沒有讀它。本頁在資料集之外取自論文的事實(鋼塊、材料、切削資料、刀具類型、預留量,以及偏差圖的圖號)讀自 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, Zenodo (2025), https://zenodo.org/records/15830311, licensed CC BY 4.0, provided as-is and as-available without warranties. 本頁的圖是 HiNC 對這些程式與模型所做的仿真。
- 修改之處。 三支 G1 程式各以改了兩行的複本播放(
TOOL CALL 0→TOOL CALL 22;CYCL DEF 7.0→CYCL DEF 7.0 DATUM SHIFT);blade_full.obj放進程式座標系,並網格化成從 Z −51.6 到 −3.0 的封閉實體,在 CAD 葉片下端(Z −47.95 至 −47.57)以下,以它的端截面筆直往下延伸到底面;偏差圖上的點是在圖像上定位的。特寫圖在最下一道的中途停下播放,用的是截到第 453 個區塊為止的03複本,以及截到第 46 個區塊為止的04.3G1 複本,各自以自己的END PGM行結尾。其餘一切都照交付的原樣播放。本站不提供下載:讀者自行到 Zenodo 取得原始檔;公司網站保留一份備份。
另見¶
- 實作案例——其他案例,以及案例頁怎麼讀
- Heidenhain 控制器支援——這些程式用到的 klartext 語法結構
- 刀具幾何——APT 參數、刀把輪廓與伸出量
- 幾何驗證——幾何差異
- 專案建構——代理依循的建案順序
- 透過 HTTP API 進行重播驗收——一次執行據以驗收的證據