SpaceTeamSat1 立方衛星結構的 NC 優化:HiNC 的進給優化讓原程式回到主軸目標與撓曲上限、只多 3.8 % 的時間,並讓手調版少 9.9 %¶
SpaceTeamSat1 立方衛星結構是六片 Al 7075 板:一個 AI 代理 (agent) 用自己的 2.5 軸 CAM 產生 Fanuc 程式,分 24 次裝夾加工。X- 板的第一次裝夾(X- OP1)是這個案例第一次整支播放程式、看到小刀出問題的地方。照 CAM 第一次寫出的樣子播放,這支程式在 D16 粗加工向主軸要了 1.6 倍的短時額定(第 99 百分位),讓 D6 與 D2 的精修刀彎了 194 與 360 µm,而案例的上限是 D6 牆上 25 µm、D4 與 D2 角落 50 µm。代理一輪一輪手調它的 CAM,直到程式兩條都守住:進給依每一段刀路碰到的料縮放、牆分成半精修與一刀光刀、內凹圓弧放慢、光刀用 80 % 的進給。這次修改要付時間:823.6 秒的模擬時間,原程式是 635.6 秒。這一頁,同一個代理把兩支程式都交給 HiNC 的進給優化——它依每一步讀到的負荷重寫每一行的進給——並問兩個工廠會問的問題:優化器會怎麼處理原程式——哪些過載能靠進給拿掉、要付多少時間——以及在守住主軸與精修撓曲的前提下,手調修改花掉的時間它能收回多少?
在 HiNC 3.2.45、案例 0.125 mm 的網格寬度下,兩支優化後的程式在 HiNC 的模型裡都守住了主軸與精修撓曲。HiNC 對原程式的優化(變體 A)花 659.7 秒:比原程式長 3.8 %,比手調版短 19.9 %。D16 的主軸功率比第 99 百分位從 1.615 降到 0.663;由撓曲上限推得的目標切削力,讓一刀精修回到上限之內:D6 193.9 → 24.1 µm、D4 79.5 → 43.3 µm、D2 359.9 → 49.9 µm。HiNC 對手調版的優化(變體 B)——半精修照程式保留——花 741.8 秒,比手調版少 9.9 %,精修撓曲 25.0、46.2 與 49.1 µm。第三次播放是 Y+ 板第一次裝夾的 D2 段(變體 C),快 8.6 %,那把刀最大的撓曲從 55.8 降到 50.0 µm。每一支優化後的程式都重播到最後一行,沒有碰撞、行程或快移切料的警報,留下的零件也一樣:在代理自己 0.025 mm 的 z-map 上逐格點相同。
有兩件事左右這些數字。B 省下的時間有三分之二來自一個工廠可能不接受的改變:計畫沒有給粗加工的斜坡行另設上限,HiNC 就把 D16 的斜坡從程式的 F1800(半個切屑)拉到全切屑;斜坡若守住 F1800,B 只比手調版快約 3.3 %,A 則比原程式慢 12.5 %。另外,對那些有去料、卻讀不到任何力的步——在這裡是下到一層的下刀——HiNC 會把它們周圍的一段放慢到下限,這讓 B 的 D6 與 D4 光刀比手調版慢。A 的精修靠低到 0.001 mm 的切屑才回到上限之內,真實的刀在這種切屑下是擠壓而不是切削:這些撓曲只在 HiNC 的模型裡成立。這裡的一切都是模擬:沒有切過任何一片板,時間是 HiNC 的理想進給估計。

