Ø11 mm 球面 V 槽:刀尖低於 B 軸中心 10 µm,兩條槽從槽頂的 0 往赤道越切越深、槽端多切 7 µm;程式是機械座標,校正過的控制器幫不上忙¶
Wu、Liu、Cui 與 Zong 在 Mendeley Data(2023)公開了他們以超精密五軸銑削在球面上刻 V 槽的研究所用的 NC 程式:五支 G-code 與一段簡短說明,沒有模型、機台、刀具,也沒有量測。程式是機械座標 X Y Z B C,沒有 RTCP。其中的 simulation_singular1(下稱 sim1,1,116 行)在 Ø11 mm 的球上刻兩條 V 槽:T01 刻槽 A(第 6–560 行),T04 刻槽 B(第 563–1114 行)。每條槽從赤道附近(B≈60°)爬到槽頂(B≈0,刀軸直立),再下到另一側的赤道。槽頂在 Z 3.631、離 C 軸 4.12 mm,不是球的頂點;本頁說的「極點」,指的是這個 B≈0 的姿態。一個 AI 代理 (agent) 先前只憑這些程式建出了這個案例:程式唯一說得通的機台,是 B 擺頭繞刀尖轉、C 台繞球心轉的通用五軸機,代理是從「每個五軸單節離球心都是 5.4943 mm」反推出來的。
真機上,刀尖相對 B 軸的位置由對刀決定,永遠會差一點。這一頁,代理在那台機上放一個常見的對刀誤差:刀尖比 B 軸中心低 10 µm——刀等於比程式假設的長了 10 µm,或主軸鼻端在 B 頭裡低了 10 µm。它做成一條標記的誤差項:名為 TipOffB 的平移,在 B 的下游、主軸連接的正上游。sim1 一行都沒改。在 0.0625 mm 下共播六趟,三趟播 sim1 的修剪複本(第 1–288 行,加第 289 行的前半段),三趟播整支程式:
- 誤差項關:名目趟。它切出的工件,當作之後每一次幾何差異比對(Diff)的理想幾何。
- 誤差項再關一次,並做 Diff:對照趟,用來看雜訊底。
- 誤差項開、有標記:控制器不知道這個誤差。
- 誤差項開、清掉標記(只在修剪複本上):控制器知道這個誤差。
誤差項開的兩趟,都打入了真機在 B 0 對刀會量到的工作偏移:G54 Z +0.010。結果:
- 刀尖。 控制器不知道誤差時,整支程式 4,961 個切削步的刀尖偏移,全部落在 ΔCl = dz·(−sinB·cosC, −sinB·sinC, 1 − cosB) 上(dz = 10 µm),相差不到 1.8×10⁻¹⁴ mm。B = 0 時是 0,B 轉到 60° 時是 9.996 µm。偏移只看 B(C 決定它的方向),與刀在球上的哪一點無關。
- 槽深只看高度。 刀軸對球面法向恆成 48.6°,所以槽深方向的偏差,是刀尖高度的一條直線 Δr = −dz·(3.631 − Z)/5.4943:槽頂(Z 3.631,B≈0)是 0,往赤道越深。網格上量到的槽底中位數:槽端 −6.45 µm、B≈50° −4.88、40° −3.20、30° −1.79、20° −0.82、10° −0.21、槽頂 −0.03 µm;把刀整支平移 ΔCl、逐點算出的預測,與每一個中位數都差不到 0.1 µm。槽最深處(開的最小半徑減名目)在槽端讀到 −7.33 µm,預測 −7.0 µm。槽端多切的 7 µm,是這道程式名目切深 25 µm 的 28 %。
- 沒動的地方。 程式本身的奇異單節在極點切出的兩個坑,離球心 3.63084 與 4.52138 mm,誤差項開、關都一樣,也與基礎案相同。坑的頂點 99.9 % 在 0.5 µm 內;未切的球面 99.999 %(名目網格缺面的那一塊不算)、柄與腳 100 % 也在 0.5 µm 內。
- 校正過的控制器幫不上忙。 清掉標記後,3,037 個配對步的機械座標與有標記那一趟逐位相同,刀尖差不到 1.8×10⁻¹⁵ mm,切後毛胚的網格距離檔逐位元組相同。程式是機械座標,控制器根本不解運動鏈:知道誤差,也無處可補。唯一的差別是第 16 行(空中的 C 定位)少一步(2,806 對 2,807),這一行因此無法逐步比,計畫的標準 4「逐步相同」照字面未通過。補償只能寫進後處理,每個單節 X′ = X + dz·sinB、Z′ = Z − dz·(1 − cosB);或者把刀尖真的調回 B 軸上。
- 對照。 235,904 個頂點全部在 0.5 µm 內,最大 5.0×10⁻¹⁰ mm;逐步序列與名目趟逐位相同。
- 成本,在共用的 32 執行緒伺服器上:整支程式每趟 16,018–16,019 步、20.6–21.0 分鐘,記憶體峰值(VmHWM)3.45–3.67 GB;修剪每趟 5,843–5,844 步、10.0–12.0 分鐘、2.70–2.98 GB。
這裡的一切都是仿真,沒有切過任何零件。

