跳轉到

17 吋鍛造鋁圈的 NC 優化:HiNC 的進給優化讓兩次裝夾少 45 %,精修道保留原進給

17 吋鍛造鋁圈是一個 AI 代理 (agent) 只用三個公開的安裝尺寸數字自己設計、自己寫程式的一體 6061-T6 輪圈:兩次裝夾、六支 Fanuc G43.4 程式,由 HiNC 從代理的五軸刀位點寫回,重播時和刀位點切得一模一樣。六支程式合計 17 分 25 秒。這一頁,代理把這些通過驗收的程式交給 HiNC 的進給優化,問的是工程師拿到結果之前會問的事:能省多少時間、對精修道做了什麼、有沒有哪一行反而比原程式慢。

三個版本都在 HiNC 3.2.45 上以 0.5 mm 的網格,對整個輪圈優化並重播。V1 每一道都優化:9 分 36 秒,少 44.9 %,主軸最高用到連續額定的 0.925;但在精修側銑上刀具也彎得更多,最大的一步從 94.4 µm 變成 140.2 µm。V2 把最後一圈精修側銑與每個背面減重槽的槽底層保留原進給:10 分 01 秒,少 42.5 %,這些道次一步一步照原程式重播,保護它們只花 25.7 秒,是節省量的 5 %。V3 再加上 HiNC 的原始進給率下限 100 %,沒有任何一步比原程式慢:9 分 40 秒,少 44.5 %,保住 V1 節省量的 99 %,精修完全沒動。精修道用保留原進給,而不是用目標切削力壓住,因為在這個五軸側銑上,HiNC 的目標切削力沒有壓住力。

省下的時間大半來自代理替每把刀訂的每刃進給上限,那是鋁用刀具的常用值,不是刀具廠的資料:粗加工刀有 86 % 的切削步、其他刀具幾乎每一步,決定進給的都是上限,而不是主軸。這裡的一切都是仿真,沒有切過任何輪圈。

HiNC 仿真:優化後的粗加工程式,Ø20 mm 端銑刀裝在熱縮刀把上、停在輪圈一個窗的上方,窗壁依主軸功率比上色,由黃到紅,轉角最高

V1 優化後的粗加工程式(T1,Ø20 mm 端銑刀,從 85 mm 熱縮刀把伸出 60 mm)切完窗 0,壁面依切出它那一步的主軸功率比上色,0 到 0.7:由黃到紅,轉角到 0.667 的目標。HiNC 3.2.45、0.5 mm 網格;程式播在 72° 扇區的毛胚上,窗 0 的切削與整個輪圈相同(難題 8)。

在 HiNC 3.2.45 上量得,整個輪圈 0.5 mm 原程式 V1,每一道都優化 V2,精修道保留原進給 V3,V2 且不比原程式慢
加工時間,兩次裝夾 17:25.1 9:35.5(−44.9 %) 10:01.1(−42.5 %) 9:39.7(−44.5 %)
T1 粗加工的主軸功率,對短時/連續額定 0.650/0.886 0.678/0.925 0.678/0.925 0.678/0.924
最高的刀具應力,對降伏的比例 0.367(T5) 0.333 0.333 0.367(T5,被下限撐住)
T2 最後一圈精修側銑,XY 刀尖撓曲,最大/第 99 百分位 94.4/62.4 µm 140.2/70.1 µm 94.4/62.4 µm 94.4/62.4 µm
T6 減重槽槽底層,XY 刀尖撓曲,最大/第 99 百分位 65.2/39.9 µm 82.5/57.9 µm 65.2/39.9 µm 65.2/39.9 µm
銑削面落在設計 ±0.3 mm 內,OP30/OP40 99.98 %/100 % 99.98 %/100 % 99.98 %/100 % 99.98 %/100 %
伺服器時間,兩次裝夾的優化播放與重播 — 821 秒 826 秒 806 秒
記憶體峰值,OP30 的優化播放 — 24.1 GiB 23.8 GiB 22.8 GiB

案例

輪圈本身的案例頁講代理怎麼設計輪圈、寫刀路,並讓兩次裝夾通過驗收;這一頁從那一頁結束的地方開始。代理拿到的是:

  • 六支通過驗收的程式:HiNC 由代理的刀位點寫回的 Fanuc 程式,OP30 四支(正面朝上:T1 粗銑五個輻條窗、T2 五軸側銑窗的 7° 拔模壁、T3 鑽螺栓孔、T4 做 60° 錐座),OP40 兩支(翻面:T6 從輪桶內側銑五個背面減重槽、T5 在 B 72.5° 鑽氣嘴孔),分別是 13 分 13.6 秒與 4 分 11.5 秒。驗收時沒有碰撞、主軸在額定內,銑削面落在設計的 −0.178 到 +0.031 mm 之間。
  • 那個案例的機台、主軸與刀具:通用的工作台 C 軸/擺頭 B 軸五軸機,合成的 15,000 rpm 主軸(連續 22 kW、短時 30 kW),以及六把裝在真實比例刀把上的通用刀具。
  • 要求:以既有案例為基礎,做 HiNC NC 優化的實作案例,由 HiNC 的產品擁有者提出。

沒有任何資料寫明的:

  • 這幾把刀能跑多快。 刀具是通用的,所以沒有刀具廠的每刃進給上限。每把刀拿到的上限是代理的選擇,而它決定了大半的結果。
  • 哪幾道是精修。 程式裡沒有這種標記。代理從自己的 CAM 知道:T2 在每個窗的第二圈是最後的精修側銑,每個背面減重槽的最後一層把槽底與側壁精修到尺寸。
  • 網格讀不讀得到精修留量:側銑留 0.4 mm、槽留 0.3 mm,都在優化所用的 0.5 mm 網格之下。