HiNC 優化原程式之後(變體 A)夾在虎鉗裡的 X- 板:D16 粗加工在第一個全深層 Z −4.35 結束時,D16 三刃端銑刀從熱縮刀把伸出 33 mm。切過的面依切出它的那一步的主軸功率比上色,0 到 1.2:處處是綠色,在 0.667 的目標上或之下。原程式的同一層——每一道全寬弧段都是紅色——在〈結果與效益〉。擷取自 HiNC 3.2.45。
| 在 HiNC 3.2.45 上量得 | 原程式 | 優化後重播 | 變化 |
|---|---|---|---|
| X- OP1 模擬加工時間:原程式與變體 A | 635.6 s | 659.7 s | +3.8 %;比手調版短 19.9 % |
| X- OP1:手調版與變體 B | 823.6 s | 741.8 s | −9.9 %;D16 斜坡守住程式的 F1800 時約 −3.3 %(估計) |
| D16 粗加工主軸功率比,第 99 百分位/最大(目標:短時額定的 0.667) | 原程式 1.615/2.632;手調版 0.666/2.632 | A 0.663/1.576;B 0.663/1.576 | 原程式超過 1 的 5,844 步 → 1 步,是任何進給都壓不下來的一個斜坡折返 |
| D6/D4/D2 光刀,最大 XY 刀尖撓曲(C2:25/50/50 µm) | 原程式 193.9/79.5/359.9 µm;手調版 21.8/11.7/32.7 µm | A 24.1/43.3/49.9 µm;B 25.0/46.2/49.1 µm | 在 HiNC 的模型裡守在 C2 內;A 的 D2 每刃 0.001 mm |
| D6 殘料粗加工,最大應力比(目標 0.333,降伏的三分之一) | 原程式 0.758;手調版 0.703 | A 0.332;B 0.332 | |
| Y+ OP1 的 D2 段(變體 C):時間;光刀最大撓曲 | 360.5 s;55.8 µm | 329.4 s;50.0 µm | −8.6 %;在 C2 的 2 % 餘裕內 |
| 形狀:代理的 z-map、HiNC 匯出的零件、優化後的檔 | — | — | 每個格點都相差在 1 µm 內;體積相差 4 × 10⁻⁶ 以內;A/B 的粗加工有 172/44 點偏離自己的行,最多 16.6 µm |
| 重播訊息:碰撞/行程/快移切料 | 0 | 0 | 每一行都跑到 |
| 在共用的 32 執行緒伺服器上的成本,A/B:優化播放;重播 | — | 10.7/14.4 min、40.6/47.5 GiB;12.9/14.4 min、9.9/12.7 GiB | 連同試跑約 1.5 小時的伺服器時間 |
案例¶
案例本身的頁面講代理怎麼規劃六片板的 24 次裝夾、寫它的 CAM、依零件的高度圖決定每支刀把的伸出量,並讓整批播放通過驗收;這一頁從 X- 板的第一次裝夾 CS_Xminus 開始——一個方框,靠底下留的 8 mm 夾持料夾在虎鉗上。代理拿到的是:
- X- OP1 的兩支程式(讀取自案例):原程式,31,111 行,是代理的 CAM 第一次寫出的樣子;以及手調版,31,661 行,是案例驗收的那一支。原程式有五道銑削工序,手調版八道,兩支都用同樣的四支鑽頭,依序是:
| 工序 | 刀 | 原程式 | 手調版 |
|---|---|---|---|
| rough1 | T1,D16 | 依層的偏置輪廓粗加工,以螺旋與之字形斜坡進刀:切削 F3600(每刃 0.08 mm),斜坡 F1800 | 同一條刀路,進給依每一段刀路碰到的料縮放,最低到 30 % |
| rough2 | T2,D6 | 殘料粗加工 F2400(每刃 0.04 mm) | 同上,縮放 |
| semi2 | T2,D6 | — | 每面牆半精修,留 0.1 mm |
| fin2 | T2,D6 | 先平面,再每面牆一刀吃掉 0.3 mm 的留量,F2400 | 光刀吃 0.1 mm,80 % 進給(F1920),內凹圓弧放慢(ρ / (ρ + r)),最低到 5 % |
| semi3、fin3 | T3,D4 長頸 | R2 角一刀,F1800 | 半精修,再一刀光刀,同樣縮放 |
| semi4、fin4 | T4,D2 長頸 | R1 角與窄槽一刀,F576 | 半精修,再一刀光刀,同樣縮放 |
| holes | T11–T14,鑽頭 D1.0–D2.5 | 啄鑽(G83) |
同左 |
- 刀具(讀取自案例的刀表;切屑是代理給 7075 用的一般碳化鎢值,不是刀具廠的表):
| T | 刀具 | 刀把、伸出 | 轉速 | 切屑(每刃進給) | 該切屑下的進給 |
|---|---|---|---|---|---|
| T1 | D16 三刃端銑刀,刃長 32 mm | SF16 熱縮刀把,33 mm | 15,000 min⁻¹ | 0.08 mm | 3,600 mm/min |
| T2 | D6 三刃端銑刀,刃長 20 mm | SF6,21 mm | 20,000 min⁻¹ | 0.04 mm | 2,400 mm/min |
| T3 | D4 三刃,刃長 8 mm,D3.6 刀頸 | SF4;原程式:頸 22、伸出 23 mm;手調版:頸 18、伸出 19 mm | 24,000 min⁻¹ | 0.025 mm | 1,800 mm/min |
| T4 | D2 兩刃,刃長 4 mm,D1.8 刀頸 | SF4;原程式:頸 20、伸出 21 mm;手調版:頸 16、伸出 17 mm | 24,000 min⁻¹ | 0.012 mm | 576 mm/min |
| T11–T14 | 碳化鎢鑽頭 D1.0、D1.6、D2.4、D2.5 | SF3,9–15 mm | 12,000–24,000 min⁻¹ | 依直徑 | 480–600 mm/min |
- 案例給這些刀的標準:C1,D4 以下刀具的應力比低於 0.5、所有刀具低於 0.8;C2,光刀的 XY 刀尖撓曲在 D6 與 D16 的牆上不超過 25 µm、在 D4 與 D2 的角落不超過 50 µm;C5,主軸功率與扭矩低於額定。在這次研究的播放裡,原程式三條都沒過(功率比第 99 百分位 1.615;撓曲 193.9、79.5 與 359.9 µm;D6 光刀的應力比 0.910、D2 光刀 0.821);手調版的銑刀守住 C1 與 C2,C5 也守住,只有斜坡折返的一步是 2.632。
- 案例的設置:通用三軸機台,快移 30 m/min;Showcase 的通用主軸,連續 7.5 kW、短時 10 kW、24,000 min⁻¹、效率 0.4;Al 7075,用 HiNC 程式庫的切削資料;G54 在毛胚頂面的中心。
- 要求:HiNC 的產品負責人要從舊案例往上加的 NC 優化實作案例。
沒有人告訴它的:
- 每把刀的切屑可以到多大。 刀表的切屑是代理自己選的;手調版在它的規則預期會重切的地方都切得比這更小,而沒有任何東西說需要小多少。
- 怎麼守住撓曲上限。 HiNC 的優化器守主軸功率、主軸扭矩、刀具應力、開啟時的熱降伏、目標切削力、腳本註冊的任何準則,以及進給上下限;它沒有內建的撓曲準則,所以 C2 必須由別的準則承載。
- 手調規則還需不需要。 手調版的進給規則放慢的,正是優化器也會放慢的地方;進給優化器能不能在原刀路上完成這次修改的工作,就是變體 A 要回答的問題。
本頁的每個數字都來自這次研究在 HiNC 3.2.45、案例 0.125 mm 網格寬度上的播放:每支原程式的優化播放同時就是它的基準,所以每一個「優化前」都和它的「優化後」並排量得。
代理建了什麼¶
每個值都標明:讀取(讀自程式或案例)、推得(由它們或某次播放算出)、自選(代理的選擇)、預設(HiNC 的預設,照留)或量測(在 HiNC 3.2.45 的播放中量得)。
一個變體=一次優化播放——HiNC 播放原程式,程式前放一個「NC 優化設定」命令,播完寫出優化後的檔——加上一次在同一專案、同一毛胚、同一網格寬度下重播優化後的檔。每次播放前都關掉專案、從檔案重新載入,而且從不存回。
| 播放 | 程式 | 回答什麼 |
|---|---|---|
| 角落試跑 | 兩支程式都整支播放,毛胚削到只剩板的一角:裝夾座標的 X 25 到 51.9、Y 25 到 51.9 mm(一個腳座、一個帶凹口的內角、框架的角);每支程式其餘的部分都在空中播 | 每把刀的柔度與空切進給(一般播放);嵌入的設定能不能完整留進優化後的檔;整支播放要多少記憶體與時間 |
| A | 原程式,用原刀表(在記憶體裡設定) | 原程式的過載有哪些能靠進給拿掉、要付多少時間 |
| B | 手調版,用驗收的刀表,半精修照程式保留 | 在守住 C5 與 C2 之下,優化器能收回手調修改的多少時間 |
| C | Y+ 板第一次裝夾的 D2 段(手調版用長頸 D2 的半精修與光刀),從這支程式前面幾段之後記錄的工件開始 | 同樣的問題,放在整批最重的小刀段上 |
每把刀的優化限制,每次優化播放前透過 PUT api/Cutter/{id}/opt-limit 整個送出、再讀回:T1–T4 開啟優化,每刃進給上限等於刀表的切屑(0.08、0.04、0.025、0.012 mm,讀取),降伏安全係數 3(應力守在降伏的三分之一),最小切屑厚與後角限制開啟,不設每刃最小進給(都是預設);鑽頭 T11–T14 關閉優化(自選:優化器本來就不改固定循環)。A 與 B 的上限相同,所以兩個變體比的是誰決定哪裡要慢,而不是誰的切屑比較大。
每支程式前的「NC 優化設定」,每個鍵都寫出、讀回:
| 設定 | 值 | 出處 |
|---|---|---|
| 進給優化、重新插值 | 開 | 預設 |
| 原始進給率下限(以原程式進給的比例) | 關(開啟時 0.8) | 預設 |
| 進給率指派比率 | 0.01 | 預設 |
| 延伸前/後距離 | 2 mm 與 2 mm | 預設 |
| 主軸功率與扭矩安全係數 | 1.5:目標是短時額定的 67 % | 預設 |
| 命令的降伏安全係數;熱降伏安全係數 | 0(刀具自己的係數 3 生效);0(不當準則) | 預設 |
| 命令的每刃最小/最大進給 | 0/不設 | 自選:上限由刀具限制帶著,下限與行上限由嵌入的設定帶著 |
| 最小進給率 | 25 mm/min | 自選:低於嵌入的最低下限(D2 的 5 %,28.8 mm/min),只當安全網;預設的 1 mm/min 會讓一個幻影讀值把一段壓到幾乎停住 |
| 最大進給率 | 10,000 mm/min | 自選:快移 30 m/min 的通用機台,切削進給上限取保守值 |
| 最大加速度 | 1,000 mm/s² | 自選:預設的 10 mm/s² 會把每一次變速攤到幾百毫米 |
| 快速進給率(空切進給) | 10,000 mm/min,每段再由嵌入的設定改 | 自選(見下) |
| 優先力(目標切削力) | 不設(Infinity);由嵌入的設定設在每一條光刀行上 |
自選(見下) |
| 前進、側向與深度補償;深度分割 | 關 | 自選:補償不在本研究內;深度分割關閉時,被壓在下限的步,日誌寫的就是下限 |
| 省略前導零 | 關 | 自選:代理的檢查要讀懂輸出的每一個數字 |
嵌在程式裡的設定。 工作流程:NC 優化說明,程式自己註解裡的腳本,可以從它所在的那一行起改一個優化設定。代理把每一次改動寫成獨立的一行、只放這個註解,插在它要套用的移動之前,而且只在設定改變的地方寫;每一行屬於哪一道工序,取自程式自己的工序註解:
(@@OptMaxFeedPerTooth_mm=0.04; OptMinFeedPerTooth_mm=0.002; OptRapidFeed_mmdmin=2400; OptPreferedForce_N=36.29;)
| 類別 | 工序 | 嵌入的設定 | 理由 |
|---|---|---|---|
| 粗加工 | rough1、rough2 | 上限:不設(刀具自己的生效);下限:刀表切屑的 30 %(T1 0.024、T2 0.012 mm);空切進給依下面的殘料切屑規則;不設目標切削力 | 30 % 是手調規則自己的粗加工下限,所以兩支程式共用它 |
| 半精修(只有 B 與 C) | semi2、semi3、semi4 | 整段保留在 (@@BeginPreserve();) 與 (@@^EndPreserve();) 之間 |
半精修決定光刀遇到的料;HiNC 的去料不含刀的彎曲,所以加快半精修,可能讓光刀吃到比 HiNC 看到的更多(為什麼是區段而不是逐行,見難題 1) |
| 精修 | fin2、fin3、fin4 | 沒有 Z 移動的 G01 行:上限是刀表切屑;有 Z 移動的 G01 行(下刀、斜坡):上限是這一行自己的程式切屑;下限:刀表切屑的 5 %(T2 0.002、T3 0.00125、T4 0.0006 mm);空切進給:刀表進給;目標切削力:C2 上限 ÷ 刀的柔度 |
5 % 是手調規則的精修下限;目標切削力在高度有變的步上不起作用,所以那些行守住自己的切屑 |
| 鑽孔 | T11–T14 G83 |
無 | 刀具的優化關閉 |
目標切削力(推得):C2 上限 ÷ 刀的柔度。柔度取同一支程式在角落試跑一般播放中,光刀切削步(有接觸、去料超過 0.01 mm³/s、力超過 1 N)的「XY 刀尖撓曲 ÷ 最大切削力」的第 95 百分位。這裡的撓曲是 HiNC 的刀具樑模型,所以目標守的是模型裡的撓曲,不是量到的。
| 刀 | 變體 A:柔度,第 95 百分位 | A 的目標切削力 | 變體 B:柔度 | B 與 C 的目標切削力 |
|---|---|---|---|---|
| D6,C2 25 µm | 0.689 µm/N | 36.29 N | 0.665 µm/N | 37.57 N |
| D4,C2 50 µm(A 是伸出 23 mm) | 0.931 µm/N | 53.68 N | 0.526 µm/N | 95.02 N |
| D2,C2 50 µm(A 是伸出 21 mm) | 8.721 µm/N | 5.73 N | 4.871 µm/N | 10.27 N |
空切進給(推得):延伸距離內沒有任何切削的行,優化器給它空切進給,所以模型讀成空中的一層薄料,就以這個進給被切。粗加工時,代理取一層厚度等於那把刀在角落試跑一般播放中 XY 刀尖撓曲第 99 百分位的料——刀彎曲時留在機台上的料,而 HiNC 的去料忽略彎曲、看不到它——再選一個空切進給,讓切這層料的切屑不比刀表切屑在程式切寬 0.4 D 下的切屑厚:F = h ÷ sin φ × 刃數 × 轉速,h 是 0.4 D 下的切屑,φ 是那層薄料的接觸角,夾在刀表進給與 10,000 mm/min 之間。D16 算出 34,600 與 37,800 mm/min,所以兩個變體都是 10,000;D6 的殘料粗加工在 A 是 7,290 mm/min(撓曲 160.4 µm)、在 B 是 8,570 mm/min(115.0 µm)。半精修與精修用刀表進給,從不更快。
網格寬度:0.125 mm,案例驗收的網格寬度,每一次優化播放與重播都用它(讀取);半精修留 0.1 mm,比一格還薄,而代理自己的 z-map 獨立於 HiNC 的網格檢查空切進給(O6)。每支程式整支播放,所有刀具一輪;HiNC 的撓曲變換關閉,和案例相同。
不優化的部分:快移、換刀與刀長補正行、G91 G28、M 碼與 G83 循環,優化器本來就不改;B 與 C 的半精修,保留。
代理怎麼管理這件工作¶
- 先寫計畫與標準。 計畫——變體、每個設定與出處、各類別的規則,以及十一條帶預測的標準——在第一次優化播放(含角落試跑)之前提交。播放改變了什麼,寫在它旁邊兩次:角落試跑之後、第一次整支播放之前(修正 1),以及和結果一起(修正 2);計畫原文與它的預測從未改寫。
- 先小後大。 角落試跑把每支程式整支播在一個削到只剩一角的毛胚上,一次 1.3 到 4.2 分鐘,在任何整塊毛胚的播放之前回答四個問題:柔度與空切進給、嵌入的設定能不能完整通過優化後的檔、重播乾不乾淨,以及整支播放要多少成本。它們也找到了難題 1 的記憶體問題。在這一角上,每一行設定都留在優化後的檔裡、自成一行,後面沒有接來源註記;重播沒有出現一般播放沒有的訊息;逐步日誌在光刀步列出目標切削力、在守住的行列出行上限;A 的檔有 10 點偏離自己的行、最多 1.8 µm,B 沒有;代理的 z-map 沒有找到切到料的空切進給移動,完工的毛胚也相同。
- 重的一次一個。 一份 HiNC 3.2.45 的私有副本跑在一台和線上服務及其他代理的研究共用的 32 執行緒伺服器上。每一次試跑、優化播放與重播,都排在和那些研究共用的鎖上,只在伺服器有 40 GB 記憶體可用時開始,每三分鐘唯讀巡看一次(警報、跑到的刀與行、有接觸的步的比例、負荷),並在「伺服器可用記憶體低於 6 GB 就停掉這個實例」的防護下執行。防護從沒有觸發。畫面播放在第二個實例上和它們並行(見較小難題的表)。
- 設定都讀回。 每把刀的限制與每個選項鍵,在每次播放後讀回,和它的結果一起保存,旁邊是訊息、伺服器時間與記憶體峰值。
- 預測照寫下的保留。 計畫預測了每個變體的時間、什麼會決定進給,以及原程式的一刀精修即使在下限也仍會超過 C2。預測沒中的地方,判定照實說(難題 2)。
- 人在哪裡介入。 HiNC 的產品負責人要從舊案例往上加的 NC 優化實作案例;變體、設定與標準是代理的。
第一次優化播放之前寫下的標準。切削步是有接觸、去料超過 0.01 mm³/s 的步;在下限的步是在它那一段下限的 1 % 以內;目標是功率與扭矩比 0.667、應力比 0.333:
| # | 標準 |
|---|---|
| O1 | 每一行都跑到、沒有新警報:每次重播執行的行數等於檔案的行數;沒有碰撞或行程警報;快移切料不多於優化播放(基準);沒有基準沒有的警告或錯誤。每次優化播放都走到「進給建好」與「檔案已優化」的訊息,沒有授權拒絕、沒有失敗的步 |
| O2 | 主導負荷在目標內:每把被優化的刀,重播的切削步至少 99 % 的功率與扭矩比不超過 0.667 × 1.02、應力比不超過 0.333 × 1.02;精修至少 99 % 的力不超過目標 × 1.02。在下限的步與守住自己切屑的行(B 的半精修、精修的 Z 行)可以在目標之上,另列 |
| O3 | 形狀不變:(a) 優化檔的每一個終點落在它的原程式行上,1 µm 以內,偏離的列出;(b) 代理 0.025 mm 的 z-map 在優化程式之後與原程式之後相同,至少 99.9 % 的格點在 1 µm 內;(c) HiNC 匯出的重播零件與基準的體積相差 0.1 % 以內 |
| O4 | 時間,預測:A 比原程式 +40 至 +130 %,比手調版 −10 至 +75 %(粗加工 +10 至 +35 %;精修在目標切削力與下限下慢 2 到 6 倍);B 比手調版 −3 至 −15 %(粗加工 −10 至 +5 %、殘料粗加工 −5 至 −20 %、精修 −10 至 −50 %、半精修 0 至 −3 %)。實測照記;沒中就從日誌說明 |
| O5 | 精修撓曲:A 每道光刀的第 99 百分位與最大值不高於原程式 × 1.02,並報它和 C2 的距離(預測:D6 與 D2 在下限仍超過 C2);B 不在下限的光刀步,最大不超過 C2 × 1.02(D6 25.5 µm、D4 與 D2 51 µm) |
| O6 | 空切進給從不落在料上:代理的 z-map(0.025 mm)依播放順序走過每支優化程式;沒有一個會切到料(超過 0.01 mm³,或每 mm 路徑超過 0.001 mm²)的移動,跑得比它那一行的上限 × 1.02 快;每一個違反都列出 |
| O7 | 輸出真的被優化:每支優化檔都和原檔不同;程式寫出器沒有錯誤;優化器的訊息逐條計數;行數、F 字、來源註記與嵌入的行都計數 |
| O8 | 每把刀、每道工序都還在切:z-map 說一道工序有切的地方,HiNC 都有接觸的步;每道工序在重播中的接觸路徑和基準相差 3 % 以內 |
| O9 | 什麼決定了進給,取自優化器的逐步日誌:預測 A 的粗加工在上限 50–80 %、功率 20–50 %;A 的 D6 與 D2 光刀在目標切削力或下限 50 % 以上;B 的粗加工在上限 50 % 以上、功率 10–40 %;B 的 D6 光刀在直牆上頂上限、在角落由目標切削力決定 |
| O10 | 2 × 2 對照,照報、不判:原程式、A、手調版與 B 的 D16 功率比、每把小刀的光刀撓曲與每道工序的時間。預測:A 讓 D16 回到 0.667 × 1.02 以內,只剩被下限撐住的步,而 D6 與 D2 的一刀精修在下限仍超過 C2;B 守住 C2 與 C5,而且比手調版快 |
| O11 | 變體 C,同 O1、O2、O5、O6 與 O7;預測:光刀快 20 到 50 %,最大撓曲不超過 51 µm |
難題¶
每一個都照它的情況、若沒發現的風險、怎麼發現、怎麼解,以及證明這個解法站得住的證據來寫。
1. 幾千行上的設定要花幾十 GB¶
- 情況。 計畫原本逐行守住 B 的半精修:半精修的每一條
G01各有自己嵌入的上限,也就是它自己的程式切屑,讓優化器只能把它變慢。這在程式裡寫了 3,936 行設定。在角落試跑上,優化播放的峰值是 28.42 GiB、重播是 38.45 GiB;同一支程式的一般播放只要 1.85 GiB。 - 風險。 B 的整支播放——接觸步大約是角落的六倍——會讓共用伺服器的記憶體耗盡。
- 怎麼發現。 試跑的記憶體峰值。
- 怎麼解。 在 HiNC 裡,一次播放的記憶體會隨它執行的嵌入腳本行增加。兩支只差 200 行
(@@OptMaxFeedPerTooth_mm=…;)、放在 200 個空中移動之前的程式,在 1 mm 網格寬度下有同樣的 14,562 步與 43.0 秒模擬時間,峰值卻是 0.52 與 6.71 GiB。試跑的優化後程式帶著它的 3,936 行設定重播要 38.45 GiB;拿掉這些行是 1.68 GiB,步數同樣是 168,672,結束時間也相同。大致上是一次幾 GB,再加每執行一行設定約 9 MB。所以 B 的半精修改成三段保留的區段:每道工序前一行(@@BeginPreserve();)、後一行(@@^EndPreserve();),總共 156 行設定。每段的第一行都寫著自己的進給,所以被保留的行用的是它們的程式進給,而不是優化器寫在前一行的進給。代價:半精修完全照程式,所以其中高於目標的負荷也不會被放慢。 - 證據。 B 帶保留區段的角落試跑:11.69 GiB 與 8.05 GiB;整支程式的 B 播放 47.52 GiB、它的重播 12.69 GiB(成本表)。被保留的半精修重播出來和程式逐位相同:D2 的半精修留著 36 步超過 O2 的 0.34,應力比最高 0.383,另列。
| 角落試跑 | 嵌入的設定行 | 步數 | 伺服器時間 | 記憶體峰值 | 模擬時間 |
|---|---|---|---|---|---|
| 原程式,一般播放 | 0 | 207,946 | 80 s | 1.71 GiB | 635.6 s |
| A 的優化播放/重播 | 122 | 207,946/138,287 | 110/80 s | 11.62/7.15 GiB | 635.6/371.6 s |
| 手調版,一般播放 | 0 | 273,221 | 100 s | 1.85 GiB | 823.6 s |
| B,半精修逐行守住:優化播放/重播 | 3,936 | 273,221/168,672 | 250/210 s | 28.42/38.45 GiB | 823.6/462.4 s |
| 同一支優化後程式拿掉設定行,一般播放 | 0 | 168,672 | 80 s | 1.68 GiB | 462.4 s |
| B,半精修保留:優化播放/重播 | 156 | 273,221/181,201 | 120/80 s | 11.69/8.05 GiB | 823.6/494.8 s |
| 空中移動上的 200 行設定,1 mm 網格寬度:沒有/有 | 0/200 | 14,562/14,562 | 10/20 s | 0.52/6.71 GiB | 43.0/43.0 s |
角落試跑的重播時間不能拿來預測整片板:角落以外,每支程式多半在空中跑,優化後的程式以空切進給穿過那些地方。
2. 比預測更有效的目標切削力¶
- 情況。 計畫預測 A 的一刀精修即使在下限也仍會超過 C2:在另一個案例的精修上,HiNC 的力幾乎不隨進給變。在角落試跑上,目標切削力讓三道光刀都回到 C2 之內,整支程式也一樣:D6 193.9 → 24.1 µm、D4 79.5 → 43.3 µm、D2 359.9 → 49.9 µm。
- 風險。 結果出來之後悄悄改寫預測;或把結果讀成工廠能跑的一刀。
- 怎麼發現。 角落試跑,在任何整支播放之前。
- 怎麼解。 在這把刀上,力隨進給變化:D2 的最大力從 42.0 降到 5.69 N 時,切屑從 0.012 降到約 0.001 mm(F49),幾乎成比例(約切屑的 0.8 次方)。預測照寫下的保留,判定說它錯了。代價是時間:A 的 D2 光刀花 78.6 秒而不是 30.4 秒,D6 光刀 149.1 秒而不是 119.5 秒,D6 有 3,902 個切削步在 0.002 mm 的下限。而 0.001 到 0.002 mm 的切屑,真實的刀是擠壓而不是切削;HiNC 不模擬擠壓,所以「一刀精修守住 C2」只在 HiNC 的模型裡成立。
- 證據。 標準表的撓曲列;下面兩張軌跡圖,以及〈結果與效益〉裡 D6 的畫面。
D6 光刀,優化前(原程式)與優化後(A),每秒一點。原程式在一刀吃掉整個 0.3 mm 留量的地方,牆上的撓曲到 194 µm;目標切削力把 A 守在 25 µm 線上,代價是 30 秒。
D2 光刀,每半秒一點;前後半秒都沒有切削的半秒畫成圓點,原程式在角落的 330 到 360 µm 就是這樣的點。A 的 D2 以約每刃 0.001 mm(F49)切削,最大讀到 49.9 µm。
3. 被拉到全切屑的斜坡¶
- 情況。 計畫除了刀具自己的切屑之外,沒有給粗加工的行另設上限;它給精修的 Z 行以自己的切屑為上限,粗加工卻沒有。兩支程式都以 F1800——半個切屑——讓 D16 以斜坡進入每一層,斜坡總長約 3,000 mm。在重播裡,95.8 %(A)與 95.7 %(B)的斜坡路徑寫在 3,500 mm/min 以上。
- 風險。 B 省下的時間大半來自一個工廠不會接受的改變:斜坡用端刃切削,端刃的排屑與進刀角不在 HiNC 的準則裡,所以 CAM 程式設計者會為了優化器看不到的理由放慢它。讀者會把工廠會加回去的時間算成 HiNC 的功勞。
- 怎麼發現。 拆 D16 的時間:在代理的 z-map 上,D16 的切削移動在 A 比原程式少 44 秒,在 B 比手調版少 72 秒。
- 怎麼解。 照計畫的結果報,旁邊附一個估計,不改規則重跑。每次重播的斜坡步花 46 秒;守在 F1800 要約 101 秒(這些步在較低進給下自己的時間,不含加減速與延伸距離)。所以斜坡守住的話,A 約 715 秒,比原程式多 12.5 %;B 約 797 秒,比手調版少 3.3 %:B 的 −9.9 % 有三分之二是斜坡。程式寫 F1800 的平面行,每次重播另省約 12 秒。
- 證據。 下面的 D16 畫面:原程式在這一層中央的螺旋進刀是綠色,半個切屑;優化後的是紅色,全切屑。進給軌跡也顯示同樣的事。
| D16 粗加工,重播 | 斜坡路徑在 ≤ 1,850/1,850–3,500/≥ 3,500 mm/min | 斜坡路徑有接觸的比例 | 斜坡時間 | 斜坡守在 F1800 的時間(估計) |
|---|---|---|---|---|
| 變體 A | 0.4/3.9/95.8 % | 79.3 % | 46.2 s | 101.4 s |
| 變體 B | 0.4/3.9/95.7 % | 79.6 % | 45.9 s | 100.7 s |