誤差項開、有標記那一趟記下的毛胚,連同 Diff 放回畫布,再在上面播修剪程式(sim1 第 1–288 行加第 289 行的前半段),讓 60° V 刀(Ø0.1 平刀尖、Ø3 柄)直立停在 B≈0 的坑底(B 0.12°,那裡刀尖只偏 0.02 µm);Ø3 熱縮刀把(懸伸 10 mm)在上方。畫面裡看得到的是槽 B:從經過第二個坑(左邊的淚滴形坑)的槽頂綠色,漸變到右下槽端的黃與紅;坑是綠的。槽端正下方那一小塊灰底、藍紅框的斑,位置就在名目匯出的切削件缺面的那一塊(難題 7):理想幾何在那裡沒有面,HiNC 的 Diff 讀不出正常值,不是切削的差。Diff 色階 ±0.007 mm(紅=過切、藍=留料、綠=0,正負同權重);0.0625 mm;HiNC 3.2.46 開發版(含誤差項)。
| 兩條槽,0.0625 mm,HiNC 3.2.46 開發版(含誤差項) | 第一次播放前的預測 | 量到 |
|---|---|---|
| 刀尖減名目刀尖再減 ΔCl,開那一趟的 4,961 個切削步 | 0(計畫容許 1×10⁻⁹ mm) | 最多 1.8×10⁻¹⁴ mm |
| 最大的刀尖偏移 |ΔCl| | 2dz·sin(B/2),B 59.974° 時 9.996 µm | 9.996 µm |
| B = 0、打入的 G54 生效後的刀尖偏移 | 0 | 最多 1.5×10⁻¹⁴ mm(856 步) |
| 機械座標 X、Y、B、C,開對名目 | 相同 | 15,993 個配對步全部相同;Z 差 +0.010 mm,是打入的 G54 |
| 槽端:最深處/槽底中位數 | Δr = −7.0 µm | −7.33/−6.45 µm(槽底讀到 0.97 Δr,這是播放後才找出的讀法) |
| B≈50/40/30/20/10° 的槽底中位數 | Δr = −5.05/−3.31/−1.89/−0.86/−0.22 µm | −4.88/−3.20/−1.79/−0.82/−0.21 µm |
| 槽頂,B < 5° | 0 | −0.03 µm |
| 31 格槽底(每格刀尖高度 0.125 mm)對 −dz·(3.631 − Z)/5.4943 | ±1 µm 內 | −0.005 到 +0.29 µm |
| 兩個坑,離球心最近處 | 不變(基礎案:3.6308/4.5214 mm) | 3.63084/4.52138 mm,開與名目相同 |
| 坑/未切的球面/柄與腳 | 0 | 頂點在 0.5 µm 內的比例:99.91/99.999/100 % |
| 不標記對有標記(修剪):機械座標與切削 | 逐位相同 | 3,037 個配對步相同,切削件的網格距離逐位元組相同;第 16 行少一步 |
| 對照對名目 | 0 | 每一步逐位相同;每個頂點都在 5.0×10⁻¹⁰ mm 內 |
| 六趟播放的伺服器時間/整支程式一趟的記憶體峰值 | — | 5,711.3 s/3.45–3.67 GB |
案例¶
這個資料集(見下面的來源與授權)只有五支 G-code 與資料紀錄的簡短說明。它對機台只寫了「the five-axis machine tool」,刀具、毛胚、材料與量測都沒有;配套論文刊在 Precision Engineering,不是開放取用,沒有讀。一個 AI 代理把這個資料集建成 HiNC 專案,也就是 Mendeley 球面 V 槽案例:它用常數距離、恆定刀角、平面曲線三個檢驗,從程式把機台鏈讀回來;選了毛胚、刀具與刀把;播了作者沒加與加了插點演算法的程式,重現了極點的奇異單節把刀尖拖進球面挖出的坑。那一案在這裡沒有自己的頁面;這一頁用到它的事實,都寫在下面。那一案的機台,刀尖剛好在 B 軸上:程式只有在這個假設下才對,代理也是靠它反推出機台的。這一頁問的是刀尖不在軸上會怎樣。真機上刀尖的位置由對刀決定,永遠會差一點;差 10 µm 時,這兩條槽長什麼樣子?控制器知不知道這個誤差,切出來有沒有差別?代理拿到的:
-
基礎案的專案與程式。
- sim1。 資料集的程式是機械座標的 ISO G-code:每個運動都是
G01,沒有 RTCP,也沒有G43。每道次以G01 X15 Y0 F2、B0 F5、C0 F50、Z0 F2開頭,單軸逐一移到起點(X、Z、Y,再 B≈60 與 C),沿 X 以 F0.618 進刀 1 mm,接著是五軸單節X Y Z B C F20,最後退刀回 X15。sim1 裡,槽 A 的五軸單節在第 21–557 行,極點的奇異單節在第 289 行(C 在一個G01裡轉 179.88°);第 562 行是T04 M06;槽 B 的五軸單節在第 577–1113 行,在第 843–845 行經過極點附近(設計代理——草擬這項研究的代理——讀 NC 得到的)。 - 機台,基礎案反推、為它自建,沒有廠牌幾何:C 台繞 −Z、通過程式零點(球心);B 擺頭繞 +Y、通過刀尖;機械零點就是程式的停放點 X15 Y0 Z0 B0 C0,G54 是 (−15, 0, 0)。機台鏈的台側是
O→base→Y→X→C→w,刀側是base→Z→B→S→t。刀具安裝點S→t在 B 錨點座標 (15, 0, 103),刀長 70 mm,所以刀尖在 (15, 0, 33),正好是 B 的樞點。B、C 的 54 種讀法裡,只有這一種讓每一道都是平面曲線、不同的槽落在不同的平面上。 - 毛胚、刀具與刀把,基礎案自選:R 5.5193 的球(比程式半徑 5.4943 高 25 µm),帶 Ø4 柄與 Ø16 × 4 的腳,放在 50 × 50 × 15 的平板夾具上;60° V 刀,刀尖是 Ø0.1 的平面(
TaperAptD0.1、β 30°、刃高 2.511),Ø3 柄長 40 mm,裝在 Ø3 熱縮刀把裡、懸伸 10 mm;T01 與 T04 是同一把。刀尖(平端中心)走在程式球面上,比毛胚深 25 µm;平端外緣再深 37.5 µm,所以槽最深的那條線離毛胚面 62.5 µm。 - 基礎案的結果。 照控制器以機械軸內插的方式播,sim1 的奇異單節把刀尖拖進球裡:第 289 行切到離球心 3.6308 mm;單獨播 sim2(它的第 288–289 行就是 sim1 的第 844–845 行)切到 4.5214 mm。
- sim1。 資料集的程式是機械座標的 ISO G-code:每個運動都是
-
HiNC 的誤差項。 機台鏈上的軸或主軸可以帶一個誤差項,也就是緊接在那根軸的連接之前、一條自己的靜態連接:它帶的是量到的誤差,不是設計的一部分。控制器
XyzabcSolver負責把 NC 轉成機械座標,它一律在名目鏈上解,把標記的連接當作不存在。專案的啟用誤差項開關開著時,仿真的機台帶著標記的連接運動、切削、檢查碰撞。所以誤差會切進零件,就像一台控制器不知道自身誤差的真實機台。沒有 RTCP、傾斜工作平面或 CL 播放時,鏈上的每一個誤差都會切進零件,標不標記都一樣(誤差項連接 (Error-Term Branches),英文,未鏡像)。 - 對刀與 P0。 HiNC 的 P0 在名目鏈上量程式零點。真實機台對刀量到的工作偏移,已經含有對刀姿態下誤差造成的固定偏移。手冊說,要重現某家工廠的結果,就手動打入那家量到的工作偏移(有誤差項的機台上的工作偏移)。
- 擺放規則。 HiNC 的產品擁有者 2026-10-06 裁定:誤差項只放在角色連接(X 軸到 C 軸,或主軸)的正上游,放在它自己的新錨點上,錨點以那條連接的名稱加上
err命名。 - 要求。 HiNC 的產品擁有者要從先前的案例往上加誤差項的實作案例,產品案與論文案都可以;吃重的執行放到一台共用的伺服器上跑。
沒有任何資料寫明的:
- 哪一種定值誤差會在這顆球上留下痕跡。 本批對旋轉軸的預設——軸正上游一條平移——在這台機、這支程式上,零件上是 0(難題 2)。
- 主軸連接沒有繫結角色。 機台檔的
spindle連接(B→S)是 No Transform,沒有繫結主軸角色;裁定卻只准把誤差放在角色連接的正上游(難題 1)。 - 對刀會量到的 G54 Z。 要從機台鏈自己推。
- 0.0625 mm 的網格讀不讀得到 10 µm。 V 槽本身比一格小(刀尖處深 25 µm,最深那條線 62.5 µm),槽端的 7 µm 只有格寬的 11 %(難題 3)。
- 刀尖的位置與主軸角度無關。 代理補上的主軸旋轉,軸線一定要穿過刀尖,否則主軸角會改變切削(難題 1)。
這一案新的地方:
- 擺頭刀側的誤差。 它是主軸的誤差項,在 B 與主軸連接之間,也就是手冊替 B 頭上主軸殼體的傾斜指定的位置(誤差項可以放在哪裡);這裡放的是沿刀軸的平移。
- 機械座標的五軸程式。 在它之前的五軸誤差項案例——輪圈、BCAM 葉片、NIST 圓錐台——都在 RTCP 下播(
G43.4或M128),知道誤差的控制器切得回名目件。這裡控制器根本不解運動鏈,知不知道誤差都一樣,補償只能放進後處理。 - 同一個零件上的兩種指紋。 程式自己的錯(B≈0 的坑)與機台的錯(隨 B 長大的槽深),在同一顆球上分得開。
- 只看高度的深度誤差。 刀軸對球面法向恆成 48.6°,所以槽深方向的偏差只看那一點的高度。
代理建了什麼¶
每個值都標明是讀取(來自基礎案或文件)、推得(由讀到的值算出)或自選(代理自己的決定)。dz 是 B 軸中心比刀尖高多少,10 µm。
| 值 | 來源 | |
|---|---|---|
| 意義 | B 軸的旋轉中心比刀尖高 10 µm:刀等於比程式假設的 70 mm 長了 10 µm,或主軸鼻端在 B 頭裡低了 10 µm。也就是 B 軸相對主軸、沿刀軸方向的位置誤差 | 自選:誤差的種類與正負號 |
| 大小 | 0.010 mm,以 B 錨點的座標表示,沿 −Z(B 0 時的刀軸方向) | 自選:典型值,取旋轉軸位置誤差常見範圍的下限;這台通用機沒有量測,配套論文不是開放取用,沒有讀 |
| 前置 | spindle(B→S)從 No Transform 改成主軸的 Dynamic Rotation:軸 (0, 0, −1)、樞軸 (15, 0, 103),也就是刀具安裝點的軸線,與 B 軸一樣穿過刀尖;繫結主軸角色 |
自選:照裁定,誤差前面得先有一條擔任主軸角色的連接;樞軸穿過刀尖,主軸角才不會移動刀尖 |
| 放在哪 | 主軸連接的正上游。新錨點 spindleerr 把原本的 B→S 切成兩段:B→spindleerr 叫 TipOffB,放一條 Static Translation (0, 0, −0.010),標成誤差項;主軸的 Dynamic Rotation 整個搬到 spindleerr→S,主軸角色重新繫結,值不變 |
自選:依擁有者的裁定 |
| 機台鏈 | 台側 O→base→Y→X→C→w,刀側 base→Z→B→spindleerr→S→t |
讀取:建置後讀回的拓樸 |
| 工作偏移 | 誤差項開的兩趟(有標記與不標記)打入 G54 = (−15, 0, +0.010),也就是在 B 0 對刀會量到的值;名目與對照兩趟用案例原本的 (−15, 0, 0) | 推得:B 0 時刀尖低 10 µm,對刀會把它吃進 G54 Z |
為什麼放在刀側,不放在本批對旋轉軸的預設位置(設計代理在這顆球上把每個候選都算過):
- B 上游的平移會把 B 的樞點連同吊在它下面的主軸與刀一起搬,刀尖仍在 B 軸上,任何 B 都只差同一個常數,對刀就把它吃掉:零件上是 0。C 上游同理:球吊在 C 下,零件上也是 0。
- B 軸傾斜只轉刀軸,刀尖在軸上不動。直線軸的垂直度在這裡 ±4 mm 的行程上只有 0.2 µm。
- 刀尖不在 B 軸上,是這台機唯一能在零件上留下 µm 級痕跡的定值誤差——也正是這種程式最依賴的假設。