代理建了什麼

每個值都標明是讀取(來自程式或案例)、推得(由它們算出)、自選(代理的選擇)或預設(照留 HiNC 的預設)。

三個版本,每個版本在每次裝夾各有一次優化播放與一次重播。優化播放播的是原程式,每支程式前面放一個 NC 優化設定,播完寫出優化後的檔案,所以它的逐步結果就是「優化前」。重播在同一台機台、同一個網格上播優化後的程式,它的逐步結果就是「優化後」。合計十二次整輪播放。

版本 改了什麼 回答什麼
V1 每支程式都優化,精修道也包括在內;設定與輪圈案例頁相同 在這些上限下,HiNC 的優化能省掉多少時間
V2 V1,但 T2 的五圈最後精修與 T6 五個槽的槽底層保留原進給 保護精修要付出多少
V3 V2,再加原始進給率下限 100 %:沒有一步比原程式慢 在「程式只准變快」的規則下,收益還剩多少

放在每支程式前面的 NC 優化設定:

設定 值 來源
進給優化、重新插值 開 自選
前進、側向與深度補償 關 自選:補償不在這次研究內
主軸功率與扭矩安全係數 1.5:目標是短時額定的 67 %,輸入 20 kW,低於 22 kW 的連續額定 預設
刀具應力 刀具自己的優化限制,安全係數 3:應力守在降伏的三分之一;執行內容層自己的降伏與熱降伏係數為 0,關不掉刀具那一層 預設(刀具)、自選(執行內容)
目標切削力 無(Infinity) 預設
進給率,最低與最高 300 與 20,000 mm/min 自選:HiNC 預設的最低值 1 mm/min 不是切削進給
沒有切削的區段所用的進給 20,000 mm/min 自選
進給變化的加速度 1,000 mm/s² 自選:預設的 10 mm/s² 會把每一次變速攤到幾百毫米上
切削前後的延伸距離 2 mm 與 2 mm 預設
進給率指派比例 0.01 預設
原始進給率下限 V1、V2 關;V3 開,比例 100 % 預設(關)、自選(V3)
每刃進給上限 每把刀各自,見下表 自選
網格 加工與毛胚都是 0.5 mm 自選:與輪圈案例頁的優化同一個網格,兩者才能直接比較(難題 3)

每把刀自己的優化限制,在每次播放前以 PUT api/Cutter/{id}/opt-limit 送出,並讀回記進執行紀錄:開啟優化、降伏安全係數 3、最小切屑厚度與後角限制開啟、不設最小每刃進給,以及下表的上限。這些上限是碳化鎢端銑刀與鑽頭加工鋁的常用值,不是這幾把刀的廠商資料;每一個都和程式本身已經下的每刃進給並列:

刀具 程式的每刃進給(F ÷ 轉速 ÷ 刃數)——推得 上限——自選 上限 ÷ 程式值
T1 Ø20 端銑刀,3 刃,12,000 rpm 0.119 mm(F4300);吃刀寬時 0.072 mm(F2600);螺旋下刀 0.056 mm 0.18 mm 1.5
T2 Ø12 端銑刀,3 刃,15,000 rpm 0.080 mm(F3600);進刀與退刀 0.022 mm 0.10 mm 1.25
T3 Ø15 鑽頭,2 刃,6,000 rpm 0.125 mm(F1500) 0.15 mm 1.2
T4 Ø25 60° 錐座刀,2 刃,4,000 rpm 錐座 0.050 mm(F400);穿過孔的段 0.150 mm(F1200) 0.05 mm 1.0
T6 Ø12 端銑刀,3 刃,14,000 rpm 0.060 mm(F2520);下刀 0.029 mm(F1200) 0.10 mm 1.67
T5 Ø11.3 鑽頭,2 刃,7,000 rpm 0.100 mm(F1400);以進給退出牆外 0.200 mm(F2800) 0.14 mm 1.4

T4 的上限等於錐座段的程式值,所以優化器只能把 T4 拉回這個值,不會超過它。

V2 與 V3 保留原進給的精修道——讀取自代理的 CAM。在每支程式的複本裡,T2 在五個窗各自的第二圈(每圈 936 行,從它的第一個 G01 到退刀)與五個背面減重槽各自到槽底的那一層(每層 124 到 128 行,從下刀的第一個 G01 到退刀),前後包上 (@@BeginPreserve();) … (@@^EndPreserve(););代理的腳本確認了複本其餘每一行都和原程式相同。運動沒有改變,所以 V2 與 V3 的「優化前」和 V1 是同一次播放。

優化器不改的:快移、換刀,以及 G43.4/G49 那幾行。這個輪圈沒有鑽孔循環:鑽頭的程式寫成 G01 移動,所以和其他切削一樣被優化。