原程式在 Z −4.35 那一層結束時,依每刃進給上色,0 到 0.08 mm:整層在程式的 0.08 mm,中央的螺旋進刀是它的一半,綠色。

HiNC 優化之後(A),同樣的上色:全寬弧段被主軸功率目標放慢到每刃 0.03–0.04 mm,其餘在 0.08 mm 的上限——中央的螺旋進刀也一樣。
D16 在第一個全深層的進給,優化前後。尖峰是空中的移動:四支程式都有快移,兩支優化程式另有以空切進給送出的連接。
4. 有去料卻沒有力的步,被壓到下限¶
- 情況。 B 的 D6 光刀比手調版慢 16.3 秒、D4 光刀慢 6.7 秒,而預測是 −10 至 −50 %。
- 風險。 把目標切削力讀成太保守,或把 HiNC 的精修讀成不如手調規則。
- 怎麼發現。 沿 D6 光刀的一圈看進給:第一圈花 8.97 秒,手調版 4.04 秒,其中 11.0 mm 在 F120、也就是下限,花了 5.51 秒。那一圈開頭的逐步日誌追到下刀行
G01 Z-3.333 F1200.(手調版第 23,734 行)。 - 怎麼解。 在這些下刀步上,HiNC 讀到有去料(0.40–0.51 mm³/s),力卻是 6 × 10⁻¹⁴ 到 2 × 10⁻¹³ N,等於沒有;日誌給出的刀具應力準則答案是這一段的下限(
FrtByYieldingStressRatio_mm[OverIteration]: 0.002),延伸距離再把下限帶到前後各 2 mm。D4 上的下刀G01 Z-11. F900.(第 29,800 行)讀到 0.00016 mm³/s、9.5 × 10⁻¹⁴ N,被寫成G01 Z-10.14 F90.,也就是 D4 的下限。讀得到力的步從來沒有得到下限答案;有去料而沒有力的步,有一部分會:A 的殘料粗加工 3,079 步中的 254 步、B 的 3,117 步中的 253 步,兩道 D6 光刀是 821 步中 11 步、533 步中 16 步。這是 HiNC 對這種步的行為,研究量測它而不繞過它(把下刀的下限提高或關掉應力準則,就不再呈現 HiNC 的預設)。重播在下限上花了 51.6 秒(A)與 59.6 秒(B);照鄰近的進給,這些段大約可少 35 與 43 秒。 - 證據。 下面的等高線圖:第一圈的 F120 段;第十三圈沒有讀成零力的下刀,HiNC 花 20.5 秒、手調版 21.5 秒。B 的 D6 與 D4 光刀輸給手調版的每一秒,都落在這些下限段裡。
| 重播 | 在下限:殘料粗加工 | D6 光刀 | D4 光刀 | 合計 | 以鄰近進給可省(估計) |
|---|---|---|---|---|---|
| 變體 A | 79 段、32.3 s | 4 段、13.0 s | 2 段、6.2 s | 51.6 s | 約 35 s |
| 變體 B | 77 段、31.7 s | 8 段、18.6 s | 3 段、9.3 s | 59.6 s | 約 43 s |
| 有去料而沒有力的切削步 | 步數 | 應力準則回答下限 | 回答高於下限 | 沒有回答 |
|---|---|---|---|---|
| A,D6 殘料粗加工 | 3,079 | 254 | 1,522 | 1,303 |
| B,D6 殘料粗加工 | 3,117 | 253 | 1,563 | 1,301 |
| A,D6 光刀 | 821 | 11 | 188 | 622 |
| B,D6 光刀 | 533 | 16 | 266 | 251 |
| A 與 B,D16 粗加工 | 687/696 | 0/0 | 1/1 | 686/695 |
D6 光刀的第一圈(原程式第 23,734–23,982 行):HiNC 的版本開頭有 11 mm 在 F120,是從下刀帶過來的下限。
第十三圈(第 26,770–27,539 行):沒有下限段;牆上是上限,角落是目標切削力。HiNC 寫在上限以下、有接觸的 89 mm 裡,42 mm 落在手調規則本來就放慢的轉角行上。
整道 D6 光刀,每秒一點:掉到下限的地方就是下刀段。
5. 任何進給都壓不下來、超過額定的一步¶
- 情況。 在手調版、A 與 B 裡,D16 粗加工都有一步讀到超過 1 的主軸功率比:同一步,在一個斜坡折返上,也是原程式那 5,844 步之一。
- 風險。 把優化器讀成忽略自己的目標,或為了一步放慢整層。
- 怎麼發現。 O2 對「在下限仍高於目標的步」的清單。
- 怎麼解。 它就是案例頁列為幾何解釋不了的讀值之一的那個斜坡折返:HiNC 在那裡讀到的去除率是鄰近步的好幾倍。在粗加工的下限、也就是切屑的 30 %,它仍讀到 1.576,程式進給下是 2.632;延伸距離在它周圍約半秒寫成下限。照 O2 的規定另列。
- 證據。 手調版與兩次重播都只有一步超過 1,而第 99 百分位是 0.663。
6. 偏離原程式行的點¶
- 情況。 O3 (a) 把優化檔的每一個終點對回它的原程式行:A 有 172 點偏離超過 1 µm,最多 16.6 µm;B 44 點,最多 11.5 µm;C 沒有。
- 風險。 機台要跑的檔案裡,有一段和程式不同的路徑。
- 怎麼發現。 O3 (a)。
- 怎麼解。 全都在 D16 粗加工。優化器切開一行時,在一個片段裡幾乎不動的軸沿用原程式行的終點值,所以這個片段偏離原線,最多就是那一行自己在那個軸上的小變化。照 O3 (a) 的要求逐點列出。
- 證據。 代理的 z-map 讀到,優化程式之後完工毛胚的每一個格點都和原程式之後相同(形狀表)。
7. z-map 看不到、以空切進給的擦邊¶
- 情況。 O6 在代理的 z-map 上走過每支優化程式:沒有一個切到料的移動快過它那一行的上限。但 HiNC 自己的重播步顯示有以空切進給的接觸:A 59 步(D16 在 F10000 的 53 步、D6 在 F7290 的 6 步),B 52 步,C 沒有。
- 風險。 一刀 10,000 mm/min 的切削沒被報出來。
- 怎麼發現。 計畫的 z-map 檢查之後,另加的一次 HiNC 重播步檢查。
- 怎麼解。 它們是擦邊,比一格還窄:A 合計 0.051 mm³、B 0.219 mm³,最大 6.9 N、最寬 0.112 mm;z-map 0.01 mm³ 的門檻看不到。O6 照寫下的用 z-map 判,HiNC 這一側另列(空切進給表)。
- 證據。 〈結果與效益〉裡的空切進給表。
8. 用在很短刀路上的 3 % 規則¶
- 情況。 O8 要求每道工序的接觸路徑和基準相差 3 % 以內。A 的 D2 光刀(34 mm)是 −13.0 %,B 的 D4 光刀(19 mm)是 −42.9 %。
- 風險。 讀成漏切,而其實沒有;或乾脆把這條標準揮掉。
- 怎麼發現。 O8。
- 怎麼解。 照文字判不過。在代理的 z-map 上,這兩道工序的切削移動與去料前後相同(29.7 mm 與 5.21 mm³;3.1 mm 與 3.56 mm³):差別是比 0.125 mm 網格還細的擦邊接觸(B 的 D4 吃的是 0.1 mm 留量),重新插值後的進給在別的地方取樣到它。
- 證據。 〈結果與效益〉裡的接觸表。
9. 依步數還是依路徑的第 99 百分位¶
- 情況。 O5 要求 A 每道光刀撓曲的第 99 百分位不高於原程式 × 1.02。在 D4 上,依步數是 15.2 → 20.1 µm,依路徑加權是 15.2 → 10.5 µm;計畫沒有說用哪一種。
- 風險。 挑會過的那一種讀法。
- 怎麼發現。 判 O5 的時候。
- 怎麼解。 兩種都報;判定照較嚴的依步數:D4 不過。每一道光刀的最大撓曲都下降。
- 證據。 標準表。
10. 比案例標準更緊的應力目標¶
- 情況。 案例的 C1 允許 D6 的應力比到 0.8;HiNC 預設的降伏安全係數 3 以 0.333 為目標。兩支程式的殘料粗加工讀到 0.70–0.76。
- 風險。 殘料粗加工比案例要求的慢,卻算成優化器的謹慎;或在結果之後放寬目標。
- 怎麼發現。 角落試跑:殘料粗加工的切削步有 35–36 % 由應力決定。
- 怎麼解。 照計畫保留預設,照實報結果:殘料粗加工的中位切屑從 0.04 降到 0.0247 mm(F1481),應力比從 0.758 與 0.703 降到 0.332,這道工序卻仍短了 6 與 9 %,因為它的空中移動用空切進給。
- 證據。 〈結果與效益〉的逐工序表。
11. 較小的幾件¶
| 發生了什麼 | 風險 | 怎麼出現 | 怎麼解 | 站得住的證據 |
|---|---|---|---|---|
| 兩次畫面播放在第二個實例上、在共用鎖之外跑了 10 與 14 分鐘,用到 3.51 與 4.18 GiB,和鎖裡的重播放同時;看著它們的是每 10 秒一次的記憶體取樣,而不是每 3 分鐘的巡看 | 搶走其他研究播放的記憶體 | 結算執行成本時 | 伺服器始終保有至少 83 GB 可用;記成對規則的偏離,下一次這種畫面排鎖播 | 成本表 |
| 研究的結果有 11.7 MB,畫面程式與 C 的前段程式另有 3.7 MB | 案例的 repo 被衍生檔撐大 | 提交的大小 | 超過 100 kB 的 JSON 改寫成緊湊格式(6.3 MB,每個檔讀回內容相同);畫面程式與 C 的前段程式不進 repo,由研究的工具逐位元組重建 | 五支程式重建後比對相同 |
O7 的計數漏了自帶括號的腳本行 (@@BeginPreserve();),報成 156 中 150、126 中 124 |
把一行嵌入的設定讀成丟了 | 計數對照程式 | 重新計數:156 中 156、126 中 126 | 優化檔表 |
| C 從 Y+ OP1 前面六段之後開始 | C 的前後讀自不同的毛胚 | 計畫 | 一次一般播放跑第 1–50,211 行,寫出一份工件紀錄,C 與它的重播都讀同一份;z-map 也先走同樣的行 | C 兩次播放的毛胚相同 |
| 從另一個研究複製來的播放腳本帶著 Windows 的換行字元 | 一次拿到鎖之後就失敗的播放 | 第一次角落試跑一拿到鎖就失敗 | 每支腳本去掉 CR,重新排隊 | 代價:一個鎖的時段 |
| 優化器把每支程式的逐步日誌(17–40 MB)寫在優化後的檔旁邊 | 案例資料夾裡的大檔 | 資料夾的大小 | 日誌移到伺服器的資料資料夾,播放紀錄改指新位置 | 播放紀錄 |
| B 保留的 D2 半精修彎到 101.6 µm,有 36 步超過 O2 的應力目標,最高 0.383 | 把優化後的程式讀成處處在目標內 | O2 | 以保留的行另列;半精修不以 C2 判,C2 只管光刀 | O2 表 |
結果與效益¶
在 HiNC 3.2.45、0.125 mm 網格寬度上量得:X- OP1 整支、每支程式一輪,原程式與手調版各自優化並重播;變體 C 是 Y+ OP1 的 D2 段,從記錄的工件開始。時間是 HiNC 的理想進給估計;見加工時間估算。
標準,每個變體:
| # | A(原程式) | B(手調版) | C(Y+ OP1 的 D2 段) |
|---|---|---|---|
| O1 | 過:38,270 行中 38,270 行;沒有碰撞、行程或快移切料訊息,沒有新的警告或錯誤;優化播放報出進給建好、檔案已優化,只有四支鑽頭的「優化關閉」警告 | 過:38,419 行 | 過:6,424 行 |
| O2 | 過:除了 D6 光刀的 99.933 %(21 步超過它的 36.29 N),每道工序的自由切削步 100 % 在目標內;另列:1 步在下限仍高於目標(難題 5),24 步在守住的 Z 行上高於目標 | 過:每道工序 100 %;另列:同一個下限步,保留的 D2 半精修有 36 步超過應力目標,最高 0.383 | 過:100 % |
| O3 | (a) 172 點,最多 16.6 µm,已列出;(b) 過:1,720 萬個格點 100 % 在 1 µm 內;(c) 過:−3.7 × 10⁻⁶ | (a) 44 點,最多 11.5 µm;(b) 過:100 %;(c) 過:+9 × 10⁻⁷ | (a) 無;(b) 過:1,500 萬個格點 100 %;(c) 過:0 |
| O4 | 沒中:比原程式 +3.8 %(預測 +40 至 +130 %),比手調版 −19.9 %(−10 至 +75 %);粗加工 −13.4 %,精修 × 1.44 | 總時間中:−9.9 %(−3 至 −15 %);粗加工(−23.3 %)與精修(+4.8 %)在預測之外,殘料粗加工(−9.4 %)與半精修(0 %)在內(難題 3、4) | 沒中:光刀 −17.3 %(−20 至 −50 %) |
| O5 | 最大值:三道都過(24.1、43.3、49.9 µm,全都更低);第 99 百分位:D6 74.0 → 22.1 與 D2 359.9 → 49.9 µm 過,D4 依步數 15.2 → 20.1 不過(依路徑 10.5,難題 9);「D6 與 D2 仍超過 C2」的預測錯了 | 過:25.0、46.2、49.1 µm(≤ 25.5/51/51);半精修照程式 | 過:50.04 µm(≤ 51) |
| O6 | 過:沒有切削移動超過它的上限,沒有快移切料;HiNC 這一側 59 個擦邊步,已列出 | 過;HiNC 這一側 52 | 過;HiNC 這一側 0 |
| O7 | 過:檔案不同;122 行嵌入的設定,122 行都在自己的行上;寫出器沒有錯誤 | 過:156 中 156 | 過:126 中 126 |
| O8 | z-map 有切的每道工序都有接觸;接觸路徑除了 D2 光刀的 −13.0 % 都在 3 % 以內——照文字不過(難題 8) | D4 光刀 −42.9 %——照文字不過 | 過:−0.3 % |
| O9 | 粗加工在上限 80.7 %、功率 19.2 %(預測 50–80/20–50:差一點);D6 光刀在目標切削力 27.0 %(≥ 50 %:沒中);D2 在目標切削力 60.2 %(中) | 粗加工 72.0/27.9 %(中);D6 光刀在上限 87.4 %、目標切削力 8.0 %(大致中) | 上限 77.3 %、目標切削力 21.4 % |
| O10 | 見 2 × 2 表:A 讓 D16 回到 0.667 × 1.02 以內,只剩下限的那一步(預測中);D6 與 D2 的一刀精修在 C2 內(預測超過:錯) | B 守住 C2 與 C5,而且比手調版快(預測中) | — |
2 × 2 對照,X- OP1:兩條刀路,各在自己的進給與 HiNC 的進給下:
| 原刀路(一刀精修) | 兩刀刀路(手調版) | |
|---|---|---|
| 程式自己的進給 | 原程式 635.6 s;D16 功率比超過 1 的 5,844 步,第 99 百分位 1.615,最大 2.632;D6 殘料粗加工應力比 0.758;光刀撓曲 D6 193.9、D4 79.5、D2 359.9 µm | 手調版 823.6 s;功率比超過 1 的 1 步,第 99 百分位 0.666,最大 2.632;應力比 0.703;撓曲 21.8、11.7、32.7 µm |
| HiNC 的進給 | 變體 A 659.7 s(+3.8 %);功率比超過 1 的 1 步,第 99 百分位 0.663,最大 1.576;應力比 0.332;撓曲 24.1、43.3、49.9 µm | 變體 B 741.8 s(−9.9 %);1 步、0.663、1.576;0.332;25.0、46.2、49.1 µm |
HiNC 決定進給之後,兩條刀路在模型裡都守住 C5 與 C2。A 比手調版快 19.9 %;B 比 A 慢 12.5 %(82.2 秒)。光是它的半精修——照程式保留的 189.8 秒——就比這個差距還多:兩刀刀路把這段時間花在讓光刀遇到 0.1 mm、而不是 0.3 mm 的料。
X- OP1 逐工序。手調版與 B 的 D4 與 D2 長條包含它們的半精修。
| 工序 | 刀 | 原程式 | A | 手調版 | B |
|---|---|---|---|---|---|
| rough1 | T1 D16 | 308.2 s | 258.6 s | 335.8 s | 257.6 s |
| rough2 | T2 D6 | 108.9 s | 102.7 s | 113.9 s | 103.2 s |
| semi2 | T2 D6 | — | — | 96.7 s | 96.7 s(保留) |
| fin2 | T2 D6 | 119.5 s | 149.1 s | 65.1 s | 81.5 s |
| semi3 | T3 D4 | — | — | 27.0 s | 27.0 s(保留) |
| fin3 | T3 D4 | 32.7 s | 34.6 s | 6.2 s | 13.0 s |
| semi4 | T4 D2 | — | — | 66.2 s | 66.2 s(保留) |
| fin4 | T4 D2 | 30.4 s | 78.6 s | 75.9 s | 60.0 s |
| 鑽孔 | T11–T14 | 35.9 s | 35.9 s | 36.8 s | 36.8 s |
| 合計 | 635.6 s | 659.7 s | 823.6 s | 741.8 s |
HiNC 把每支程式的時間分成和毛胚接觸的步與在空中的步(進給移動與快移):A 切得比原程式久、空中的時間較少;B 兩邊都省。
時間從哪裡來。 優化器對每支程式時間做了什麼,依大小排列:
| 來源 | 變體 A | 變體 B |
|---|---|---|
| D16 的斜坡從 F1800 拉到全切屑(難題 3) | 約 −55 s | 約 −55 s |
| 空中的進給移動用空切進給(D16 10,000;D6 7,290/8,570 mm/min);HiNC 在粗加工的空中時間 | 77.7 → 33.8 s(D16)、67.7 → 46.0 s(D6) | 76.7 → 33.1 s、71.5 → 45.9 s |
| D16 全寬切削上的主軸功率目標(它 19.2/27.9 % 的切削步) | 原程式的全寬弧段從 F3600 放慢到約 F2000–3000 | 手調規則本來就已放慢 |
| D6 殘料粗加工的應力目標 | 中位切屑 0.04 → 0.0247 mm | 同左 |
| 精修的目標切削力 | D6 +29.6 s、D2 +48.2 s(切屑低到 0.001 mm) | D2 −15.9 s(中位進給 F144 → F283);D6 +16.3 s、D4 +6.7 s,全落在下限段 |
| 讀不到力的步造成的下限段(難題 4) | 51.6 s 在下限(比鄰近進給多約 35 s) | 59.6 s(約 43 s) |
| 精修的空中時間增加:延伸距離把慢的進給帶進進刀與退刀 | D2 光刀空中 28.4 → 61.5 s | D4 光刀空中 5.3 → 12.2 s |
D16 粗加工:全寬切削的限制是主軸。 在原程式裡,D16 在全深下碰到超過約 0.6 倍直徑的料,功率比就超過 1;HiNC 把每一刀這種切削守在目標上,而手調版自己的規則本來就已把它帶到那裡。