設備頁拓樸欄的工具機叢集(GeneralMechanism)。B 與主軸之間多了新錨點 spindleerr。TipOffB(Static Translation,B → spindleerr)畫成粗線,帶橘色「誤差項」徽章;主軸的 Dynamic Rotation 搬到 spindleerr → S,仍繫結主軸角色(工具機 · 主軸)。台側 O → base → Y → X → C → w 沒動。HiNC 3.2.46 開發版(含誤差項),繁體中文介面。
刀尖會偏多少:第一次播放前寫下的預測。 沒有標記的出自計畫;標「(設計)」的只寫在設計代理的設計裡。
- 在 B 錨點座標裡,刀尖在 (15, 0, 33 − dz)。B 繞樞點 (15, 0, 33) 轉時,刀尖繞真正的 B 中心擺開:相對球心偏 e = dz·(a0 − a(B)),其中 a(B) = (sinB, 0, cosB) 是刀軸方向,a0 = a(0)。B = 0 時 e = 0,與 C 和 X Y Z 都無關,所以對刀姿態零偏差;|e| = 2dz·sin(B/2)。
- 換到程式座標:ΔCl = Rz(C)·e = dz·(−sinB·cosC, −sinB·sinC, 1 − cosB)。
- (設計)機械座標:MC.X、MC.Y、MC.B、MC.C 與名目相同;MC.Z 多 dz,那是打入的 G54 Z,不是控制器算的。
- 槽深方向。 刀軸與球面法向 n 恆成 γ = 48.634°,所以 Δr = ΔCl·n = −dz·(cosγ − Z/R) = −dz·(3.6310 − Z)/5.4943,Z 是該步的程式 Z,R = 5.4943。Δr 只看點在球上的高度:槽頂 Z 3.631 正好是 B = 0 的高度,那裡是 0,往赤道越深。預測:B≈10° −0.22、20° −0.86、30° −1.89、40° −3.31、50° −5.05 µm,四個槽端(B≈59.7°)−7.0 µm;(設計)四個槽端各自(第 21、557、577、1113 行,B 59.6–59.9°)−7.01、−7.03、−6.98、−7.04 µm。
- 離開槽平面:槽留在原本的平面上;(設計)槽 A 0,槽 B 0.0007·dz = 0.007 µm。
- 沿槽(設計):槽端 0.71·dz = 7.1 µm,只移動每條槽的起訖點。
- 兩個坑(第 288–289、843–845 行)不動;未切的球面、柄、腳:0。(設計)這兩處 B ≤ 0.27°、|ΔCl| ≤ 0.046 µm,坑深 1.863 與 0.953 mm 不變;夾具也是 0。
- 不標記。 程式是機械座標,MC = 程式 + G54,控制器完全不經運動鏈。清掉標記後,機械座標、刀尖與切削應與有標記那一趟逐位相同,而不只是接近;所以不標記只在修剪複本上播一趟當證據。
各趟如下:
| 趟 | 程式 | 啟用誤差項 | TipOffB |
G54 | Diff | 做什麼 |
|---|---|---|---|---|---|---|
| t-nominal | 修剪複本(289 行) | 關 | 有標記(未生效) | (−15, 0, 0) | 無;匯出切削件(449,511 個三角形) | 修剪:名目,理想幾何 |
| t-unmarked | 修剪複本 | 開 | 清掉標記 | (−15, 0, +0.010) | 有;匯出切削件 | 修剪:控制器知道誤差 |
| t-on | 修剪複本 | 開 | 有標記 | (−15, 0, +0.010) | 有;匯出切削件 | 修剪:控制器不知道 |
| f-nominal | sim1(1,116 行) | 關 | 有標記(未生效) | (−15, 0, 0) | 無;匯出切削件(454,761 個三角形) | 理想幾何 |
| f-control | sim1 | 關 | 有標記(未生效) | (−15, 0, 0) | 有;匯出切削件 | 雜訊底 |
| f-on | sim1 | 開 | 有標記 | (−15, 0, +0.010) | 有;匯出切削件 | 控制器不知道;拍圖 |
各趟共同的設定:
- 0.0625 mm 網格,運動解析度用固定步進(線性 0.01 mm、旋轉 0.5°),物理關、碰撞偵測開、失敗時暫停關。
- Diff(工作流程:幾何驗證):理想幾何是同一組名目趟匯出的切削件,偵測半徑 1 mm,色階 ±0.007 mm。這樣 Diff 只顯示誤差改變了什麼,不含程式本身的坑與槽。
- 逐步序列記下 Cl.X/Y/Z(刀尖=平端中心,在程式座標,球心為原點)、Cl.I/J/K(刀軸)、MC.X/Y/Z/B/C、FileNo、LineNo、IsTouched、ToolId。
代理怎麼管理這件工作¶
- 先寫標準與預測。 計畫、預測與七條標準在第一次播放前提交。建置在 2026-10-06 21:42:51 到 21:42:58,第一趟 21:43:30 開始。
- 建置只經 Web API。 代理的工具把基礎專案另存成新的誤差項專案,
NC/資料夾與修剪程式一併複製,並停用基礎專案的記錄條目。先做兩步前置(主軸連接改成 Dynamic Rotation、繫結主軸角色),再插入TipOffB並標記。任務:加工解析度 0.0625 mm、運動解析度固定步進(0.01 mm/0.5°)、碰撞偵測開、失敗時暫停關、物理關,五個程式條目(sim1、sim2、exp1、exp2 與修剪程式,一次只啟用一支),一個匯出網格幾何 (STL) 條目,以及執行後作業條目。 - 修剪先跑。 修剪程式
pose-sim1-line289-half.nc是 sim1 的第 1–288 行原樣,加第 289 行的前半段:進刀到 B 59.97°,槽 A 從赤道到槽頂的前半,最後刀停在坑底(B 0.12°)。它走過 B 0 到 60 的進刀、槽 A 的爬升、B = 0 的停放與坑,是驗建置、驗公式、驗對刀姿態、驗坑不動,並決定顯示值的最小案例。三趟:名目(匯出修剪的理想幾何)、不標記、開,依序在同一個私有實例上跑,21:43:30–22:16:22。 - 整支程式,一次一趟。 sim1 全檔:名目(匯出理想幾何)、對照、開,在 2026-10-07 01:34:18 到 02:36:57 連著跑。每趟開始前重啟實例、從檔案載入專案,所以這三趟的記憶體峰值都是那一趟自己的。
- 理想幾何用名目切出的工件。 名目趟匯出的切削件(整支程式 454,761 個三角形、修剪 449,511 個)設成理想幾何,偵測半徑 1 mm,色階 ±0.007 mm。這樣 Diff 只剩誤差造成的差,不含程式本身的坑與槽。做 Diff 的趟各自記下最後的毛胚,拍圖時放回畫布。
- sim1 照原樣播。 整支程式的趟從 NC 條目播 sim1,一字未改;修剪程式是它的縮短複本。
- 數字都從紀錄算。 代理的分析腳本從執行紀錄算出本頁的數字,每個數都附出處。距離搜尋讀到超過 8 µm 的頂點,另外在共用伺服器上對名目切削件算精確的點到三角形距離。另一支獨立寫的腳本,從逐步序列與頂點距離重算坑深、槽端最深處、分箱中位數、刀尖殘差、B = 0 的步、不標記的配對與第 16 行的弦長,得到相同的值。
- 畫面兩種介面語言各拍一套。 Diff 畫面是把記下的毛胚連同 Diff 放回畫布拍的,不是重播;刀把畫面是放回開那一趟的毛胚,再在上面播修剪程式,讓刀停在坑底。畫布上沒有介面文字,所以中英兩套畫布擷取逐像素相同。
- 人在哪裡介入。 HiNC 的產品擁有者要從先前的案例往上加誤差項的實作案例,產品案與論文案都可以,吃重的執行放到共用的伺服器上,並裁定誤差項可以放在哪裡。誤差、它的大小與正負號、主軸的前置、對刀值、預測與標準,都是代理們自己定的:設計代理推導出來,執行這一案的代理寫進計畫。
第一次播放前提交的標準:
| # | 標準 |
|---|---|
| 1 | 建置:spindle 是 Dynamic Rotation、繫結主軸角色;TipOffB 是標記的 Static Translation (0, 0, −0.010)、在 B→spindleerr;角色檢查為空;案例在誤差項資料夾以外的檔案沒有變 |
| 2 | 每一趟:Finished、程式每一行都執行、沒有碰撞;只多預期的 Diff--TargetNotClosed |
| 3 | 開:每一個切削步 |Cl − Cl名目 − ΔCl| ≤ 1×10⁻⁹ mm(步數相同時以步序號對齊,否則以機械座標對齊);對刀姿態(B = 0)的步,偏差 ≤ 1×10⁻⁹ mm |
| 4 | 不標記(修剪):Cl 與開的那一趟逐步相同 |
| 5 | 對照:以網格距離量,|偏差| ≤ 0.5 µm 的頂點 ≥ 99 %;名目切削的兩個坑深與案例的驗收值(離球心 3.6308 mm)相同 |
| 6 | 槽(開對名目,網格距離):槽底頂點按 Z 分箱,中位數 = −dz·(3.631 − Z)/5.4943 ± 1 µm;槽端 −7.0 ± 1.5 µm |
| 7 | 成本:每趟記下牆鐘與 VmHWM |
難題¶
每一個都依序寫出情況、若沒發現會有的風險、怎麼發現、怎麼解決,以及證明解法成立的證據。
1. 主軸連接沒有繫結角色¶
- 情況。 機台檔的
spindle連接(B→S)是 No Transform,檔案裡也沒有主軸元素,所以主軸角色沒有繫結:照手冊,No Transform 的主軸連接不算主軸(建立虛擬工具機〈讀取工具機檔案時依據的名稱〉)。擁有者的裁定只准把誤差項放在角色連接的正上游。 - 風險。
spindle沒有繫結角色,誤差直接插在它前面就不合裁定。而補上主軸角色時,若旋轉軸線沒穿過刀尖,主軸角就會移動刀尖,切削就不再是基礎案的切削。 - 怎麼發現。 設計代理讀機台檔,以及手冊「主軸依位置認定」的規則。
- 解決。 前置兩步:
spindle改成 Dynamic Rotation,軸 (0, 0, −1)、樞軸 (15, 0, 103)——刀具安裝點的軸線,與 B 軸一樣穿過刀尖——並繫結主軸角色;再插入TipOffB,主軸的旋轉搬到spindleerr→S、角色重新繫結。 - 證據。 搬移前後的值相同,角色檢查前後都是空的。名目切削的兩個坑離球心 3.63084、4.52138 mm,與沒做前置的基礎案結果相同:3.6308 mm 是 sim1 的驗收值;4.5214 mm 是單獨播 sim2 的離球心最近點,sim2 的第 288–289 行就是 sim1 的第 844–845 行。對照與名目逐位相同,只說明兩趟可以重現,因為兩趟都帶著前置。
2. 本批對旋轉軸的預設位置,在這台機上留不下任何東西¶
- 情況。 本批對旋轉軸位置誤差的預設,是軸正上游一條平移。這支程式是機械座標、沒有 RTCP。B 上游的平移會把 B 的樞點連同下面的主軸與刀一起搬,刀尖仍在 B 軸上,任何 B 都只差同一個常數;C 上游同理,因為球吊在 C 下。對刀會把常數吃掉,零件上是 0。
- 風險。 照預設做,六趟跑完零件上一片綠,頁面無話可說。
- 怎麼發現。 設計代理把每個候選都在這顆球上算過:B 上游、C 上游、B 軸傾斜、直線軸垂直度。
- 解決。 選唯一留得下痕跡的「刀尖不在 B 軸上」:一條平移放在 B 下游、主軸上游,錨點叫
spindleerr。B 0 對刀會把這 10 µm 吃進 G54 Z,所以誤差項開的兩趟打入 (−15, 0, +0.010)。 - 證據。 預設位置在零件上是 0,是設計代理的推導,沒有播放驗證。打入的 G54 是對的:G54 生效的 856 個 B = 0 步,與名目差不到 1.5×10⁻¹⁴ mm。槽端的槽底 −6.45 µm、最深處 −7.33 µm,讀得清清楚楚。
3. 0.0625 mm 的網格讀不讀得到真實的 10 µm¶
- 情況。 V 槽本身比一格小,槽端的 7 µm 只有格寬的 11 %。設計留了 ×50 的備案——dz 0.5 mm、G54 Z +0.5、槽端 −0.352 mm、色階 0.35 mm——由修剪趟決定用不用。
- 風險。 用放大值,每張畫面都要說明怎麼換算,整支程式也要多跑一趟;用真實值,誤差可能讀成雜訊。
- 怎麼發現。 設計事先寫好了判準:修剪趟裡,開的那一趟槽端窗比名目深至少 5 µm,而且對照的第 99 百分位不超過 2 µm,就用真實值。
- 解決。 修剪組沒有對照趟,做決定時只量得到判準的前半:槽 A 起點窗的槽底中位數 −6.47 µm,深過 5 µm。整支程式就用真實的 10 µm、色階 ±0.007 mm,×50 那一趟沒跑。
- 證據。 事後補量:整支程式的對照趟,第 99 百分位是 4.2×10⁻¹⁰ mm,判準的後半(決定之後才量到)也成立;31 格槽底中位數與公式差不到 0.29 µm;Diff 畫面裡,槽從綠變到紅。
4. 開的那一趟比名目多一步;B = 0 的零偏差,只在打入的 G54 生效後成立¶
- 情況。 標準 3 寫「步數相同時以步序號對齊,否則以機械座標對齊」。開的那一趟 16,019 步、名目 16,018 步,而且只要 G54 生效,打入的 G54 Z 就讓開的那一趟 MC.Z 高 10 µm。多的一步來自第 9 行與第 565 行的
Z0:G54 Z +0.010 讓它們各動了 10 µm(名目不動);第 562 行的換刀把 Z 升回機械零點,開的那一趟少一步(24 對 25)。 - 風險。 以步序號對齊,從第 9 行起整個錯位;照字面以機械座標對齊,Z 差了打入的 10 µm 的步全都配不上。扣掉這 10 µm 就對得上,只是沒有這樣做。
- 怎麼發現。 把兩趟的步依
LineNo逐行分組時對出來的。 - 解決。 以程式行配對,同一行兩趟步數相同時逐步相減;步數不同的三行(第 9、562、565 行,26 個空中步)留下不配。B = 0 的步分成兩群。打入的 G54 已生效的 856 個,偏差 0。起始姿態,以及 T04 換刀後、Z 字語還沒下令的 909 個(第 2、563、564 行),兩趟的 Z 都停在機械零點,刀尖正好低 10 µm——那是對刀還沒生效的姿態,不是誤差模型的錯。開的那一趟另外多兩個切削步:第 20、576 行 X 進刀的最後一步,刀尖往球心深了約 7 µm,剛好碰到毛胚。
- 證據。 4,961 個切削步與預測差不到 1.8×10⁻¹⁴ mm。設計寫的另一種判法 |Cl − Rz(C)·(MC − 開那一趟的 G54)|,在那 909 步也是 0。修剪趟同樣只有第 2 行的起始步差 10 µm。
5. 不標記那一趟少一步:第 16 行的步數跟著控制器自己算的刀尖弦長¶
- 情況。 標準 4 要不標記那一趟的刀尖與開的那一趟逐步相同。不標記 5,843 步、開 5,844 步,差在第 16 行 C0→C144.756 的空中定位(2,806 對 2,807 步);其餘每一行步數都相同。
- 風險。 照字面判沒過就停在那裡,或把它當成控制器真的補了什麼。
- 怎麼發現。 逐行比步數。
- 解決。 一行分成幾步,取「刀尖弦長/0.01 mm」與「旋轉角/0.5°」的大者,而這裡的刀尖是控制器自己算的。有標記時,控制器在名目鏈上解:刀尖離 C 軸 14.7247 mm,弦長 28.0674 mm,這一行 2,807 步。不標記時,它帶著誤差解:14.7162 mm、28.0514 mm、2,806 步。兩個數都對上。這是讀數字得到的一致性,沒有追碼。每一行切削的步數都相同,機械座標逐位相同。標準 4 照字面記為未通過;切削相同。
- 證據。 3,037 個配對步的機械座標逐位相同,切後毛胚的網格距離逐位元組相同。
6. 槽底、陡壁與最深處各讀到 Δr 的幾倍¶
- 情況。 標準 6 寫「槽底頂點按 Z 分箱,中位數 = Δr ± 1 µm」。槽的剖面有兩面:刀的 30° 錐面切出的緩面,與球面只差 11.4°;刀的平端切出的陡壁,法向就是刀軸,與球面法向差 48.6°。兩面在平端外緣相交。網格距離量的是各面沿自己法向的位移。
- 風險。 陡壁只讀到 Δr 的 0.71 倍;不分面看,會以為誤差模型不準。(把陡壁的頂點併進槽底,標準 6 照樣通過:31 格中位數與公式差不到 0.44 µm,最深四格是 Δr 的 0.94–0.95 倍,四個槽端窗 −6.41 µm。)
- 怎麼發現。 分箱後,槽的頂點分成兩群;把名目的刀整支平移該步的 ΔCl、逐點取面的法向分量,兩群各自對上。
- 解決。 離刀錐面或平端 12 µm 內的頂點分成槽底與陡壁(分類規則是分析自訂的),標準 6 以槽底判。陡壁照它自己法向的預測 −dz·(1 − cosB) 比;最深處(開的最小半徑減名目)直接讀 Δr。
- 證據。 量到減逐點預測,中位數槽底 +0.02 µm、陡壁 +0.01 µm(各窗的陡壁中位數與預測差不到 0.19 µm,每 0.125 mm 一格差不到 0.50 µm)。槽端最深處 −7.33 µm(設計 −7.0)。最深處每格只有一個頂點,散佈 ±0.9 µm;槽底中位數則在 0.3 µm 內。
7. 名目匯出的切削件在槽 B 末端下方缺一塊面;HiNC 自己的 Diff 在開那一趟多了 NaN 葉¶
- 情況。 開那一趟的網格距離從 −253 µm 到 +130 µm,是最大刀尖偏移 10 µm 的二十幾倍。
- 風險。 當成誤差,就會說球面被切壞了;當成量測的假象排除,又會漏掉參考網格本身的缺陷。
- 怎麼發現。 先用一條線篩:刀整支平移最多 10.00 µm 的切削,離名目切削不可能超過 10.5 µm——這對精確的面成立,網格在尖稜上取樣不同時就不成立——超過的有 222 個頂點。搜尋讀到超過 8 µm 的 243 個頂點,再在共用伺服器上對名目切削件算精確的點到三角形距離:243 個全部是真的距離(沒有一個是搜尋的假象),精確值與搜尋值差不到 1.5×10⁻⁸ mm。
-
解決。
- 參考網格缺一塊面。 其中 213 個在槽 B 末端(第 1097–1114 行,B 56.6–59.9°)下方一塊未切的球面上,都在毛胚球面上(半徑 5.5181–5.5192 mm),離名目網格最近的三角形 8.1–253.3 µm。對照趟匯出的網格在那一塊也沒有頂點:開那一趟有 198 個頂點,0.05 mm 內找不到對照的頂點;這一塊以外的未切球面,開的每個頂點 5.2 µm 內都有對照頂點;而對照的每個頂點離名目網格都在 5.0×10⁻¹⁰ mm 內。所以是名目(與對照)匯出的切削件在那裡缺了一塊面,不是切削的差,也不是搜尋的假象。為什麼缺,紀錄說不出來;匯出的 STL 留在伺服器上,沒有直接看過。分析把那一塊排除在分區統計外:超過 20 µm 的頂點外擴 0.05 mm、0.65 × 0.82 × 0.98 mm 的方盒,盒裡半徑在未切範圍的頂點——開的網格 327 個、對照 116 個。
- 槽底的尖稜。 另 30 個在兩條槽底邊的尖稜上(槽 A 10 個、槽 B 20 個,−19.4 到 −8.1 µm),精確距離也確認是真的網格差:0.0625 mm 的網格在兩個切削件上把尖稜削圓的方式不同。其中超過 10.5 µm 的 10 個(都在槽 B)照上面那條線排除在分區統計外;那條線在網格的尖稜上不成立,所以它們不是量錯,只是沒有算進分區統計。
- HiNC 自己的 Diff 在開那一趟回報 72 個 NaN 葉、732 條沒量到的量測線(對照是 1 與 323),紀錄沒有位置。刀把畫面裡槽 B 末端正下方那個灰底、藍紅框的小斑,目視就在這一塊,可能就是它們(未查證)。
-
證據。 243 個頂點的精確距離;對照的網格,沒有任何頂點超過 5.0×10⁻¹⁰ mm。
8. 固定步進的凸包沒有退化¶
- 情況。 固定步進的一步,切除的是刀在前後兩個姿態的凸包;刀繞自己身上一個不動的點轉時,這個凸包會退化——這台機正是如此:每次轉 B,刀都繞自己的刀尖轉。基礎案的刀用 0.1 mm 的平刀尖就是這個緣故:尖頂的錐刀與圓弧刀尖,在基礎案都過不了這些 B 的轉動。開了誤差,刀改繞刀尖外 10 µm 的點轉,輸入變了。
- 風險。 開的那一趟在進刀的 B 0→59.97(第 15 行)或第 571 行的 B 0→59.82 停住或卡住。
- 怎麼發現。 設計把它列為疑慮;修剪趟的進刀第一個會碰到。
- 解決。 照跑,邊跑邊看。
- 證據。 六趟全部
Finished,開與名目的牆鐘相當:整支程式 1,236 對 1,251 s,修剪 601 對 721 s。
結果與效益¶
以下數字都是在 HiNC 3.2.46 開發版(含誤差項)上、0.0625 mm、物理關時量的;這裡說的「量到」,都是從 HiNC 的仿真結果量的。
七條標準裡,五條(1、2、5、6、7)完全通過。 標準 3 在切削步上通過,在對刀姿態照字面未通過,差在打入的 G54 Z 生效前的 909 個空中步(難題 4);標準 4 照字面未通過,差在一行空中定位(難題 5)。
| # | 判定 | 量到 |
|---|---|---|
| 1 | 通過 | spindle 在 spindleerr→S:Dynamic Rotation,軸 (0, 0, −1)、樞軸 (15, 0, 103),角色主軸;搬到 spindleerr 之後值不變。TipOffB 在 B→spindleerr:Static Translation (0, 0, −0.01),標成誤差項。角色檢查在前置前、前置後、加誤差後都是空的,六趟各自讀回的也是空的。載入基礎專案、另存後重載都沒有訊息;加了誤差項之後每趟從檔案重載的訊息,紀錄沒有收;建置與六趟之後,git 查得各趟用的那份工作副本裡,案例在誤差項資料夾以外的檔案都沒有變 |
| 2 | 通過 | 六趟都 Finished。警告以上的訊息:nc 只有 Parsing--Unconsumed,是基礎案本來就有的 G14 與 M25(整支程式 2 則;修剪程式沒有 M25,1 則);shell 只有做 Diff 的四趟各 1 則 Diff--TargetNotClosed,因為理想幾何是匯出的開放網格;step、ncManip 都是空的,所以沒有 Collision--Detected,也沒有行程極限訊息。會動到軸的程式行都有步:整支程式 1,094 行,最後一條有步的是第 1114 行 X15 F2(名目與對照的第 565 行 Z0 不動:T04 換刀已把 Z 升到機械零點,也就是它們的程式 Z0);修剪程式 276 行,到第 289 行 |
| 3 | 切削步通過;對刀姿態(B = 0)照字面:未通過 | 開的那一趟比名目多一步(16,019 對 16,018),而且只要 G54 生效,打入的 G54 Z 就讓 MC.Z 差 10 µm,所以沒有照計畫的方式對齊,改以程式行配對(難題 4):15,993 步配上,留下第 9、562、565 行共 26 個空中步。4,961 個切削步(名目 4,959,開多 2 步)全部配上,殘差不到 1.8×10⁻¹⁴ mm;修剪趟的 1,494 個切削步也不到 1.8×10⁻¹⁴ mm。B = 0 的配對步 1,765 個:G54 Z 已生效的 856 個不到 1.5×10⁻¹⁴ mm;另外 909 個在第 2、563、564 行(起始姿態,以及 T04 換刀後 Z 字語還沒下令,兩趟的 Z 都停在機械零點),正好差 10.000 µm,全在空中。設計寫的另一種判法 |Cl − Rz(C)·(MC − 開那一趟的 G54)| 在這些步也是 0 |
| 4 | 照字面:未通過 | 不標記 5,843 步、開 5,844 步,差在第 16 行 C0→C144.756 的空中定位(2,806 對 2,807 步,兩端點相同;難題 5),所以第 16 行無法逐步比。其餘 3,037 個配對步的 MC.X/Y/Z/B/C 逐位相同,Cl 差不到 1.8×10⁻¹⁵ mm,刀軸差不到 2.3×10⁻¹⁶;切後毛胚的網格距離檔逐位元組相同,Diff--Stats 八個數也相同 |
| 5 | 通過 | 對照的 235,904 個頂點全部在 0.5 µm 內(最大 |d| 5.0×10⁻¹⁰ mm),逐步序列與名目逐位相同。名目切削離球心最近 3.63084 mm(第 289 行的坑;sim1 驗收值 3.6308),第 845 行一帶 4.52138 mm(基礎案 sim2 的 4.5214;sim2 第 288–289 行=sim1 第 844–845 行);開的切削也是 3.63084、4.52138 mm |
| 6 | 通過(以槽底中位數與最深處判) | 槽底 3,243 個頂點按刀尖高度每 0.125 mm 一格(31 格,每格至少 20 點):中位數與公式差 −0.005 到 +0.29 µm。四個槽端(離端點 0.1–0.4 mm)槽底中位數 −6.45 µm(127 點,5–95 % −7.06 到 −5.35 µm;逐點預測 −6.54 µm),最深處 −7.33 µm。刀平端切出的陡壁讀到 Δr 的 0.71 倍(槽端 −4.63 µm,逐點預測 −4.82 µm):它與自己法向的預測相符,若硬套槽底的公式,槽端就不在 ±1.5 µm 內(難題 6) |
| 7 | 通過(已記) | 見下面的〈執行成本〉 |
設計另外寫的幾條核對(不在計畫裡):
- 機台的閉式 Cl = Rz(C)·(MC.X + 15 − dz·sinB, MC.Y, MC.Z − dz·cosB)(開關開時 dz = 10 µm、關時 0),在六趟的每一步殘差都不到 3.1×10⁻¹⁴ mm;刀軸對 Rz(C)·Ry(B)·(0, 0, 1) 每個分量差不到 5.6×10⁻¹⁶。
- 機械座標,開對名目:MC.X、MC.Y、MC.B、MC.C 差 0,MC.Z 差 +0.010 mm;Z 停在機械零點的 1,028 步除外。
- 極點的單節。 奇異單節本身(第 289、844、845 行)讓刀尖最多偏 0.047 µm;連第 288、843 行一起算是 0.084 µm,因為那兩行的 B 到 0.48°,超過設計表寫的 B ≤ 0.27°,所以設計的 0.05 µm 門檻照那些行號讀,照字面不過。
- 顯示值(難題 3 的設計判準):修剪的槽端窗讀到 −6.47 µm,所以整支程式用了真實的 10 µm;對照的第 99 百分位事後量到 4.2×10⁻¹⁰ mm。
- 固定步進的凸包:設計擔心的退化沒有發生(難題 8)。
刀尖:每個切削步都落在公式上¶
這裡的刀尖指每一步的 Cl:平端中心在程式座標(球心為原點)的位置。開的那一趟比名目多一步,所以兩趟以程式行配對,同一行兩趟步數相同時逐步相減。切削步是兩趟任一趟碰到料(IsTouched 為 1)的配對步,共 4,961 步。
| 比較 | 範圍 | 結果 |
|---|---|---|
| 開減名目,再減 ΔCl | 4,961 個切削步 | 最多 1.8×10⁻¹⁴ mm |
| 開減名目,偏移的長度 | 切削步 | 最大 9.996 µm(第 20 行 X 進刀末段,B 59.974°;= 2dz·sin(B/2)) |
| 開減名目,B = 0 且打入的 G54 已生效 | 856 步 | 最多 1.5×10⁻¹⁴ mm |
| 開減名目,B = 0、Z 停在機械零點 | 909 個空中步(第 2、563、564 行) | 正好 10.000 µm(難題 4) |
| 機械座標 X、Y、B、C,開減名目 | 15,993 個配對步 | 0 |
| 機械座標 Z,開減名目 | 配對步 | +0.010 mm,打入的 G54 Z;Z 停在機械零點的 1,028 步為 0 |
| 槽深方向 Δr,開減名目,對閉式 −dz·(3.631 − Z)/5.4943 | 五軸單節的 4,250 步 | 差不到 0.0003 µm(連進退刀的步,不到 0.045 µm:那裡刀尖不在球面上) |
| 沿槽(朝槽頂)分量 | 槽的切削步 | 0.021–7.071 µm,槽端最大;設計 7.1 |
| 離開槽平面的分量 | 槽 A/槽 B | 0.000/0.007 µm;設計 0/0.007 |
| 對照減名目 | 每一步 | 0:刀尖、機械座標、IsTouched 逐位相同 |
| 修剪,開減名目,再減 ΔCl | 1,494 個切削步 | 最多 1.8×10⁻¹⁴ mm;最大 |ΔCl| 一樣是 9.996 µm |
誤差項開、有標記:每個切削步的刀尖偏移(開減名目,以程式行配對)。(a) 拆成槽深方向(徑向)、沿槽朝槽頂、離開槽平面三個分量,對 B 軸角度:點是量到的,黑線是公式 dz·(−sinB·cosC, −sinB·sinC, 1 − cosB) 的同一分量,灰虛線是 |ΔCl| = 2dz·sin(B/2)。(b) 槽深方向的分量對刀尖高度 Z,落在直線 −dz·(3.631 − Z)/5.4943 上。4,961 個切削步,|量到 − 預測| ≤ 1.8×10⁻¹⁴ mm。縱軸對稱,±10 與 ±8 µm。HiNC 3.2.46 開發版(含誤差項)。
- 設計的點檢值全中。 第 21 行末步 ΔCl = (+7.0709, −4.9669, +4.9669) µm、第 557 行 (−7.0710, −4.9824, +4.9824)、第 1113 行 (+8.6482, +0.1215, +4.9806),與設計寫的到小數第四位相同。
- 開的那一趟多兩個切削步:第 20、576 行 X 進刀末段各一步(B≈60°)。那裡刀尖沿球的徑向往球心深了約 7 µm(Z 反而高約 5 µm),只有開誤差時碰到毛胚。名目碰到、開沒碰到的步:0。
- 修剪趟與整支程式的趟,在共同的程式行上逐位相同。 第 1–288 行裡,開的那一趟有步的 277 行(名目 276 行)步數相同,刀尖與機械座標逐位相同(開對開、名目對名目)。所以逐步公式用修剪複本驗就夠了,零件與畫面才需要整支程式。
點檢:各行末步的 ΔCl,µm(設計的三個點檢值在第 21、557、1113 行)
| 行 | B | C | Z(mm) | ΔCl(µm) | |ΔCl| |
|---|---|---|---|---|---|
| 20 | 59.974° | 144.756° | −0.2433 | (+7.0711, −4.9961, +4.9961) | 9.996 |
| 21 | 59.781° | 144.914° | −0.2206 | (+7.0709, −4.9669, +4.9669) | 9.967 |
| 116 | 39.979° | 158.669° | 1.8186 | (+5.9849, −2.3372, +2.3372) | 6.837 |
| 204 | 19.953° | 169.869° | 3.1655 | (+3.3593, −0.6003, +0.6003) | 3.465 |
| 374 | 20.076° | 10.196° | 3.1598 | (−3.3785, −0.6076, +0.6076) | 3.486 |
| 462 | 40.095° | 21.402° | 1.8085 | (−5.9965, −2.3502, +2.3502) | 6.856 |
| 557 | 59.883° | 35.169° | −0.2326 | (−7.0710, −4.9824, +4.9824) | 9.982 |
| 577 | 59.625° | −69.313° | −0.2064 | (−3.0477, +8.0711, +4.9434) | 9.943 |
| 671 | 40.038° | −55.672° | 1.8094 | (−3.6277, +5.3125, +2.3438) | 6.847 |
| 759 | 20.028° | −44.377° | 3.1580 | (−2.4478, +2.3952, +0.6047) | 3.478 |
| 929 | 19.982° | 155.643° | 3.1601 | (+3.1131, −1.4093, +0.6020) | 3.470 |
| 1018 | 40.099° | 166.999° | 1.8041 | (+6.2760, −1.4490, +2.3506) | 6.857 |
| 1113 | 59.872° | 180.805° | −0.2353 | (+8.6482, +0.1215, +4.9806) | 9.981 |
零件:槽從頂端的 0 往赤道越深,坑與其他地方不動¶
量法:開那一趟匯出的切削件共 236,139 個頂點,逐點量到名目切削件的帶號距離 d(正=留料,Diff 藍;負=過切,Diff 紅)。頂點依幾何分區:
- 槽:半徑比毛胚球面低 2.8 µm 以上、離槽的切削刀尖 0.45 mm 內。再分成槽底——刀的 30° 錐面切出的緩面,與球面只差 11.4°——與陡壁——刀的平端切出的面,法向就是刀軸,與球面法向差 48.6°。兩面在平端外緣相交,那裡是槽的最深處。
- 坑:極點單節 3 mm 內的切削面。
- 槽邊:槽兩側 0.45 mm 內未切的面。
- 未切的球面,以及柄與腳。
名目網格缺面的那一塊球面(327 個頂點),與槽 B 尖稜上的 10 個頂點不算(難題 7)。
| 部位 | 頂點 | 中位數 | 5–95 % | 1–99 % | 在 0.5 µm 內 |
|---|---|---|---|---|---|
| 槽底 | 3,243 | −1.93 µm | −6.24…−0.03 | −6.77…+0.04 | (偏差是預期的) |
| 陡壁 | 899 | −1.51 µm | −4.58…−0.02 | −5.54…0.00 | (同上) |
| 坑 | 13,784 | 0.00 µm | −0.06…+0.04 | −0.18…+0.12 | 99.91 % |
| 槽邊 | 7,707 | 0.00 µm | 0…0 | −0.53…0.00 | 98.94 % |
| 未切的球面 | 123,169 | 0.00 µm | 0…0 | 0…0 | 99.999 % |
| 柄與腳 | 86,229 | 0 | 0 | 0 | 100 % |
逐點的預測。 網格距離量的是各面沿自己法向的位移,不是槽深方向的 Δr。把名目的刀整支平移該步量到的 ΔCl,再取面的法向分量,就是每個頂點的預測。槽底的預測是 Δr 的 0.97 倍,因為那個面與球面只差 11.4°;陡壁是 0.71 倍,因為陡壁的偏差就是 ΔCl 在刀軸上的分量 −dz·(1 − cosB),B 60° 時 −5.0 µm。量到減這個預測:槽底 3,243 點中位數 +0.02 µm、5–95 % −0.25 到 +0.45 µm、93.6 % 在 0.5 µm 內;陡壁 899 點中位數 +0.01 µm、−0.33 到 +1.05 µm、85.1 % 在 0.5 µm 內。只有最深處(平端外緣)直接讀到 Δr。
| 窗(離槽端 0.1–0.4 mm,或 B 的 ±2.5°) | 步 | B | 刀尖 Z(mm) | 設計 Δr(窗裡各步,µm) | 槽底中位數(點數) | 逐點預測 | 陡壁中位數(點數) | 逐點預測 | 最深處 |
|---|---|---|---|---|---|---|---|---|---|
| 四個槽端 | 149 | 57.5–59.8° | −0.22…+0.04 | −7.01…−6.54 | −6.45(127) | −6.54 | −4.63(28) | −4.82 | −7.33 |
| B≈50° | 380 | 47.5–52.5° | 0.60–1.11 | −5.53…−4.58 | −4.88(255) | −4.96 | −3.53(84) | −3.55 | −5.15 |
| B≈40° | 360 | 37.5–42.5° | 1.59–2.03 | −3.71…−2.92 | −3.20(284) | −3.20 | −2.27(82) | −2.34 | −3.17 |
| B≈30° | 351 | 27.5–32.5° | 2.41–2.75 | −2.22…−1.60 | −1.79(277) | −1.84 | −1.26(77) | −1.37 | −1.47 |
| B≈20° | 344 | 17.5–22.5° | 3.04–3.27 | −1.08…−0.65 | −0.82(285) | −0.83 | −0.57(70) | −0.60 | −0.73 |
| B≈10° | 340 | 7.5–12.5° | 3.44–3.56 | −0.34…−0.12 | −0.21(279) | −0.21 | −0.13(58) | −0.16 | −0.31 |
| 槽頂(B < 5°) | 301 | 0.12–4.99° | 3.60–3.63 | −0.06…0 | −0.03(152) | −0.03 | −0.01(55) | −0.01 | 0.00 |
計畫的預測(B≈50° −5.05、40° −3.31、30° −1.89、20° −0.86、10° −0.22 µm,槽端 −7.0 µm)是窗中心那一點的 Δr;窗裡各步的 Δr 範圍在表的第五欄。
槽沿高度的偏差(開的切削件對名目的網格距離,每 0.125 mm 刀尖高度一格):藍點是槽底中位數、藍帶 5–95 %,橘點是陡壁中位數,綠框是最深處(開的最小半徑減名目的;每格只取一個頂點,隨網格對平端尖稜的取樣散佈到 ±0.9 µm),細線是把刀整支平移 ΔCl 後逐點算的預測,黑線是設計預測 Δr。槽底是 Δr 的 0.97 倍、陡壁 0.71 倍,都與逐點預測一致;槽端槽底 −6.45 µm。縱軸對稱 ±8 µm,負=過切。HiNC 3.2.46 開發版(含誤差項)。
- 31 格的槽底中位數與公式 −dz·(3.631 − Z)/5.4943 差 −0.005 到 +0.29 µm(中位數 +0.15 µm);最深處差 −0.88 到 +0.86 µm(中位數 +0.06 µm)。每格的最深處只有一個頂點,落在平端外緣的尖稜上,0.0625 mm 的網格在兩個切削件上取到稜的不同地方,所以散佈大;槽底每格有幾十到幾百個頂點,中位數穩。
- 四個槽端各自看:槽底在槽 A 起點 −6.47 µm(27 點)、槽 A 終點 −6.29(32)、槽 B 起點 −6.56(31)、槽 B 終點 −6.44 µm(37);最深處 −6.69、−6.71、−6.73、−8.11 µm。
- 每條槽起訖點的 0.1 mm 內,沿槽的 7 µm 位移留下一小段正負成對的偏差:槽 A 起點 −7.06 到 +3.23 µm、終點 −7.20 到 +2.94,槽 B 起點 −6.80 到 +2.74、終點 −7.44 到 +2.31 µm(網格搜尋值,在 8 µm 以內,沒有用精確距離核對)。那是槽端移了位,不是槽深誤差;各窗都避開起訖點 0.1 mm。
- 槽變寬。 設計只寫了「V 刀半角 30°,槽也會跟著變寬」,沒給數字。槽底以 11.37°、陡壁以 48.63° 爬上毛胚面,所以槽深多 |Δr| 時,槽口寬 5.86 倍 |Δr|,槽端約 41 µm。在網格上粗量(槽口由 0.0625 mm 網格取樣):槽端 +26.9 µm、B≈50° +28.9、40° +19.6、30° +14.2、20° +1.6、10° +1.3、槽頂 0.0 µm,推導值依序是 39.6、29.6、19.4、11.1、5.0、1.3、0.1 µm。各段與推導差到 12.7 µm,只能說趨勢。
- 兩個坑:開的切削離球心最近 3.63084 mm(第 289 行,頂點 (0, 0, 3.63084))與 4.52138 mm(第 844–845 行,頂點 (1.5625, 2.1875, 3.63542)),與名目相同;坑區 13,784 個頂點 99.91 % 在 0.5 µm 內。程式造成的錯(極點的坑,B≈0)與機台造成的錯(隨 B 長大的槽深),留下不同的指紋。
- 整個切削件。 排除名目網格缺面的那一塊(327 個頂點)後,其餘 235,812 個頂點 98.5 % 在 0.5 µm 內。最低 −19.42 µm,在槽 B 底邊的尖稜上,精確距離確認是真的網格差:兩個切削件在尖稜上取樣不同(兩條槽的尖稜上超過 8 µm 的共 30 個頂點)。最高 +4.41 µm,在槽 B 於 B≈31° 處的槽邊(搜尋值,沒有用精確距離核對);槽端的殘料最多 +3.23 µm。偏離 0 的只有兩條槽。
各部位的偏差:槽的各段(槽底頂點)、兩個坑、槽邊未切的面、未切的球面、柄與腳;粗條 5–95 %、細線 1–99 %、圓點中位數,黑菱形是設計預測。槽端 −6.45 µm(設計 −7.0),往槽頂遞減到 0;坑、球面、柄、腳在 0。名目匯出的切削件缺面的那一塊球面不算(難題 7)。橫軸對稱 ±10 µm。HiNC 3.2.46 開發版(含誤差項)。
控制器知道誤差(不標記):與不知道的逐位相同¶
這一趟清掉 TipOffB 的標記,開關仍開著,並打入與開那一趟相同的 G54 Z +0.010;只在修剪複本上跑。程式是機械座標(X Y Z B C,沒有 G43.4、G68,也不是 CL),控制器把 MC = 程式 + G54 直接送出去,不經運動鏈(標記會改變什麼):知道誤差,也無處可補。
- 機械座標:3,037 個配對步的 X、Y、Z、B、C 與有標記那一趟逐位相同。
- 刀尖與刀軸:差不到 1.8×10⁻¹⁵ mm 與 2.3×10⁻¹⁶。
- 切削:網格距離檔逐位元組相同,
Diff--Stats八個數也相同。 - 唯一的差別:第 16 行(C0→C144.756 的空中定位,刀停在離 C 軸 14.7 mm 處)有標記 2,807 步、不標記 2,806 步,兩端點相同。一行的步數取「刀尖弦長/0.01 mm」與「旋轉角/0.5°」的大者,而刀尖是控制器自己算的:有標記時用名目鏈(刀尖離 C 軸 14.7247 mm,弦長 28.0674 mm,2,806.74 → 2,807),不標記時含誤差(14.7162 mm,28.0514 mm,2,805.14 → 2,806)。這是讀數字得到的一致性,沒有追碼(難題 5)。
- 解藥在後處理。 要讓刀尖回到程式上,每個單節得寫成 X′ = X + dz·sinB、Z′ = Z − dz·(1 − cosB),搭配對刀的 G54;B 60° 時是 +8.66 與 −5.0 µm。這是由公式推導的,沒有播放。或者在機台上把刀尖真的調回 B 軸上。只有 RTCP 程式,才輪得到校正過的控制器。
控制器知道誤差(不標記)時多走了什麼:修剪程式裡不標記減有標記的機械座標,3,037 個配對步的 X、Y、Z、B、C 全部是 0(程式是機械座標、沒有 RTCP,控制器不經運動鏈);虛線是要讓刀尖回到程式上,後處理每個單節得補的 X′ − X = +dz·sinB 與 Z′ − Z = −dz·(1 − cosB)(由公式推導,未播放)。HiNC 3.2.46 開發版(含誤差項)。
對照趟與比對畫面¶
對照趟(開關關、做 Diff)其實就是名目趟再播一次:刀尖、機械座標、IsTouched 在全部 16,018 步逐位相同(解壓後的序列 MD5 相同);它的網格 235,904 個頂點全部在 5.0×10⁻¹⁰ mm 內,就是兩份幾乎相同的網格互量的浮點雜訊。主軸角色的前置(No Transform → Dynamic Rotation、繫結主軸角色)沒有改變切削;證據不是這一趟——名目與對照都帶前置,兩趟相同只說明播放可以重現——而是坑離球心的距離與沒做前置的基礎案結果相同(sim1 3.6308、sim2 4.5214 mm)。
下面兩張是同一個鏡頭下的原地交替:誤差項開(有標記)與誤差項關(對照)。畫面是把記下的毛胚連同 Diff 放回畫布拍的,不是重播;鏡頭是 HiNC 的預設等角視與俯視,再用滾輪縮放。從擷取的色相讀回來的數字:
- 等角視:110,458 個 Diff 像素裡,766 個低於 −1 µm、77 個低於 −5 µm,最低 −7.0 µm。
- 俯視:215,759 個 Diff 像素裡,2,019 個低於 −1 µm,最低 −7.0 µm。
- 藍的一側只有零星的像素,而且每一個都緊貼(2 個像素內)讀到 −1 µm 以下的過切像素:等角視 7 個讀到 +1 µm 以上,最高 +4.8 µm;俯視 14 個,最高是一個讀到 +7.0 µm 的暗像素(RGB 19, 19, 130,在左側輪廓邊),其次 +3.9 µm。單一像素讀不成殘料:網格上槽端的殘料最高 +3.23 µm。
- 對照的兩個視角沒有任何像素超出 ±0.2 µm。
- 前視圖只看得到柄、腳與球的下半,畫面裡沒有槽(沒有像素超出 ±0.1 µm),所以沒有做前視圖的比較。