代理怎麼管理這件工作

  • 先寫標準與設定。 九條標準與每個設定的來源,在第一次優化播放之前寫下,試跑也算在內。試跑改變了什麼,在 V2 第一次播放前寫在計畫旁,原文照留。
  • 先修剪。 輪圈的 72° 扇區——一個窗、它的螺栓孔、氣嘴孔,以及兩個背面減重槽各半——先以 1 mm 走完整條流程(優化、重播、確認優化器真的改了進給、嵌入的目標確實落在精修道上),再以 0.5 與 0.25 mm 看網格讀不讀得到精修留量。十五次試跑播放,每次 20 到 230 秒、1.7 到 17.8 GiB。
  • 每個版本整輪跑一次。 HiNC 3.2.45 的私有複本,跑在一台 32 執行緒、同時服務線上實例與其他代理研究的伺服器上。每次吃重的播放前都重啟實例、從檔案重新載入專案,前一次播放的設定就帶不過來;播放在和其他研究共用的鎖上排隊,伺服器可用記憶體有 40 GB 才開始,播放中每三分鐘做一次唯讀檢查,看警報、播到哪一行、接觸與負荷。檢查沒有發出任何警示。
  • 設定讀回。 每次播放後,從實例讀回優化設定與每把刀的限制,和訊息、伺服器時間、記憶體一起保存在結果裡。
  • 人在哪裡介入。 HiNC 的產品擁有者要以既有案例為基礎做 NC 優化的實作案例;版本、設定與標準都是代理自己定的。

第一次優化播放前寫下的標準;切削步指的是有接觸、且去料率大於 0.01 mm³/s 的步:

# 標準
O1 每支優化後的程式都重播到結束,沒有新警報:沒有 Collided、沒有 Play-RapidCut--Detected、沒有行程警報,任何訊息槽都沒有錯誤;重播的每個警告都已出現在優化播放裡;每次優化播放優化的檔案數等於它的程式數
O2 重播時每把刀至少 99 % 的切削步在目標內:短時功率比與扭矩比 ≤ 0.667、應力比 ≤ 0.333;而且每一步:功率比與扭矩比 ≤ 1、應力比 < 1、連續功率比 ≤ 1.05。V3 被下限撐在目標之上的步另計
O3 形狀不變:HiNC 以 0.5 mm 匯出的零件,銑削面至少 99 % 落在設計的 ±0.3 mm 內,且第 1 與第 99 百分位各和原程式同網格的值相差在 0.05 mm 內
O4 時間的預測:V1 −45 % ± 3 個百分點;V2 比 V1 慢,最多 40 秒;V3 不比 V2 慢,最多快 10 秒;時間照實記錄
O5 V2 與 V3 的精修道:切削步的最大 XY 刀尖撓曲 ≤ 原程式最大值 × 1.02,第 99 百分位 ≤ 原程式的 × 1.02;V1 只記錄;三者都和 0.2 mm 公差並列
O6 空切的進給絕不落在料上:重播中指令進給 20,000 mm/min 以上的步沒有一步接觸;每把刀的接觸步數和原程式相差在 1 % 內;優化日誌的未接觸列和原程式的未接觸步相符;以 0.5 mm 優化、在 0.25 mm 重播的扇區程式,空切進給的步也不接觸
O7 輸出檔真的被改寫,而且改寫乾淨:每個優化後的檔案都和原檔不同;程式操作的訊息沒有錯誤;記錄行數與進給範圍
O9 是誰決定進給:每把刀的切削步依決定它的限制分類;預測 T1 約 86 % 頂到上限、14 % 是主軸功率,T2 與 T6 幾乎全頂到上限

計畫裡的第九條標準 O8,預測的是 HiNC 刀具撓曲模型本身的讀數,而不是優化做了什麼,這裡不重述。

難題

每一個都寫出情況、若沒發現會有的風險、怎麼發現、怎麼解決,以及證明解法成立的證據。

1. 五軸側銑上,目標切削力沒有壓住力

  • 情況。 計畫原本用嵌在程式裡的目標切削力保護精修道:在每個精修區塊的第一行加上 (@@OptPreferedForce_N=…;) 註解,到退刀再放開,讓優化器只在那裡壓住力,也就壓住撓曲。
  • 風險。 照計畫用的話,V2 看起來是保護了精修,實際上精修照樣跑在上限,和 V1 一樣。
  • 怎麼發現。 在 72° 扇區以 1 mm 試跑,嵌入的目標正好落在精修步上(T2 有 2,660 步、T6 有 1,954 步帶著它)。代理的檢查腳本接著拿優化前就已超過目標的每一步,比對優化器步級日誌裡力準則允許的每刃進給,和把那一步降到目標所需的值。
  • 結果。 在 T2 的五軸側銑上,超過 343 N 目標的 228 步全部被允許到 0.10 mm 的上限(最大力 552 N);把整支程式設成 300 N,超過的 3,414 步也全部被允許到上限,優化出的側銑程式除了註解之外和 V1 相同。三軸的刀具上,目標只部分有效:粗加工設 700 N,超過的 7,656 步裡仍有 768 步到 0.18 mm 上限;減重槽槽底層設 354 N,超過的 38 步裡有 2 步到上限,扇區重播在這一層的最大力是 399 N,原程式是 667 N,每一道都優化時是 891 N。
  • 解決。 在 V2 第一次播放前寫在計畫旁:精修道改以 BeginPreserve() … EndPreserve() 保留原進給,也就是計畫原本寫好的備案。
  • 證據。 V2 與 V3 的精修道一步一步照原程式重播:T2 最後一圈精修同樣是 13,298 個切削步,最大撓曲 94.4 µm、第 99 百分位 62.4 µm,和優化前相同(標準 O5)。

窗 0 的 T2 最後一圈精修側銑,刀尖撓曲與指令進給對時間:V1 以 4,500 mm/min 跑、6.2 秒結束,進刀處彎到 137 µm;原程式、V2 與 V3 是同一條 3,600 mm/min 的線,8.2 秒結束

窗 0 的 T2 最後一圈精修側銑。V1 把這一圈從 3,600 拉到 4,500 mm/min 的上限:6.2 秒而不是 8.2 秒,整圈都彎得比較多,進刀處最多。V2 與 V3 落在原程式的曲線上。