原程式在頁首那張畫面的同一點,依主軸功率比上色,0 到 1.2:每一道全寬弧段都是紅色,超過額定。HiNC 優化之後(頁首),同一層是綠色。
第一個全深層上每半秒最大的主軸功率比:原程式 52 秒、最高 1.8,A 50 秒、在 0.667 的目標上;手調版 60 秒,B 50 秒,兩者都在目標上。
主軸功率比對切寬(以 D16 直徑的比例),全深步。
粗加工步的主導負載比:切削步高於每個值的比例;1 就是目標。HiNC 之後,兩把刀的曲線都在 1 落下。
精修。 目標切削力讓每一道光刀在 HiNC 的模型裡都守在 C2 內:
光刀最大(長條)與第 99 百分位(橫線)的 XY 刀尖撓曲,對 C2(虛線)。

原程式在 D6 光刀結束時(原程式第 30,361 行),D6 從熱縮刀把伸出 21 mm、在凸台旁的凹口裡,依切出每個面的那一步的最大切削力上色,0 到 120 N:框架的牆在一刀吃掉整個留量的地方出現綠、黃、紅的帶。窗口的底面與側壁最後由粗加工切出,在兩張畫面裡都超出色階。

HiNC 優化之後(A),同樣的上色:牆是藍與青,在 36.29 N 的目標之下。