執行頁的幾何差異(等角視圖),球、柄與腳,誤差項開(有標記)與關(對照)原地交替:開的時候,槽 A 從槽頂的綠漸變到赤道附近槽端的黃與紅,槽端多切 6–7 µm;槽 B 只在左側輪廓邊露出一點。坑、未切的球面、柄、腳都是綠的;關的時候全綠。每一幀與原始擷取在工件區與色條逐像素相同。Diff 色階 ±0.007 mm(紅=過切、藍=留料、綠=0,正負同權重);0.0625 mm;HiNC 3.2.46 開發版(含誤差項)。

同樣的交替,俯視圖(球與腳;柄在球的正下方)。兩條槽各自從槽頂的綠,往兩個赤道附近的槽端變黃、變紅:兩把刀共用同一個機台誤差。極點的兩個坑、未切的球面與腳都是綠的;誤差項關時全綠。色階、格距與版本同上。

頁首那個畫面拉遠:B 擺頭、C 台的通用五軸機台模型(案例自建,沒有廠牌幾何),刀與刀把在 Ø11 mm 的球上方。HiNC 3.2.46 開發版(含誤差項)。
做 Diff 的四趟的 Diff--Stats
| 趟 | 回報的葉 | 比較前的表面葉 | 隨需展開 | 新節點 | NaN 葉 | 量到的量測線 | 沒量到的量測線 | 目標三角形 |
|---|---|---|---|---|---|---|---|---|
| f-on | 246,465 | 229,295 | 11,123 | 28,293 | 72 | 972,738 | 732 | 454,761 |
| f-control | 246,196 | 229,026 | 11,126 | 28,296 | 1 | 972,095 | 323 | 454,761 |
| t-on | 243,594 | 226,420 | 11,431 | 28,605 | 1 | 961,801 | 304 | 449,511 |
| t-unmarked | 243,594 | 226,420 | 11,431 | 28,605 | 1 | 961,801 | 304 | 449,511 |
- 名目趟不做 Diff。修剪趟的目標是修剪名目趟切出的工件,所以目標三角形數不同。
- 開那一趟比對照多 71 個 NaN 葉、409 條沒量到的量測線,紀錄裡沒有位置(難題 7)。刀把畫面裡槽 B 末端下方的斑,在名目網格缺面的那一塊,可能就是這些 NaN 葉(未查證)。
執行成本¶
以下都在共用的 32 執行緒伺服器上,用 HiNC 3.2.46 開發版(含誤差項)的私有實例跑。VmHWM 一律寫 GB(bytes ÷ 10⁹),括號內是 GiB(bytes ÷ 2³⁰)。
| 播放 | 格距 | 步數 | 牆鐘 | 每秒步數 | 記憶體峰值(VmHWM) |
|---|---|---|---|---|---|
| t-nominal | 0.0625 mm | 5,843 | 720.9 s | 8.1 | 2.70 GB(2.51 GiB) |
| t-unmarked | 0.0625 mm | 5,843 | 640.7 s | 9.1 | 2.98 GB(2.77 GiB) |
| t-on | 0.0625 mm | 5,844 | 600.6 s | 9.7 | 2.77 GB(2.58 GiB) |
| f-nominal | 0.0625 mm | 16,018 | 1,251.3 s | 12.8 | 3.45 GB(3.21 GiB) |
| f-control | 0.0625 mm | 16,018 | 1,261.4 s | 12.7 | 3.67 GB(3.42 GiB) |
| f-on | 0.0625 mm | 16,019 | 1,236.4 s | 13.0 | 3.55 GB(3.30 GiB) |
- 整支程式三趟 3,749.1 s(62.5 分鐘),每趟 20.6–21.0 分鐘、VmHWM 最多 3.67 GB;計畫估每趟約 20 分鐘、最多 5 GB。每趟開始前重啟實例,所以 VmHWM 是那一趟自己的峰值(載入、播放、Diff、匯出都算在內)。
- 修剪複本三趟 1,962.2 s(32.7 分鐘),每趟 10.0–12.0 分鐘,高於計畫估的 6–8 分鐘。修剪程式每秒 8–10 步、整支程式約 13 步,差別的原因沒有量:紀錄只有整趟的牆鐘。修剪三趟依序在同一個私有實例上跑,紀錄沒有寫趟與趟之間有沒有重啟,所以它們的峰值只當各自的上限,不互相比較。
- 合計:建置加六趟播放約 95 分鐘伺服器時間(播放 5,711.3 s)。時間線:建置 2026-10-06 21:42:51–21:42:58;修剪 21:43:30–22:16:22;整支程式 2026-10-07 01:34:18–02:36:57。
- 牆鐘的量法:從開始播放,算到輪詢讀到
Finished的那一次;輪詢每 5 s 一次,所以牆鐘可能最多晚 5 s。當時伺服器上有沒有別的負載,紀錄沒有寫。 - 分析:分析腳本完整重跑一次約 5.5 分鐘。
它說明了什麼¶
給加工工程師。
- B 擺頭的五軸程式若寫成機械座標、沒有 RTCP,它的正確性就押在「刀尖剛好在 B 軸上」這一個假設。刀尖低 10 µm,每條槽就從頂端往赤道越切越深,槽端多 7 µm;在這道程式上,是名目切深 25 µm 的 28 %。
- 這種誤差在 B 0 對刀時看不出來:機械座標的 X、Y、B、C 一個字都沒變,Z 只差對刀打入的 10 µm。它留下的指紋是「槽深只看高度」:在零件上量槽深對高度,就能驗證並讀回 dz。
- 校正過的控制器幫不上忙:程式不經運動鏈,標不標記,機械座標都逐位相同,切後毛胚的網格距離也逐位元組相同。補償得寫進後處理(X′ = X + dz·sinB、Z′ = Z − dz·(1 − cosB)),或把刀尖真的調回 B 軸上;只有 RTCP 程式,才輪得到校正過的運動學。
- 程式本身的錯(極點的坑,B≈0)與機台的錯(隨 B 長大的槽深),在同一顆球上留下不同的指紋,仿真把兩者分開。
- 在 HiNC 裡,可以把一台機台的常數誤差放進它的模型,上機前就看到它在自己零件上的樣子與大小。
給老師與學生。
- 刀側的偏移怎麼變成刀尖偏移 e = dz·(a0 − a(B)),為什麼只看 B;為什麼放在 B 上游的平移,在這台機上是 0。
- 刀軸對球面恆成 48.6°,所以槽深誤差只看高度:Δr = −dz·(3.631 − Z)/5.4943。
- 網格距離量的是各面沿自己法向的位移:槽底讀到 Δr 的 0.97 倍、陡壁 0.71 倍,只有最深處才是 Δr。
- 標記與不標記,分別對應沒校正與校正過的運動學;在機械座標的程式上兩者相同,差別只在控制器自己算的刀尖弦長所決定的步數。
給評估這種做法值不值得的人。
- 成本。 建置加六趟播放約 95 分鐘伺服器時間,每趟記憶體峰值最多 3.67 GB。
- 預測在第一次播放前寫好:刀尖公式在每個切削步都對到 1.8×10⁻¹⁴ mm 以內;槽底中位數與計畫的 Δr 公式差不到 0.29 µm;坑在基礎案找到的位置。播放後加的逐點模型(把刀整支平移量到的 ΔCl),與槽底中位數差不到 0.1 µm。
- 沒中的地方都照量到的寫:改用程式行配對;B = 0 的零偏差只在對刀生效後成立(標準 3 的後半照字面未通過);不標記那一趟在第 16 行少一步(標準 4 照字面未通過);陡壁不能套槽底的公式;名目匯出的切削件缺一塊面。
誠實的限制¶
- 只放了一個誤差,而且是常數。 這裡只有刀尖沿刀軸方向低 dz。真實的 B 頭同時還有別的誤差:刀尖在 B = 0 時沿 X 偏離 B 軸的 dx——它會把槽端往外移 0.36·dx、離開槽平面 0.81·dx,槽不再是平面圓,槽深也不再只看高度——B 軸的傾斜、C 的徑向跳動。誤差項只能放常數;隨位置變的誤差、背隙、伺服不匹配與熱變形都放不進來(機台幾何誤差)。主軸熱伸長會讓 dz 隨時間變,正是這一案放不進來的那一種。
- 大小與正負號是選的。 10 µm 是典型值,不是量測值。配套論文不是開放取用,沒有讀,所以不知道作者的對刀精度(設計估超精密機以顯微鏡對刀約 1–5 µm)。可以給一個係數:刀尖每低 1 µm,槽端多深 0.70 µm。若刀尖反而高於 B 軸中心(dz 反號),偏差全部反號:槽往赤道越來越淺,槽端留料 7 µm。
- 對刀值是打入的,對刀姿態是假設的。 HiNC 的 P0 在名目鏈上量,不會像真機對刀那樣把誤差吃進去;誤差項開的兩趟用的 G54 Z +0.010 是推算的,假設在 B = 0 對刀。對刀生效之前(起始姿態,以及換刀後 Z 字語還沒下令的那段),刀尖低 10 µm,那在真機上也一樣。
- T01 與 T04 的刀長相同。 真機上第二把刀會有自己的刀長誤差;機台的誤差項只代表兩把共有的那一份。
- 只看幾何。 物理關:沒有切削力、撓曲與熱。
- 0.0625 mm 網格的讀法。 槽本身比一格小(刀尖處深 25 µm,最深那條線 62.5 µm),所以槽口變寬只有推導值加粗量(各段與推導差到 13 µm);最深處每格一個頂點,散佈 ±0.9 µm;兩個切削件把槽的尖稜削圓的方式不同(兩條槽底邊 30 個頂點 −19.4 到 −8.1 µm,精確距離確認是真的網格差)。這一案用固定步進(0.01 mm/0.5°):每一步切除刀在前後兩個姿態之間的凸包(難題 8),所以沒有每轉進給那種步與步之間不掃掠留下的脊;兩趟的切削行,步數也逐行相同。
- 名目匯出的切削件在槽 B 末端下方缺一塊面(難題 7):那一塊的 327 個頂點,連同槽 B 尖稜上 10 個頂點,排除在分區統計外。
- 沒有不標記的整支程式,也沒有不標記的畫面。 不標記只在修剪複本上跑,切後毛胚的網格距離檔與有標記逐位元組相同,拍出來也是兩幀一樣的圖;所以沒有「控制器知道/不知道」的交替圖,比較圖只有開/關。
- 沒有播作者的修正版。 exp1、exp2 的定律與 sim1 相同,但要 0.03125 mm、每趟約 45 分鐘:它們在極點插點的單節,刀尖不動、C 慢轉;開了誤差,刀尖也只在半徑 dz·0.0017 的小圓上走,對固定步進的凸包仍然近乎退化(難題 8)。生產程式(369 道次)也沒播。
- 牆鐘是輪詢的,每 5 s 一次;當時伺服器上有沒有別的負載,紀錄沒有寫。
讀者可以帶到自己案例的¶
- 先問程式自己押在哪一個假設上。 機械座標的五軸程式,是照某一個刀長與某一個樞點算出來的。在零件上看得出來的誤差,是打破這個假設的那一個——這裡是刀尖不在 B 軸上——不一定是旋轉軸常見的那一種。
- 刀側的誤差,放在手冊說的位置。 B 頭上,主軸的誤差項放在 B 與主軸連接之間(誤差項可以放在哪裡)。先繫結主軸角色,旋轉軸線穿過刀尖,主軸角才不會動到切削(建立虛擬工具機〈角色〉)。
- 打入對刀會量到的工作偏移,而且照對刀的姿態算。 P0 在名目鏈上量(有誤差項的機台上的工作偏移);對刀生效之前的步,不是模型的錯。
- 兩趟步數不同時,以程式行配對。 手冊提醒,誤差項開與關的兩趟步數可能不同;打入的工作偏移又讓機械座標也不同時,以程式行配對仍然可行。
- 每個面沿它自己的法向讀。 把刀整支平移量到的 ΔCl 來預測切出的面:這裡槽底讀到 Δr 的 0.97 倍、陡壁 0.71 倍,只有最深處才是 Δr。
- 網格距離的極值要用精確距離核,參考網格本身也要核。 這裡最大的讀數是真的距離——量到的是名目匯出的切削件缺掉的一塊面,不是切削。
- 機械座標的程式上,校正過的控制器什麼都不改。 鏈上每一個誤差都會切進零件,標不標記都一樣(標記會改變什麼);要補,就寫進後處理,或重新對刀。
- 用指紋分辨程式的錯與機台的錯:B≈0 的坑,對上隨 B 長大、只看高度的槽深誤差。
- 先用程式的縮短複本驗建置與公式。 修剪複本的趟,在共同的程式行上與整支程式的刀尖、機械座標都相同。
- 備案的觸發條件,在第一次播放前寫成數字,並寫明做決定時量得到的是哪一半。
來源與授權¶
NC 程式出自 Mendeley Data 上的一個資料集:
- 資料集:Liqiang Wu, Hanzhong Liu, Zhipeng Cui, Wenjun Zong, NC codes for a research in fabrication of randomly distributed V grooves on a spherical surface,Mendeley Data,version 1,2023-09-04 發布,https://doi.org/10.17632/bcskc575nm.1;登陸頁 https://data.mendeley.com/datasets/bcskc575nm/1。連結失效時的搜尋詞:
NC codes for a research in fabrication of randomly distributed V grooves on a spherical surface、bcskc575nm、simulation_singular1_without_singularity_algorithm。 - 檔案:五支 G-code——
simulation_singular1_without_singularity_algorithm.txt(本頁播的 sim1)、simulation_singular2_without_singularity_algorithm.txt、experiment_singular1_with_singularity_algorithm.txt、experiment_singular2_with_singularity_algorithm.txt,以及生產程式random_micro_V_structures_machining.txt——加上資料紀錄的說明。沒有 README、沒有授權檔,也沒有模型、機台、刀具或量測。 - 配套論文(只引用,沒有讀):L. Wu, H. Liu, Z. Cui, W. Zong, "Fabrication of randomly distributed V grooves on the great circles of a spherical surface using ultra-precision five-axis milling", Precision Engineering 85 (2024) 48–64,https://doi.org/10.1016/j.precisioneng.2023.09.005。資料紀錄沒有連到它,是靠題名與四位作者(也就是資料集的建立者)對上的。它不是開放取用,沒有讀;本頁沒有用到它的任何內容。
授權:創用 CC 姓名標示 4.0 國際(CC BY 4.0),照資料紀錄的授權欄位(2026-09-29 讀取):
You can share, copy and modify this dataset so long as you give appropriate credit, provide a link to the CC BY license, and indicate if changes were made, but you may not do so in a way that suggests the rights holder has endorsed you or your use of the dataset. Note that further permission may be required for any content within the dataset that is identified as belonging to a third party.
資料集裡沒有任何內容標明屬於第三方。
姓名標示,照基礎案的來源紀錄:
NC programs: Liqiang Wu, Hanzhong Liu, Zhipeng Cui, Wenjun Zong, "NC codes for a research in fabrication of randomly distributed V grooves on a spherical surface", Mendeley Data, V1 (2023), https://doi.org/10.17632/bcskc575nm.1. Licensed CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), provided as-is without warranties (CC BY 4.0 Section 5). Related article: L. Wu, H. Liu, Z. Cui, W. Zong, Precision Engineering 85 (2024) 48-64, https://doi.org/10.1016/j.precisioneng.2023.09.005. The authors do not endorse this case or HiNC. Changes: none to the files; the programs are played as published on a machine, stock, cutter and set-up made for this case.
以及這一頁另外加的:
The tool-and-holder pictures (and the shorter check runs) play a shortened copy of simulation_singular1: its lines 1–288 unchanged and line 289 stopped at its midpoint.
資料集依現狀提供,不附任何保證(CC BY 4.0 第 5 條)。
用了什麼、改了什麼。
- sim1 照原樣逐位元組播放。修剪驗證趟與刀把畫面播的是它的縮短複本
pose-sim1-line289-half.nc:第 1–288 行原樣,第 289 行停在中點。另外四支檔案,這一頁沒有播。 - 機台(B 擺頭穿過刀尖、C 台穿過球心的通用五軸機,沒有廠牌幾何)、毛胚(R 5.5193 的球,帶柄與腳,放在平板上)、刀具(Ø0.1 平刀尖的 60° V 刀)與刀把(Ø3 熱縮、懸伸 10 mm),都是基礎案的選擇,不是作者的機台或刀具。
- 這一案另外加的:機台上一條標記的誤差項連接
TipOffB。它的種類、大小、正負號與對刀的工作偏移,都是代理選的;這台通用機沒有量測,10 µm 是典型值。
畫面與圖表。 本頁沒有重製資料集或論文的任何圖。畫面都是 HiNC 的擷取,圖表畫的是 HiNC 的逐步結果與切削網格。一切都是仿真,沒有實際切削。作者沒有參與這一案,也沒有為它背書。本站不提供下載;請到 Mendeley Data 取得檔案。
另見¶
- 建立虛擬工具機:誤差項——誤差項可以放在哪裡(包括 B 頭上主軸殼體的誤差)、標記會改變什麼、啟用誤差項開關,以及有誤差項的機台上的工作偏移
- 建立虛擬工具機:角色——主軸角色:它需要一條繞刀具安裝點軸線轉的 Dynamic Rotation
- 運動拓樸:誤差項連接 (Error-Term Branches)(英文,未鏡像)——控制器求解的名目鏈,以及它看得到哪些誤差
- 模型之外的加工問題:機台幾何誤差——模型放不進的機台誤差
- 工作流程:幾何驗證——幾何差異比對、偵測半徑與色階
- 程式原點對齊——P0,以及手動打入量到的工作偏移
- 17 吋鍛造鋁圈:C 台中心偏 20 µm——RTCP(
G43.4)下的五軸案例,知道誤差的控制器切回名目輪圈 - NIST 圓錐台:C 軸中心偏 10 µm——另一個 RTCP 下的五軸案例,也打入了對刀的工作偏移
- 實作案例——其他案例,以及案例頁怎麼讀