2. 只會壓到一步的目標規則

  • 情況。 計畫從精修步自己的柔度推出目標切削力:允許撓曲是該道優化前最大的 XY 刀尖撓曲;加速到上限時預測會彎得比它多的每一步,各給出一個值,即允許撓曲除以該步的柔度,目標取其中最小者。
  • 風險。 最大撓曲出在精修圈的進刀步,每刃 0.022 mm,於是允許值很高,這條規則只壓到一步。典型的精修步會多彎約 25 %,線性預測下第 99 百分位從 73 變成 92 µm,違反標準 O5。
  • 怎麼發現。 代理的探索腳本跑在試跑的資料上。
  • 解決。 和難題 1 一起改成保留原進給。這條規則在整輪給出的目標,T2 499 N、T6 562 N,照記而沒有使用。
  • 證據。 O5 在第 99 百分位與最大的一步上都成立。

3. 比精修留量還粗的網格

  • 情況。 研究用 0.5 mm,與輪圈案例頁的優化同一個網格;在扇區上,0.25 mm 的優化播放要 230 秒、17.8 GiB,0.5 mm 是 80 秒、6.5 GiB。精修留量在側銑是 0.4 mm、在槽裡是 0.3 mm。
  • 風險。 網格可能把真正的切削讀成空切。優化器就會把那一段寫成給空切用的 20,000 mm/min,重播時以這個速度把刀推進料裡。
  • 怎麼發現。 第一次播放前就寫進計畫的風險。
  • 解決。 扇區兩種網格都跑:T2 的接觸步在 0.5 mm 是 5,306、在 0.25 mm 也是 5,306;T6 是 15,241 與 15,706,0.5 mm 少 3 %;精修撓曲的第 99 百分位與最大值,T2 是 62.3/87.2 µm 與 59.3/87.3 µm,T6 是 38.5/46.6 µm 與 36.8/44.8 µm。再把以 0.5 mm 優化的扇區程式在 0.25 mm 重播:T1、T2、T3、T4、T6 都沒有任何一步以空切進給碰到毛胚。
  • 證據。 在整個輪圈上,以空切進給的步沒有去掉任何料(標準 O6、難題 6)。

4. 減重槽刀具的切削大半在下刀

  • 情況。 原程式 T6 的 188.9 秒切削裡,有 136.5 秒是每刃 0.029 mm:代理自己的 CAM 寫下的、每一層都以 3° 螺旋下刀的 F1200,多數層深 4 mm、128 行。優化器把這些步提到 0.10 mm 的上限,4,200 mm/min。這就是 V1 裡 T6 −54 % 的大半。
  • 風險。 封閉槽裡的下刀是切屑最難出去的地方,而模型看不到排屑。若當成單純的收益,這 54 % 會高估工廠願意接受的程度。
  • 怎麼發現。 每把刀依時間加權的每刃進給直方圖。
  • 解決。 照實寫出,並附上工廠會採取的做法:給下刀另訂一個上限,或像精修道一樣保留原進給。V2 與 V3 裡,進入槽底層的那一段下刀已經包含在精修區塊中一起保留。
  • 證據。 下圖:T6 原程式的時間落在 0.029 mm(下刀)與 0.060 mm(分層切削),V1 的落在 0.10 mm 上限。

每把刀切削步的每刃進給,依時間加權,原程式為虛線、V1 為實線:原程式的柱落在程式值,V1 的柱落在各刀的上限,上限以點線標出

切削步的每刃進給,依時間加權,原程式與 V1。點線是每把刀的上限。T1 原程式的時間分散在 0.056、0.072 與 0.119 mm;V1 幾乎全部移到 0.18 mm。T3 在 0.033 mm 的柱,是鑽頭入料時的後角限制。

5. 「只准變快」的下限,省下的時間是預測的兩倍

  • 情況。 標準 O4 預測 V3 不比 V2 慢、最多快 10 秒。V3 實際快了 21.5 秒。
  • 風險。 不看分解的話,會以為這個下限只會讓時間變長,或把這個落差當成雜訊。
  • 怎麼發現。 V2 與 V3 逐支程式的時間。
  • 解決。 判定照原文:V3 的 O4 沒有過。分解如下:下限拿掉了鑽頭入料時的變慢(T3,−2.3 秒)以及 T4 穿孔段被拉回錐座上限的那幾段(−2.8 秒),也讓平滑化不能把 T1 與 T6 的進給過渡拖到原進給以下(−9.0 秒與 −7.3 秒)。它還讓每一層第一個接觸步的那幾行,不再寫成 300 mm/min 的下限(見下文結果)。
  • 證據。 下圖:在 T1、T3 與 T4 上,三個版本中都是 V3 最快。

各程式時間對原程式的比例,每支程式三條,V1、V2、V3:鑽頭的 V1 與 V2 超過 100 %,V3 低於;T2 與 T6 在 V2、V3 比 V1 慢,因為它們的精修道保留原進給

各程式的時間對原程式。只有 V1 與 V2 讓程式比原程式慢,Ø15 鑽頭慢 9 %;只准加快的 V3 在那裡反而快 11 %。

6. 量錯東西的標準

  • 情況。 標準 O6 要求每把刀的接觸步數和原程式相差在 1 % 內。一步是主軸轉一圈,所以程式變快,步數就變少:T1 的 129,623 步變成 84,307 步。它的第一條照字面也不成立:每次重播,氣嘴孔鑽頭退出那一行都有一步以空切進給讀到接觸,但沒有去料、也沒有力。
  • 風險。 照原文判,這條標準會把一支變快的程式當成切削不見了。
  • 解決。 照原文判為沒過,另外以別的方式核對它的本意:每支程式的去料體積(去料率乘以步時,逐步加總),和原程式相差在 −1.5 % 到 +1.1 % 之間;以空切進給的步沒有去掉任何料;而優化日誌的未接觸列加上快移步,六支程式都正好等於原程式的未接觸步。
  • 證據。 結果中的去料表。