優化前,依每刃進給上色,0 到 0.04 mm:牆在程式的 0.04 mm。

優化後,同樣的上色:長牆約每刃 0.025 mm,凹口的角落幾乎放慢到下限。
B 的 D2 光刀:比手調版快(60 對 76 秒),角落到 50 µm 的上限。
變體 C,Y+ OP1 的 D2 段,從記錄的工件開始:
| Y+ OP1,D2 段 | 手調版 | 變體 C,重播 |
|---|---|---|
| 模擬時間,這一段 | 360.5 s | 329.4 s(−8.6 %) |
| 半精修(保留)/光刀 | 180.3/179.3 s | 180.3/148.3 s(−17.3 %) |
| 光刀:最大/第 99 百分位 XY 刀尖撓曲(C2 50 µm) | 55.8/37.1 µm | 50.0/47.4 µm |
| 光刀:最大力(目標 10.27 N) | 11.7 N | 10.5 N |
| 什麼決定了光刀的進給 | — | 上限 77.3 %、目標切削力 21.4 %、應力 1.3 % |
| 優化後的檔 | 6,202 行、2,585 個 F 字 | 6,424 行、1,644 個 F 字,F86.4 到 F576 |
手調版的 D2 在直牆上本來就跑在刀表切屑(F576),所以 HiNC 只能在角落贏;光刀最大的彎曲降到上限,典型的彎曲則隨進給升高。
變體 C:半精修照程式保留,接著是光刀。
什麼決定了進給,取自每次優化播放的優化器逐步日誌:對原程式的每一個切削步,取在這一步自己的求解中允許最低每刃進給的準則,在延伸距離與加速度上限再把部分進給壓低之前:
| 播放、工序 | 切削步 | 刀具的切屑上限 | 守住自己切屑的行 | 主軸功率 | 主軸扭矩 | 刀具應力 | 目標切削力 | 下限 |
|---|---|---|---|---|---|---|---|---|
| A,D16 粗加工 | 62,829 | 50,725(80.7 %) | — | 12,053(19.2 %) | 47 | 3 | — | 1 |
| A,D6 殘料粗加工 | 16,624 | 12,436(74.8 %) | — | 17 | 5 | 3,910(23.5 %) | — | 256(1.5 %) |
| A,D6 光刀 | 24,662 | 14,939(60.6 %) | 2,976(12.1 %) | 5 | 1 | 64 | 6,666(27.0 %) | 11 |
| A,D4 光刀 | 4,227 | 3,822(90.4 %) | 382(9.0 %) | — | — | — | 23 | — |
| A,D2 光刀 | 638 | 250(39.2 %) | 4 | — | — | — | 384(60.2 %) | — |
| B,D16 粗加工 | 68,159 | 49,107(72.0 %) | — | 19,000(27.9 %) | 48 | 3 | — | 1 |
| B,D6 殘料粗加工 | 15,549 | 11,536(74.2 %) | — | 21 | 5 | 3,731(24.0 %) | — | 256(1.6 %) |
| B,D6 光刀 | 20,887 | 18,248(87.4 %) | 888(4.3 %) | 4 | 1 | 49 | 1,681(8.0 %) | 16 |
| B,D4 光刀 | 295 | 280(94.9 %) | 4(1.4 %) | — | — | 7(2.4 %) | 4(1.4 %) | — |
| B,D2 光刀 | 4,863 | 2,911(59.9 %) | 4 | — | — | 49(1.0 %) | 1,899(39.0 %) | — |
| C,D2 光刀 | 46,731 | 36,125(77.3 %) | 1 | — | — | 611(1.3 %) | 9,994(21.4 %) | — |
決定每個切削步進給的準則,取自優化器的逐步日誌。
切削時間落在哪個每刃進給上,依刀具。
逐工序,原程式與 A:
| 工序 | 程式 | 時間 (s) | 接觸/空中 (s) | 切削步 | 功率比,最大/p99 | 應力比,最大/p99 | 力,最大/p99 (N) | XY 刀尖撓曲,最大/p99/中位數 (µm) | 每刃進給,中位數 (mm) | 進給,中位數 (mm/min) |
|---|---|---|---|---|---|---|---|---|---|---|
| D16 粗加工 | 原程式 | 308.2 | 230.5/77.7 | 62,829 | 2.632/1.615 | 0.213/0.209 | 1,168.6/823.1 | 42.7/41.7/10.7 | 0.08 | 3,600 |
| HiNC(A) | 258.6 | 224.8/33.8 | 64,386 | 1.576/0.663 | 0.206/0.182 | 809.5/718.3 | 41.0/36.4/16.4 | 0.08 | 3,600 | |
| D6 殘料粗加工 | 原程式 | 108.9 | 41.2/67.7 | 16,624 | 0.213/0.172 | 0.758/0.741 | 261.2/255.9 | 164.4/160.5/3.5 | 0.04 | 2,400 |
| HiNC(A) | 102.7 | 56.8/46.0 | 22,032 | 0.101/0.081 | 0.332/0.332 | 126.1/114.2 | 75.8/71.9/5.4 | 0.0247 | 1,481 | |
| D6 光刀 | 原程式 | 119.5 | 62.5/57.0 | 24,662 | 0.281/0.067 | 0.910/0.347 | 333.6/123.5 | 193.9/74.0/12.3 | 0.04 | 2,400 |
| HiNC(A) | 149.1 | 103.4/45.7 | 38,301 | 0.131/0.037 | 0.109/0.106 | 116.5/36.2 | 24.1/22.1/10.3 | 0.04 | 2,400 | |
| D4 光刀 | 原程式 | 32.7 | 10.7/22.0 | 4,227 | 0.054/0.010 | 0.339/0.069 | 98.6/18.6 | 79.5/15.2/10.5 | 0.025 | 1,800 |
| HiNC(A) | 34.6 | 9.3/25.3 | 3,754 | 0.031/0.013 | 0.196/0.089 | 53.4/24.6 | 43.3/20.1/10.5 | 0.025 | 1,800 | |
| D2 光刀 | 原程式 | 30.4 | 1.9/28.4 | 638 | 0.008/0.008 | 0.821/0.821 | 42.0/42.0 | 359.9/359.9/80.6 | 0.012 | 576 |
| HiNC(A) | 78.6 | 17.1/61.5 | 5,513 | 0.001/0.001 | 0.113/0.113 | 5.7/5.7 | 49.9/49.9/18.4 | 0.001 | 49 |
對連續額定,D16 粗加工最大的功率比(在斜坡折返那一步)從 3.509 降到 2.101。
逐工序,手調版與 B:
| 工序 | 程式 | 時間 (s) | 接觸/空中 (s) | 切削步 | 功率比,最大/p99 | 應力比,最大/p99 | 力,最大/p99 (N) | XY 刀尖撓曲,最大/p99/中位數 (µm) | 每刃進給,中位數 (mm) | 進給,中位數 (mm/min) |
|---|---|---|---|---|---|---|---|---|---|---|
| D16 粗加工 | 手調版 | 335.8 | 259.1/76.7 | 68,159 | 2.632/0.666 | 0.209/0.182 | 1,168.6/718.3 | 41.7/36.4/11.2 | 0.08 | 3,600 |
| HiNC(B) | 257.6 | 224.5/33.1 | 62,571 | 1.576/0.663 | 0.206/0.182 | 809.5/718.3 | 41.0/36.4/16.6 | 0.08 | 3,600 | |
| D6 殘料粗加工 | 手調版 | 113.9 | 42.4/71.5 | 15,549 | 0.142/0.127 | 0.703/0.599 | 242.9/206.1 | 152.6/129.5/3.5 | 0.04 | 2,400 |
| HiNC(B) | 103.2 | 57.3/45.9 | 20,943 | 0.094/0.081 | 0.332/0.332 | 114.8/114.2 | 75.9/71.9/5.5 | 0.0247 | 1,481 | |
| D6 半精修(保留) | 兩者 | 96.7 | 72.1/24.6 | 27,764 | 0.035/0.022 | 0.217/0.125 | 76.1/43.1 | 46.6/26.9/12.3 | 0.04 | 2,400 |
| D6 光刀 | 手調版 | 65.1 | 53.7/11.5 | 20,887 | 0.016/0.009 | 0.099/0.060 | 32.8/21.3 | 21.8/13.3/8.3 | 0.032 | 1,920 |
| HiNC(B) | 81.5 | 64.2/17.3 | 24,298 | 0.021/0.013 | 0.113/0.092 | 37.9/31.5 | 25.0/20.1/4.0 | 0.0398 | 2,387 | |
| D4 半精修(保留) | 兩者 | 27.0 | 10.3/16.6 | 4,141 | 0.004/0.003 | 0.048/0.048 | 11.3/11.3 | 6.8/6.8/6.8 | 0.025 | 1,800 |
| D4 光刀 | 手調版 | 6.2 | 1.0/5.3 | 295 | 0.013/0.013 | 0.083/0.083 | 22.9/22.9 | 11.7/11.7/3.6 | 0.0063 | 450 |
| HiNC(B) | 13.0 | 0.7/12.2 | 238 | 0.051/0.051 | 0.317/0.317 | 92.2/92.2 | 46.2/46.2/1.4 | 0.0233 | 1,680 | |
| D2 半精修(保留) | 兩者 | 66.2 | 0.6/65.6 | 260 | 0.003/0.003 | 0.383/0.383 | 21.5/21.5 | 101.6/101.6/75.2 | 0.012 | 576 |
| D2 光刀 | 手調版 | 75.9 | 12.3/63.6 | 4,863 | 0.001/0.001 | 0.123/0.119 | 6.9/6.6 | 32.7/31.7/13.9 | 0.003 | 144 |
| HiNC(B) | 60.0 | 8.3/51.7 | 3,232 | 0.002/0.002 | 0.187/0.187 | 10.3/10.3 | 49.1/49.1/15.4 | 0.0059 | 283 |
D16 粗加工超過 0.667 × 1.02 的切削步從 106 步降到 1 步。B 的 D4 光刀最大讀到 92.2 N,目標是 95.02 N,中位進給 F1680,手調版是 F450。
逐工序,變體 C:
| 工序 | 程式 | 時間 (s) | 接觸/空中 (s) | 切削步 | 功率比,最大/p99 | 應力比,最大/p99 | 力,最大/p99 (N) | XY 刀尖撓曲,最大/p99/中位數 (µm) | 每刃進給,中位數 (mm) | 進給,中位數 (mm/min) |
|---|---|---|---|---|---|---|---|---|---|---|
| D2 半精修(保留) | 兩者 | 180.3 | 92.5/87.8 | 37,580 | 0.002/0.001 | 0.243/0.185 | 13.5/10.3 | 64.2/49.1/39.3 | 0.012 | 576 |
| D2 光刀 | 手調版 | 179.3 | 115.1/64.2 | 46,731 | 0.001/0.001 | 0.216/0.140 | 11.7/7.8 | 55.8/37.1/21.6 | 0.012 | 576 |
| HiNC(C) | 148.3 | 91.6/56.7 | 37,496 | 0.003/0.002 | 0.191/0.184 | 10.5/10.1 | 50.0/47.4/27.3 | 0.012 | 576 |
這裡的功率比是對短時額定;切削步是有接觸、去料超過 0.01 mm³/s 的步;進給與每刃進給的中位數依路徑加權。重播在進給較低的地方切削步較多:較慢的進給在同一段路徑上取更多步。
負荷對目標(O2、O5),每道重播的工序。自由步是既不在下限、也不在守住自己切屑的行上的步:
| 重播、工序 | 切削步 | 在下限 | 在守住或保留的行上 | 自由 | 自由步在目標內 | 高於目標:在下限/守住 | 目標切削力 | 最大 XY 撓曲 |
|---|---|---|---|---|---|---|---|---|
| A,D16 粗加工 | 64,386 | 61 | 0 | 64,325 | 100 % | 1/0 | — | 41.0 µm |
| A,D6 殘料粗加工 | 22,032 | 7,147 | 0 | 14,885 | 100 % | 0/0 | — | 75.8 µm |
| A,D6 光刀 | 38,301 | 3,902 | 3,203 | 31,196 | 99.933 % | 0/24 | 36.29 N | 24.1 µm |
| A,D4 光刀 | 3,754 | 0 | 379 | 3,375 | 100 % | 0/0 | 53.68 N | 43.3 µm |
| A,D2 光刀 | 5,513 | 0 | 3 | 5,510 | 100 % | 0/0 | 5.73 N | 49.9 µm |
| B,D16 粗加工 | 62,571 | 61 | 0 | 62,510 | 100 % | 1/0 | — | 41.0 µm |
| B,D6 殘料粗加工 | 20,943 | 7,196 | 0 | 13,747 | 100 % | 0/0 | — | 75.9 µm |
| B,D6 半精修(保留) | 27,764 | 1,367 | 27,764 | 0 | — | 0/0 | — | 46.6 µm |
| B,D6 光刀 | 24,298 | 3,720 | 844 | 19,734 | 100 % | 0/0 | 37.57 N | 25.0 µm |
| B,D4 半精修(保留) | 4,141 | 0 | 4,141 | 0 | — | 0/0 | — | 6.8 µm |
| B,D4 光刀 | 238 | 136 | 0 | 102 | 100 % | 0/0 | 95.02 N | 46.2 µm |
| B,D2 半精修(保留) | 260 | 0 | 260 | 0 | — | 0/36 | — | 101.6 µm |
| B,D2 光刀 | 3,232 | 0 | 2 | 3,230 | 100 % | 0/0 | 10.27 N | 49.1 µm |
| C,D2 半精修(保留) | 37,580 | 0 | 37,580 | 0 | — | 0/0 | — | 64.2 µm |
| C,D2 光刀 | 37,496 | 0 | 1 | 37,495 | 100 % | 0/0 | 10.27 N | 50.0 µm |
優化後的檔(O7),逐行讀回:
| 程式 | 行數,原 → 優化 | F 字,原 → 優化 | 寫出的進給 | 帶來源註記的行 | 嵌入的設定行留在自己的行上 | 空切進給的行 |
|---|---|---|---|---|---|---|
| A | 31,233 → 38,270 | 364 → 9,439 | 49–10,000 mm/min | 30,318 | 122 中 122 | F7290 129 行、F10000 123 行 |
| B | 31,817 → 38,419 | 10,639 → 13,668 | 90–10,000 mm/min | 21,679 | 156 中 156 | F8570 133 行、F10000 110 行 |
| C | 6,202 → 6,424 | 2,585 → 1,644 | 86.4–576 mm/min | 2,630 | 126 中 126 | 無 |
原程式的計數包含嵌入的設定行;優化器照原樣抄寫每一條這樣的行,後面不接來源註記,而且每次優化播放只報出四支鑽頭的「優化關閉」警告。
形狀(O3):
| 檢查 | 變體 A | 變體 B | 變體 C |
|---|---|---|---|
| (a) 偏離原程式行超過 1 µm 的終點 | 38,033 中 172,最多 16.6 µm,全在 D16 粗加工 | 38,152 中 44,最多 11.5 µm,全在 D16 粗加工 | 6,282 中 0 |
| (b) 代理 0.025 mm 的 z-map,優化程式之後對原程式之後 | 17,247,409 個格點,100 % 在 1 µm 內,最大差 0 | 17,247,409 個格點,100 %,0 | 14,966,457 個格點,100 %,0 |
| (c) HiNC 匯出的零件,重播對基準 | 105,610.709 對 105,611.098 mm³(−3.7 × 10⁻⁶) | 105,617.154 對 105,617.060 mm³(+9 × 10⁻⁷) | 82,651.405 對 82,651.406 mm³(0) |
空切進給防護(O6):在代理的 z-map 上,沒有一支優化程式有切削移動高於它那一行的上限 × 1.02,也沒有一支在快移上切料。HiNC 自己的重播步中,以空切進給碰到毛胚的:
| 重播 | 步數 | 其中 D16 在 F10000/D6 在它的空切進給 | 合計去料 | 最大力 | 最寬 | 來源行(例) |
|---|---|---|---|---|---|---|
| 變體 A | 59 | 53/6(F7290) | 0.051 mm³ | 6.9 N | 0.112 mm | 粗加工第 6,005、8,043、9,049、10,065、11,034… 行;殘料粗加工第 16,950、18,499、20,048 行 |
| 變體 B | 52 | 44/8(F8570) | 0.219 mm³ | 6.9 N | 0.109 mm | 粗加工第 4,990、5,439、6,439… 行;殘料粗加工第 11,923、12,916、13,910、14,904 行 |
| 變體 C | 0 | — | — | — | — | — |
接觸(O8):z-map 說有切的每道工序,在 HiNC 裡都有接觸的步。接觸路徑依 HiNC 的步紀錄加總,基準 → 重播:
| 工序 | 變體 A | 變體 B |
|---|---|---|
| D16 粗加工 | 21,728 → 21,931 mm(+0.9 %) | 21,725 → 21,843 mm(+0.5 %) |
| D6 殘料粗加工 | 2,559 → 2,544 mm(−0.6 %) | 2,589 → 2,579 mm(−0.4 %) |
| D6 半精修 | — | 5,000 → 5,000 mm(0 %) |
| D6 光刀 | 4,539 → 4,552 mm(+0.3 %) | 2,993 → 2,988 mm(−0.2 %) |
| D4 半精修 | — | 490 → 490 mm(0 %) |
| D4 光刀 | 499.4 → 487.6 mm(−2.4 %) | 19.2 → 11.0 mm(−42.9 %) |
| D2 半精修 | — | 11.0 → 11.0 mm(0 %) |
| D2 光刀 | 34.1 → 29.7 mm(−13.0 %) | 76.7 → 74.8 mm(−2.5 %) |
| 鑽頭 | 不變 | 不變 |
變體 C:半精修 1,286.7 mm 不變,光刀 1,450.0 → 1,446.3 mm(−0.3 %)。
執行成本,在共用的 32 執行緒伺服器上:
| 播放 | 步數 | 模擬時間 | 伺服器時間 | 記憶體峰值 |
|---|---|---|---|---|
| 角落試跑,九次播放(難題 1 的表) | 每次 138,287–273,221 | — | 每次 80–250 s,合計 18.5 min | 1.68–38.45 GiB |
| A:優化播放/重播 | 207,946/227,096 | 635.6/659.7 s | 641/771 s | 40.57/9.86 GiB |
| B:優化播放/重播 | 273,221/255,403 | 823.6/741.8 s | 861/861 s | 47.52/12.69 GiB |
| Y+ OP1 第 1–50,211 行,一般播放,寫出 C 的工件紀錄 | 389,490 | 1,089.8 s | 821 s | 4.15 GiB |
| C:優化播放/重播 | 146,979/134,925 | 360.5/329.4 s | 100/80 s | 7.02/7.02 GiB |
| 記憶體重現(難題 1),兩次播放 | 每次 14,562 | 每次 43.0 s | 10/20 s | 0.52/6.71 GiB |
| 第二個實例上的五次畫面播放 | 22,579–172,125 | — | 70–841 s,合計 32 min | 1.39–4.18 GiB |
重的播放一個接一個拿共用鎖:依伺服器的時鐘,角落試跑從 03:52 到 04:35,整支程式與 C 從 04:35 到 05:46,每一次開始時伺服器有 65 到 96 GB 記憶體可用;伺服器的可用記憶體從沒低於 48 GB。一次優化播放大約要它重播的四倍記憶體(40.6/9.9 與 47.5/12.7 GiB)。
對加工工程師。 在一片原程式讓主軸過載、讓小刀彎得遠超過上限的板上,HiNC 的進給優化一次播放就做到代理手調好幾輪才做到的事:在 HiNC 的模型裡,每一刀全寬切削都守在主軸的目標上、每一道光刀都在它的撓曲上限內,時間只比原程式多 3.8 %、比手調版少 19.9 %。這支程式上機之前,有兩件事要工廠看一眼:它的精修切屑低到 0.001 mm,真實的刀會擠壓;它以全切屑走斜坡,工廠可能不接受。對手調版,優化器在同樣的上限內少了 9.9 %,三分之二來自斜坡;斜坡照程式的話約 3 %,所以手調規則已經很接近優化器會做的。一步讀到有料卻沒有力,HiNC 就把它周圍那一段放慢到下限;在這片板上,每支程式要多約 35 到 45 秒。
對老師或學生。 一片板就說明了進給優化器能取代什麼、不能取代什麼:由撓曲上限與刀的柔度推得的目標切削力,能在一刀精修上取代手寫的進給規則,只要模型的力會隨進給變;半精修與刀路仍是程式設計者的;優化器贏到的時間,要先追到它從哪裡來——這裡是斜坡與空中的移動——再算成它的功勞。
對評估這種做法的人。 從兩支現成的程式,到兩支都優化好、再加第三個變體,在共用伺服器上花了一個約兩小時的工作時段:1.5 小時的播放,重的一次一個、最多 47.5 GiB,旁邊再半小時的畫面播放。代理先寫下標準與預測,每一條規則都先在修剪過的一角上試過才上整片板,找到並繞過嵌入設定的記憶體成本,照實報出沒中的預測,並以自己的模型檢查每一個寫出的點、每一個空切進給的移動與最後的毛胚。
誠實的限制¶
- 時間是理想進給的估計,不含控制器的加減速與前瞻:程式之間的比例可信,絕對時間不是現場時間——見加工時間估算。
- 撓曲只在 HiNC 的模型裡成立。 它們是 HiNC 刀具樑的讀值,可能把刃部的柔度高估三到五倍;A 的精修靠 0.001–0.002 mm 的切屑才到上限,真實的刀在那裡會擠壓,而 HiNC 不模擬擠壓。HiNC 的撓曲變換關閉,所以形狀檢查讀的是程式路徑。
- 優化器沒有內建的撓曲準則。 C2 由每把刀的柔度推得的目標切削力承載;目標切削力不作用在高度有變的步上,所以那些行守住自己的切屑。
- 斜坡被拉高是計畫的規則,不是工廠的。 斜坡的排屑與進刀角不在 HiNC 的準則裡;斜坡守在程式進給的話,A 與 B 各要多約 55 秒。
- 有去料卻讀不到力的步,可能把一段拉到下限:刀具應力準則在其中一些步上回答下限,延伸距離再把它帶到前後各 2 mm(這裡是 51.6 與 59.6 秒)。
- 斜坡折返讀到的去除率是鄰近步的好幾倍,所以 D16 有一步在下限仍超過額定。
- 切開的行可能偏離原程式行,最多是那一行自己在某軸上的小變化(這裡 16.6 µm,在粗加工)。
- 嵌入的設定要花記憶體:一次播放每執行一行設定約 9 MB,所以幾千行上的設定要幾十 GB。
- 主軸功率讀得偏高:HiNC 的 AA7075 資料與 0.4 的主軸效率,讓功率比約是一般工廠估算的五倍(見案例頁),所以粗加工以功率為限的進給偏保守。
- 只優化了 X- OP1 與一段 D2。 通用的機台與主軸、代理的刀具與刀把、虎鉗都是案例的;顫振、排屑、刀具磨耗、表面粗糙度與板自己的剛性都沒有模擬,也沒有在機台上量過任何東西。
讀者可以帶到自己案例的¶
- 把原程式交給優化器,不只是調好的那支。 這裡它從 CAM 第一次的輸出就達到手調修改的上限,而且比修改後的快。
- 把撓曲上限換成刀的柔度推得的目標切削力,並檢查切屑壓到多低:幾微米以下的切屑守住的是模型的上限,不是刀的。
- 給斜坡與下刀自己的上限。 只看功率、應力與力的優化器,會把斜坡拉到全切屑。
- 把省下的時間依來源拆開——斜坡、空中移動、切削——再算成優化器的功勞。
- 保留區段,不要逐行:設定行依執行的行數吃記憶體。
- 在重播裡找停在下限的段,並讀它們開頭的逐步日誌:一個讀不到力的下刀可能拖慢鄰近的步。
- 在播放之前寫下預測並保留;照實報出沒中的。
- 拿毛胚的精確模型檢查重播,找出會切到料的空切進給移動,以及離開自己行的點。
來源與授權¶
- 來源: Tim Munhowen(TU Wien Space Team,維也納),SpaceTeamSat1 Mechanical Design,Zenodo,版本 1.0,2025-05-21 發佈,doi:10.5281/zenodo.15482346。本案例使用檔案
Sts1MechanicalDesign_1.0.zip(2,533,985 bytes):組立CS_STS1.STEP、六片板的 STEP 檔,以及 13 張的圖面CS_STS1.pdf。連結失效時可搜尋:SpaceTeamSat1 Mechanical Design、zenodo 15482346、CS_Xminus.STEP。 - 授權: CC BY 4.0,依 Zenodo 紀錄所載(2026-09-30 讀取)。授權依原樣提供素材,不附任何保證。圖面帶有「SOLIDWORKS Educational Product. For Instructional Use Only.」(SOLIDWORKS 教育版產品,僅供教學使用)的浮水印,這關係到作者的軟體授權,而不是資料的授權;本頁只放 HiNC 的畫布與代理的圖表。
- 姓名標示: 「SpaceTeamSat1 mechanical design by Tim Munhowen, TU Wien Space Team (Zenodo, doi:10.5281/zenodo.15482346), CC BY 4.0. Machining set-up by Tech Coordinate's agent.」(SpaceTeamSat1 機構設計:Tim Munhowen,TU Wien Space Team,Zenodo,doi:10.5281/zenodo.15482346,CC BY 4.0;加工設定由 Tech Coordinate 的代理完成。)
- 與原作的差異: 零件幾何原樣使用;毛胚、裝夾、夾具、刀具與刀把、程式、程式的優化與機台都是代理的。畫面是 HiNC 對代理設置的模擬,圖表畫的是 HiNC 的逐步結果、優化器的逐步日誌與代理自己的 z-map。
- 備份: 公司網站保留一份原始檔的備份。
另見¶
- SpaceTeamSat1 立方衛星結構:六片 Al 7075 板、二十四次裝夾——這裡優化的板、裝夾、刀具與兩支程式是怎麼做出來的
- NC 優化原理——優化器守什麼、延伸距離,以及重播為什麼可能讀高於目標
- 工作流程:NC 優化——設定、嵌在 NC 碼裡的設定、保留的行與逐步日誌
- 優化結果——其他零件量得的優化前後比較
- 加工時間估算——為什麼兩個模擬時間的比例才可信
- 實作案例——其他案例,以及案例頁怎麼讀