7. 五次播放共用一次鎖

  • 情況。 每次吃重的播放都在和其他代理研究共用的鎖上排隊;有一次排在另一個研究的播放後面等了 986 秒。
  • 風險。 一次一次排的話,剩下的五次播放要拖上一到兩小時。
  • 解決。 五次播放在同一次持鎖中接連跑完,約 16 分鐘。
  • 證據。 每次播放的紀錄都保存了排隊時間。

8. 同一個視角的優化前後

  • 情況。 圖要在優化前後從同一個鏡頭拍同一處,刀把入鏡,刀具停在同一點,而且不想為每張圖都播一次整輪。
  • 解決。 把整輪的 T1 程式——原程式與 V1 的——播在 72° 扇區的毛胚上,窗 0 的切削與整輪相同;之後各接上同一段只在空氣中移動、把刀具送到拍攝姿態的短程式。
  • 證據。 這裡與本頁開頭的畫面:同一個鏡頭,壁面依切出它的那一步上色。兩次畫面播放分別花了 125 秒與 95 秒。

HiNC 仿真:原程式的粗加工,與頁首同一個視角,窗壁大多是綠色,約主軸額定的 0.45

優化前:原程式在窗 0,依主軸功率比上色,0 到 0.7。壁面大多是綠色,約 0.45;與頁首 V1 優化後的畫面對照。

HiNC 仿真:原程式的粗加工依每刃進給上色,0 到 0.18 mm:窗壁的黃綠色是程式的 0.12 mm,綠色是減速的地方

優化前,依每刃進給上色,0 到 0.18 mm:程式的 0.119 mm,吃刀寬時 0.072 mm。

HiNC 仿真:V1 優化後的粗加工依每刃進給上色:窗壁幾乎全是紅色,也就是 0.18 mm 上限,只有一個轉角比較低

V1 優化後,同樣的上色:幾乎每一步都在 0.18 mm 上限,只有主軸功率目標壓住進給的那個轉角比較低。

結果與效益

在 HiNC 3.2.45 上、整個輪圈以 0.5 mm 量得。標準是第一次優化播放前寫下的那幾條。

# 判定 量得
O1 通過 十二次播放都跑到結束。六次重播:沒有 Collided、沒有 Play-RapidCut--Detected、沒有行程警報,四個訊息槽都沒有警告或錯誤。每次優化播放寫出的檔案數都等於它的程式數。十二次播放裡唯一的警告在 V3 的 OP40 優化播放:NcOpt-Feed--SourceFloorOverTarget,一步(降伏),是下限預期會有的報告
O2 通過 超過目標的切削步:T1 在 V1 與 V2 是 0.066 %、V3 是 0.26 %,其他刀具都是 0 %;沒有一步的功率比或扭矩比超過 1,也沒有一步的應力比達到 1;連續功率比最高 0.925。另計:V3 的氣嘴孔鑽頭有 57 步中的 2 步在降伏的 0.367,是原程式自己的值,被下限撐住
O3 通過 銑削面落在 ±0.3 mm 內:OP30 每個版本都是 99.98 %,和原程式是同樣的五點低於 −0.3 mm(最低 −0.366 mm,在 0.5 mm 網格削圓的稜邊上);OP40 是 100 %。第 1 與第 99 百分位和原程式相差在 0.0003 mm 內
O4 V1 通過、V2 通過、V3 沒過 V1 −44.9 %(預測 −45 ± 3);V2 比 V1 慢 25.7 秒(預測最多 40 秒);V3 比 V2 快 21.5 秒(預測最多 10 秒;難題 5)
O5 通過(V2、V3) T2 最後一圈精修,最大/第 99 百分位 XY 刀尖撓曲:原程式 94.4/62.4 µm,V1 140.2/70.1 µm,V2 與 V3 94.4/62.4 µm;T6 槽底層:65.2/39.9 µm,V1 82.5/57.9 µm,V2 與 V3 65.2/39.9 µm。全部低於 0.2 mm 公差
O6 照原文沒過,本意通過 難題 6
O7 通過 18 個優化後的檔案都和原檔不同;沒有程式操作的訊息;行數與進給範圍見下文
O9 通過 與預測相同;見下表

逐支程式的時間(模擬秒數,不含換刀與上下料;合計取自播放本身的結束時間,所以 V2 各程式四捨五入後加起來比它的合計多 0.1 秒):

程式 原程式 V1 V2 V3
T1 Ø20 粗加工 685.4 369.5(−46 %) 369.5(−46 %) 360.5(−47 %)
T2 Ø12 側銑 86.5 66.7(−23 %) 76.7(−11 %) 76.7(−11 %)
T3 Ø15 鑽頭 11.2 12.2(+9 %) 12.2(+9 %) 9.9(−11 %)
T4 60° 錐座刀 10.5 10.0(−5 %) 10.0(−5 %) 7.2(−32 %)
T6 Ø12 背面減重槽 248.3 114.4(−54 %) 130.1(−48 %) 122.8(−51 %)
T5 Ø11.3 氣嘴孔鑽頭 3.2 2.7(−16 %) 2.7(−16 %) 2.6(−17 %)
兩次裝夾 17:25.1 9:35.5(−44.9 %) 10:01.1(−42.5 %) 9:39.7(−44.5 %)

整個輪圈的模擬加工時間,依程式堆疊,原程式與三個版本:17:25.1、9:35.5、10:01.1 與 9:39.7

整個輪圈,依程式。T1 粗加工佔原程式時間的三分之二,也是大半的節省。

V1 的時間省在哪裡。 V1 省下的 469.6 秒,接觸零件的步佔大半,空中的移動佔其餘;沒有切削的區段,優化器以給空切用的 20,000 mm/min 送出:

刀具 接觸零件的步 空中的步
T1 −244.2 秒 −71.8 秒
T6 −112.1 秒 −21.8 秒
T2 −14.5 秒 −5.2 秒
T3 +0.6 秒 +0.4 秒
T4 +1.9 秒 −2.5 秒
T5 0.0 秒 −0.6 秒

V1 的時間省在哪裡,逐支程式:接觸零件的步與空中的步的變化;T1 −244.2 與 −71.8 秒,T6 −112.1 與 −21.8 秒,鑽頭與錐座刀只差幾秒

V1 對原程式,逐支程式。有三處反而變慢:Ø15 鑽頭入料時,鑽尖剛進入,後角限制把每刃進給壓在 0.033 mm(391 mm/min);錐座刀以 F1200 穿過孔、已經碰到孔緣的那幾段,被拉回 0.05 mm 的上限,也就是 400 mm/min;以及每個新層的第一個接觸步,寫成 300 mm/min 的下限。

負荷怎麼變。 V1 各程式切削步的峰值,優化前與優化後:

程式 主軸功率,短時 連續,優化後 扭矩,優化後 應力,對降伏 最大力 XY 刀尖撓曲,第 99 百分位/最大 頂到上限的步
T1 Ø20 粗加工 0.650 → 0.678 0.925 0.378 0.150 → 0.207 919 → 1,253 N 47.9/53.6 → 66.6/74.1 µm 86.4 %
T2 Ø12 側銑 0.278 → 0.375 0.512 0.186 0.251 → 0.333 551 → 715 N 81.8/101.4 → 94.6/140.2 µm 99.7 %
T3 Ø15 鑽頭 0.305 → 0.362 0.493 0.145 0.033 → 0.039 456 → 530 N 0.0/4.5 → 1.0/2.8 µm 94.5 %
T4 60° 錐座刀 0.172 → 0.172 0.234 0.050 0.009 → 0.009 118 → 59 N 0.39/0.39 → 0.22/0.22 µm 100 %
T6 Ø12 背面減重槽 0.433 → 0.541 0.738 0.236 0.264 → 0.333 820 → 1,013 N 34.3/65.2 → 49.6/82.5 µm 99.85 %
T5 Ø11.3 氣嘴孔鑽頭 0.164 → 0.224 0.306 0.083 0.367 → 0.332 498 → 451 N 104.6/111.6 → 107.8/108.4 µm 76.8 %

撓曲是 HiNC 刀具樑模型的讀數,不是量測。這一案沒有設目標切削力,所以優化器守的是功率、扭矩與應力,不是力:用功率不多的切削被加速之後,最大力就上升,T1 升了三分之一。V2 與 V3 裡 T6 的峰值維持原程式的值(0.433 與 820 N),因為它最重的幾步在保留原進給的槽底層裡。

整個 OP30 每半秒的最大主軸輸入功率,上為原程式、下為 V1,並畫出 30 kW 短時與 22 kW 連續額定,以及 20 kW 的目標:原程式的峰值在 20 kW 以下,歷時 13 分 13.6 秒;V1 平平地貼著 20 kW,7 分 38.4 秒結束

整個 OP30,每 0.5 秒的最大主軸輸入功率。V1 把粗加工壓平在 20 kW 的目標上,也就是主軸輸入功率在短時額定的 67 %,這次裝夾在 7:38.4 結束,而不是 13:13.6。

窗 0 的 T1 粗加工,六層:切削步的最大輸入功率與指令進給對時間,原程式虛線、V1 實線;V1 以 6,480 mm/min 跑,功率碰到 20 kW 目標,74.6 秒切完這個窗,原程式是 137.7 秒

窗 0 的 T1:主軸允許的地方,V1 都跑在 0.18 mm 的上限、6,480 mm/min,功率碰到 20 kW 目標時才減速:74.6 秒而不是 137.7 秒。掉到 300 mm/min 的兩處,是新一層的第一個接觸步。

是誰決定了進給。 優化器會為每一步寫出每個限制各允許多少每刃進給;最低的那一個就是這一步的。這幾次播放都開著平滑化,平滑化會把相鄰的步帶進日誌記下的值,所以下面的比例是日誌記下的限制,而不是關掉平滑化、一步一步單獨測出的。V1 的切削步依決定它的限制分類:

刀具 切削步 每刃進給上限 主軸功率 刀具應力 後角 其他
T1 129,608 86.4 % 13.6 % — — 最低進給 0.07 %
T2 26,525 99.7 % — 0.3 % — —
T3 655 94.5 % — — 5.5 % —
T4 225 100 % — — — —
T6 45,520 99.85 % 1 步 1 步 — 最低進給 0.12 %、主軸扭矩 13 步
T5 56 76.8 % — 21.4 % 1.8 % —

V3 裡,下限決定了 T4 的全部 225 步、T1 的 20 步、T6 的 12 步與 T5 的 1 步,而且沒有任何一行寫成 300 mm/min 的下限。

每把刀、每個版本的切削步,依決定進給的限制分成比例:每把刀大半是每刃進給上限,T1 有 14 % 是主軸功率,T5 約五分之一是刀具應力,T3 有 5 % 是後角,V3 的 T4 全部是原始進給率下限

決定每個切削步進給的限制,取自優化器的步級日誌。V2 與 V3 只計入優化器求解的步:它們保留的精修道不在日誌裡。

每把刀主導比值(功率 ÷ 0.667、扭矩 ÷ 0.667、應力 ÷ 0.333 中最大者)超過某值的切削步比例,原程式與三個版本:T1 優化後的曲線到 1.0,也就是目標;原程式與 V3 的 T5 到 1.10

每一步離它的目標有多近。只有 T1 是主軸在管;T5 有五分之一的步、T2 有少數幾步是刀具應力在管,到 1;其餘停在上限,遠低於 1。T5 在原程式與 V3 都到 1.10,下限把兩步撐在原進給,應力是降伏的 0.367。

精修道。 精修道切削步的 XY 刀尖撓曲與力:

精修道 原程式的切削步 原程式 V1 V2 V3
T2 最後一圈精修側銑,最大/第 99 百分位撓曲 13,298 94.4/62.4 µm 140.2/70.1 µm 94.4/62.4 µm 94.4/62.4 µm
T2 最後一圈精修側銑,最大力 512 N 715 N 512 N 512 N
T6 減重槽槽底層,最大/第 99 百分位撓曲 6,555 65.2/39.9 µm 82.5/57.9 µm 65.2/39.9 µm 65.2/39.9 µm
T6 減重槽槽底層,最大力 820 N 1,013 N 820 N 820 N

精修道 XY 刀尖撓曲超過某值的切削步比例:T2 最後一圈與 T6 槽底層,V1 的曲線都在右邊,到 137 與 80 µm;V2 與 V3 落在原程式的曲線上

精修道的撓曲,超過某值的切削步比例。點線是原程式最大的一步;兩把刀的 V1 都超過它,V2 與 V3 落在原程式的曲線上。

形狀。 每次裝夾後 HiNC 匯出的零件對設計,以 0.5 mm:

零件,銑削面 取樣點 最低 最高 第 1 百分位 第 99 百分位 落在 ±0.3 mm 內
OP30,原程式 24,643 −0.3657 mm +0.0061 mm −0.0607 mm +0.0032 mm 99.98 %
OP30,V1 重播 24,643 −0.3657 mm +0.0073 mm −0.0608 mm +0.0035 mm 99.98 %
OP30,V2 與 V3 重播 24,643 −0.3657 mm +0.0061 mm −0.0607 mm +0.0032 mm 99.98 %
OP40,原程式與每一次重播 29,515 −0.2684 mm +0.0099 mm −0.0186 mm +0.0065 mm 100 %

車削面在每個版本都讀得一樣:OP30 的 275,357 點中有 10 點低於 −0.3 mm(最低 −0.392 mm)、2 點高於 +0.3 mm,OP40 的 270,485 點中 1 點低於、2 點高於;那是 0.5 mm 網格對車削毛胚的表示,輪圈 0.25 mm 的驗收在這些面上每次裝夾只剩一點超出 ±0.3 mm。

去了多少料。 標準 O6 的本意,逐支程式;去料體積是去料率乘以步時,逐步加總:

程式 原程式 V1 V2 V3 以空切進給接觸的步、去料
T1 1,733,353 mm³ +0.22 % +0.22 % +0.22 % 無
T2 65,229 mm³ +0.60 % +0.30 % +0.30 % 無
T3 26,515 mm³ +0.28 % +0.28 % +0.58 % 無
T4 4,036 mm³ −1.54 % −1.54 % 0.00 % 無
T6 67,556 mm³ +1.07 % +0.90 % +0.90 % 無
T5 586.5 mm³ −0.99 % −0.99 % −1.09 % 每個版本 1 步,0 mm³

優化後的檔案。 V1 的六支程式(優化器在重新插值進給的地方會把一行拆成幾行):

程式 行數,原程式 → 優化後 F 字數 寫出的進給 以空切進給的行 寫成 300 mm/min 下限的行
T1 30,992 → 38,513 10,162 300–20,000 mm/min 106 10
T2 9,404 → 9,542 182 1,809–20,000 mm/min 20 0
T3 49 → 75 36 391–20,000 mm/min 5 0
T4 39 → 44 10 400–20,000 mm/min 5 0
T6 5,110 → 5,435 378 300–20,000 mm/min 59 14
T5 21 → 29 9 1,247–20,000 mm/min 2 0

V3 寫出的最低進給,就是每支程式自己的最低值——T1 2,000、T3 1,500、T6 1,200 mm/min——沒有任何一行在下限。

執行的代價,在共用的 32 執行緒伺服器上,伺服器時間與記憶體峰值:

播放 V1 V2 V3
OP30 優化播放(播原程式、寫出優化後的檔案) 390.6 秒、24.13 GiB 385.5 秒、23.82 GiB 375.5 秒、22.77 GiB
OP30 重播 235.3 秒、5.91 GiB 245.3 秒、6.19 GiB 240.3 秒、6.06 GiB
OP40 優化播放 120.2 秒、6.98 GiB 115.1 秒、6.95 GiB 115.1 秒、6.11 GiB
OP40 重播 75.1 秒、5.08 GiB 80.1 秒、5.33 GiB 75.1 秒、3.78 GiB
這個版本 821 秒 826 秒 806 秒

十二次播放合計 2,453 秒,41 分鐘;十五次扇區試跑每次 20 到 230 秒、1.7 到 17.8 GiB,0.25 mm 那次最大;兩次在扇區上的畫面播放是 125 秒與 95 秒。

對加工工程師。 一支主軸負荷原本就在額定內的五軸輪圈程式,HiNC 的優化在不改變形狀之下,把加工時間減少 44.9 %。在這個輪圈上,給每把刀的上限決定了大半,所以這些上限值得像切削參數一樣用心訂。有兩個設定讓結果可以送上機台:精修道保留原進給,在這裡只從 469.6 秒的節省裡少掉 25.7 秒;以及讓每一步都以原進給為下限,沒有一行變慢,還多省了 21.5 秒。步級日誌說出每一步是哪個限制決定的,依時間加權的直方圖說出時間省在哪裡:減重槽刀具的節省大半在下刀,工廠會另外壓住。

對老師或學生。 一支程式就說明了這次優化守住什麼——主軸功率、扭矩、刀具應力、上限——又沒守什麼:力,這裡沒有設目標切削力;撓曲,優化器本身沒有撓曲的準則;以及它留下的壁面。它也說明了上限、目標與下限怎麼一起決定一步,為什麼要保護精修道,為什麼一步就是一轉、變快的程式步數比較少,以及為什麼兩個模擬時間的比例才是可信的部分。

對評估這種做法的人。 從六支通過驗收的程式,到三個優化版本與它們的重播,用了十二次整輪播放、41 分鐘的伺服器時間、最多 24 GiB,再加十五次扇區試跑。代理先寫下標準,在試跑中發現目標切削力壓不住側銑,於是在那個版本開跑前就改了保護的方法,也照實寫出預測沒有命中的地方。留給工程師的,是上限與下刀。

誠實的限制

  • 在這個五軸側銑上,目標切削力壓不住力。 優化前就已超過目標的步,仍被允許到完整的上限;在三軸的刀具上只部分有效。所以精修道是保留原進給,而不是用目標切削力壓住;優化器本身沒有撓曲的準則。
  • 收益取決於代理的上限,那是碳化鎢端銑刀與鑽頭加工鋁的常用值,不是這幾把刀的廠商資料。
  • 撓曲是 HiNC 刀具樑模型的讀數,這裡的去料幾何不包含它。 專案播放時 HiNC 的撓曲變換是關的,所以和設計的比對讀的是程式路徑,彎得更多的精修道在那裡不留痕跡;只有撓曲那幾欄看得到。
  • 沒有建模的:排屑、顫振與表面粗糙度。 T6 的節省大半在封閉槽的下刀。
  • 每一層的第一個接觸步寫成 300 mm/min 的下限——V1 裡 T1 有 10 行、T6 有 14 行——雖然那一步自己的力近乎零(T6 最多 0.19 N、T1 最多 0.41 N):三個準則在那裡都停在下限。V3 的下限讓這些行保持原進給。
  • 以腳本註解嵌入的優化設定,可能被優化器自己的行註記弄壞。 優化器若把它的 (src(...)) 註記接在帶有 @@ 腳本的那一行後面,重播時會把註記讀成腳本的一部分,報出 Script-Compile--Error。一次嵌入目標切削力的扇區試跑出現了一則與兩則;本頁的程式保留原進給的行是原樣複製,沒有這種註記。
  • 時間是 HiNC 依程式進給的理想估計,不含加減速、前瞻與換刀:版本之間的比例可信,絕對時間不是現場的時間——見加工時間估算。
  • 形狀以 0.5 mm 讀,稜邊會被削圓:OP30 低於 −0.3 mm 的那五點,在每個版本與原程式裡都一樣。
  • 機台、主軸與刀具都是通用的,負荷來自 HiNC 材料庫 6061-T6 的係數;沒有在機台上量測任何東西。

讀者可以帶到自己案例的

  • 優化前先標出精修道,沒有其他手段能保護它們時,就用 BeginPreserve() … EndPreserve() 保留(見NC 優化工作流程的〈排除特定行不予優化〉);這裡只花了節省量的 5 %。
  • 確認上限真的有壓住。 拿步級日誌裡每個準則允許的進給,和那一步優化前的負荷比對;一個從不起作用的目標,看起來和起作用的一模一樣。EnableDepthSplition 開著(預設)時,目標切削力那一列若記的是該步原本的每刃進給,表示那一步被力目標釘在下限上,而不是放行。
  • 讀每一步是哪個限制決定的。 若是你訂的上限,結果就只和你的上限一樣好。
  • 讓驗證過的程式以自己的進給為下限。 在 100 % 時,原始進給率下限讓沒有一行比原程式慢,在這裡還省了時間,因為它讓平滑化不會低於原進給。
  • 在相信精修道的優化之前,先拿網格對照精修留量:比較兩種網格的接觸,並在較細的網格上重播優化後的程式。
  • 數標準真正要的東西。 去料體積說得出變快的程式是否還在切;步數說不出來。
  • 看節省從哪裡來。 一把刀的時間被下刀進給佔掉大半,那是要回頭檢討的 CAM 決定,不只是可以收下的收益。
  • 預留記憶體。 優化播放要的記憶體可能是它重播的好幾倍:OP30 在 0.5 mm 是 24 GiB 對 6 GiB,較短的 OP40 則是 7.0 對 5.1 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 本身沒有保留。輪圈設計、毛胚、夾具、機台、主軸、每一條刀路,以及這裡優化的程式都出自代理之手,見輪圈的案例頁。畫面是 HiNC 的仿真,圖表畫的是 HiNC 的逐步結果。本頁的一切都是仿真;沒有切過任何輪圈。

另見