Jetson AGX Thor 機殼的底殼,X–Y 垂直度差 0.003°:翻面後兩次裝夾切出的面在長牆兩端錯開 8.85 µm;坐進同一台機上修出的軟爪,錯位改沿 X、長牆的接縫消失¶
Jetson AGX Thor 機殼案例替 Antmicro 以開放硬體公開的鋁機殼零件各排兩次裝夾,自己寫 CAM 與 Fanuc 程式,在 HiNC 以 0.25 mm 的網格驗收過。這一頁只取底殼:169 × 111 × 40.5 mm,U 形、兩端開口,牆 3.5 mm、底 2.0 mm。OP10 由虎鉗夾住料頭做內側;OP20 把零件繞 X 翻面,坐在依內腔做的塞子上、由軟爪夾住做外側。兩支都是一般三軸程式(G54、G43、G81;沒有 RTCP、沒有傾斜工作平面,也不是 CL)。
這一頁,AI 代理 (agent) 在案例的三軸骨架機台上放一個常見的幾何誤差:X 與 Y 行程不垂直,差 0.003°。也就是 Y 滑座連同台面在 X 滑座上繞 Z 歪了,每 300 mm 差 15.7 µm(ISO 230-1 的 X、Y 運動間垂直度,本批記作 EC0Y)。它做成 Y 軸連接正上游一條標記的誤差項,OP10 與 OP20 兩個專案帶同一個值;程式一行都沒改。
同一個歪,在一次裝夾裡只是把朝 ±Y 的面剪切 −θx,長牆兩端 ±4.42 µm。零件翻面以後,這個剪切在零件上反了過來:成品上 OP10 切的面是 +θx、OP20 切的面是 −θx,兩次裝夾各自做出的面錯開 2θx,長牆兩端 8.85 µm。錯在哪裡,又看 OP20 怎麼抓零件:
- A,照設計框架定位(探針碰數或外部治具):錯位沿 y、隨 x 變。每道長牆的接縫只在一端留下 2θx 的階,+y′ 牆在 x+ 端、−y′ 牆在 x− 端,x 84.5 處 8.85 µm;另一端的縫取 OP10 那一刀,沒有階。
- B,坐進在同一台機上修出的軟爪或塞子:長牆重新貼齊 X 行程,長牆上的接縫消失,錯位改成沿 x、隨 y 變。B 是對夾持的假設,不是誤差項的功能:它的毛胚是 A 的毛胚再繞 OP20 程式零點轉 −2θ。
在 HiNC 3.2.46 開發版(含誤差項)上共播十四趟:七趟是以 1 mm 網格跑的修剪趟(較粗、較快的驗證版),七趟以 0.25 mm 播整案。各趟分別是誤差項關(名目趟,它切出的工件當作之後每一次幾何差異比對,也就是 Diff 的理想幾何)、誤差項開而誤差有標記(控制器不知道它),以及再關一次並做 Diff(對照趟,雜訊底);另有一趟修剪清掉了標記。結果:
- 刀尖。 OP10 的 224,167 個與 OP20 的 165,184 個切削步,刀尖對名目趟的偏移都落在 δ = (X(cos θ − 1), −X·sin θ, 0) 上,相差不超過 8.36×10⁻¹⁴ mm(三軸殘差合成的長度);δy 在 ±4.9 µm 內。每一步的機械座標都與名目趟逐位元相同。
- OP10,一次裝夾。 外長牆的偏差對 x 的斜率 −52.34/+52.34 µm/m(預測 ∓52.36);內側面同向平移,所以牆厚不變(外加內 −0.053 µm);端面 −0.008 µm。
- OP20 成品 A。 長牆的 OP10 段斜率 +52.34/−52.34 µm/m,OP20 切的 49° 倒角 −39.44/+39.45 µm/m(預測 ∓39.49):兩次裝夾反向。縫取較深的那一刀,兩端都是 −3.773 µm;縫在 z′ −6 的階,x 84.5 處 8.849 µm(預測 2θx = 8.849)。孔與外面的凸台、墊片反向各移 θx:Ø3.3 孔外的凸台壁一側厚 3.88 µm,Ø2.7 孔外的墊片壁在框內薄 6.57 µm(同框逐頂點預測 6.49;中線上 7.59)。
- 匯出→翻面→重建的來回沒有損失:同一個 OP10 切的面,在 OP10 的 Diff 與在成品的 Diff 讀到一樣的值,五對框的中位數差 0.0000 µm。
- OP20 成品 B。 長牆的 OP10 段與縫同一條線(−52.36/+52.36 µm/m),縫與 OP10 段只差 0.011/0.015 µm。牆端 OP10 切的部分凸出 +5.615 µm(預測 5.63),上面 OP20 那一段 +0.015,階 5.60 µm;凸台 +x 側 −4.046 µm;墊片反號,+3.419/+3.255 µm。OP20 切的 11 個框與 A 相同(差 0.0000 µm)。
- 公差帳(案例的一般公差 ISO 2768-m;用掉多少是最壞處的預測)。A 最先吃公差的是 Ø2.7 孔外 1.2 mm 的墊片壁:中線上 7.59 µm,是 ±0.1 的 7.6%(框內量到 6.57 µm,同框預測 6.49);機台要歪到 0.040°,也就是現在的 13 倍,才會用完。B 的墊片壁用掉 4.2%(+x 側量到 4.22 µm)。縫帶的截面不是計畫以為的 3.5 mm 牆:背後有內凸緣,|x| 到約 78 是 7.335 mm、x 80–84.5 約 9.3–9.5 mm,都屬 ±0.2 那一級;最壞處 x 84.5 薄 8.85 µm,是 ±0.2 的 4.4%(7.335 mm 那一段最壞約 8.2 µm、約 4.1%;|x| 62–76 量到 −7.23 µm)(難題 7)。
- 控制器知不知道誤差。 清掉標記的修剪趟與有標記的那一趟逐位元相同:一般三軸程式不讀機台鏈,校正過的控制器沒有東西可改。
- 對照。 四趟對照的切削件 100% 的頂點離名目切削件 0.1 µm 以內,框的中位數都在 3.4×10⁻⁷ µm 內。
- 網格的極值。 整案三趟誤差項開的匯出件,各有 0.41–0.57% 的頂點離名目切削件超過 10 µm(最大 176.9 µm)。以精確的點到三角形距離逐一核過,全是真的差異;其中 86–97% 沿銳邊順 x 排成長排(其餘多在牆端 |x| ≥ 78,與墊片、內凸緣、內牆台階的角),多數排沿全長同一大小,與誤差在那裡的大小無關(A 兩排、B 四排沿 x 變 2.7–112 µm)。讀法是 0.25 mm 網格在邊上換了一種切法(推論,沒有讀網格程式碼),所以不拿它當切削偏差(難題 9)。
- 成本,在共用的 32 執行緒伺服器上:修剪七趟 525 s;整案七趟一個工作 1 h 43 min 17 s;OP20 每趟記憶體峰值 20.66–21.26 GB。
這裡的一切都是仿真,沒有切過任何零件。

主圖。OP20 成品 A 正對 +y′ 長牆(視線沿 −y′;畫面由上而下:49° 倒角、縫、長牆的 OP10 段、外溝、近牆頂一段),同一鏡頭交替「誤差項開」(f-op20-on,毛胚是 OP10 開那一趟的切削結果翻面)與「誤差項關」(f-op20-control)。開的那一幀,OP10 切的三段由左端藍(留料,約 +4.4 µm)經中央綠到右端紅(約 −4.4 µm),倒角反過來左紅右藍,倒角下那條窄的縫兩端都偏紅;關的那一幀全綠。畫面左端是 x+(依鏡頭的命名推得)。Diff 色階 ±0.005 mm(藍=留料、綠=0、紅=過切,正負同權重);0.25 mm 網格;HiNC 3.2.46 開發版(含誤差項)。
| 底殼,0.25 mm,HiNC 3.2.46 開發版(含誤差項) | 第一次播放前的預測 | 量到 |
|---|---|---|
| 刀尖減名目刀尖再減 δ,切削步(OP10 224,167;OP20 A、B 各 165,184) | 0(計畫容許 1×10⁻⁹ mm) | 最多 8.36×10⁻¹⁴ mm(殘差的長度) |
| 切削步的 δy | ±5.16 µm 內 | OP10 −4.895…+4.895 µm;OP20 −4.887…+4.765 µm |
| 機械座標,開對名目 | 相同 | 每一步逐位元相同 |
| OP10:外長牆對 x 的斜率,+y/−y | −52.36/+52.36 µm/m | −52.34/+52.34 µm/m |
| OP10:牆厚(外側 x+ 框加內側 x+ 框) | −0.05 µm | −0.053 µm |
| A:長牆 OP10 段的斜率,+y′/−y′ | +52.36/−52.36 µm/m | +52.34/−52.34 µm/m |
| A:49° 倒角的斜率,+y′/−y′ | −39.49/+39.49 µm/m | −39.44/+39.45 µm/m |
| A:縫框,x+/x− | −3.77/−3.77 µm | −3.773/−3.773 µm |
| A:縫在 z′ −6 的階,x 84.5 處 | 2θx = 8.849 µm | 8.849 µm |
| A:1.2 mm 墊片壁,−y′ 側 | 中線上 −7.59 µm;同框逐頂點 −6.49 µm | 框內 −6.567 µm |
| 來回:OP10 切的面五個框,OP10 的 Diff 對成品的 Diff | 相同(計畫容許 0.5 µm) | 0.0000 µm |
| B:長牆 OP10 段與縫的斜率,+y′/−y′ | −52.36/+52.36 µm/m | −52.36/+52.36 µm/m |
| B:+y′ 牆 +x 端面的 OP10 部分 | +5.63 µm | +5.615 µm |
| B:OP20 切的 11 個框對 A | 0 | 0.0000 µm |
| 不標記對有標記(OP10 修剪) | 相同 | 10 個序列鍵逐位元相同;切削件的頂點距離逐位元相同 |
| 四趟對照對名目 | 0 | 100% 的頂點在 0.1 µm 內 |
| 整案工作/OP20 每趟的記憶體峰值 | 1.6–2.5 h/4–12 GB(計畫的估計) | 1 h 43 min 17 s/20.66–21.26 GB |
案例¶
原案例記錄代理怎麼替機殼的各個零件排兩次裝夾、自己寫 2.5 軸 CAM 與 Fanuc 程式、在 HiNC 驗收:會撞機、斷刀、漏切的地方,在切料前就抓到。那一案用的是照設計做的機台,沒有誤差。這一頁在同一台機上加一個幾何誤差,回答三個問題:
- 同一個機台誤差,在一次裝夾裡、和在零件翻面後的兩次裝夾之間,各長什麼樣子、多大。
- 加倍的錯位落在零件哪裡,又怎麼隨 OP20 抓零件的方式改變。
- 這台機要歪到多少,這個機殼的一般公差才會出問題。
代理拿到的:
-
驗收過的兩個專案與程式。
- OP10 專案
bottom-shell-OP10:175 × 117 × 49 的料塊,由虎鉗夾底下 8.5 mm;G54 (−381, −203, −513.4639999999999)。程式是整支 OP10 程式在換刀處切成的五段NC/bottom-op10-s1.nc…s5.nc:T1 面銑與外輪廓粗、精;T4 T 型槽刀切外溝;T1 再做腔體分層粗加工、內牆、凸台、墊片與各平面;T2 清角;T3 清一道窄縫。原驗收段與段之間,以記下的網格幾何(.wct檔)接力毛胚。 - OP20 專案
bottom-shell-OP20:毛胚是 OP10 切出的工件匯出後,由原案例的翻面腳本繞 X 翻面,(x, −y, −z − 40.536),坐在塞子上、軟爪夾牆頂。一支程式NC/bottom-op20.nc(19,308 行):T1 端掉料頭、外輪廓收到 Z−6;T5 D6 球刀做兩長邊的 49° 倒角;T7、T8、T9 鑽 7 × Ø2.7、4 × Ø3.3 盲孔與 1 × Ø5.1;T6 D2 球刀做 7 個沉頭。專案存的 G54 是 (0, 0, 0):原驗收每次重設後用 P0 設。 - 機台
Empty-wXYOZSt,兩個專案共用的三軸骨架機(沒有模型的機台):台側 O→base→X→Y→w,刀側 base→Z→S→t;X 在下、Y 在上;主軸角色綁在 Z→S。
- OP10 專案
-
HiNC 的誤差項。 機台鏈上的軸或主軸可以帶一個誤差項,也就是緊接在那根軸的連接之前、一條自己的靜態連接,帶的是量到的誤差,不是設計。控制器
XyzabcSolver負責把 NC 轉成機械座標,含 RTCP 與傾斜工作平面;它一律在名目鏈上求解,把標記的連接當作不存在。專案的啟用誤差項開關開著時,仿真的機台在運動、切削與檢查碰撞時都保留這些連接,所以誤差會切進零件,就像一台控制器不知道自身誤差的真實機台。沒有 RTCP、沒有傾斜工作平面的程式,機械座標只由程式與偏移決定,所以鏈上的誤差標不標記都會切進零件(誤差項連接 (Error-Term Branches),英文,未鏡像)。 - 碰數(對刀)與 P0。 HiNC 的 P0 在名目鏈上量程式零點。真機上碰數量到的工作偏移,已經含有誤差在碰數姿態造成的固定偏移(有誤差項的機台上的工作偏移)。
- 放置的規則。 HiNC 的產品擁有者 2026-10-06 裁定:誤差項只放在角色連接(軸或主軸)的正上游,新錨點以那一軸的名字加上
err命名。 - 要求。 HiNC 的產品擁有者要以驗收過的案例為基礎做誤差項的實作案例,吃重的執行放到一台共用的伺服器上跑。
沒有任何資料寫明的:
- 放哪一種誤差。 要找一個會跨兩次裝夾、在零件上反號的誤差。X–Y 垂直度繞 Z 轉,零件繞 X 翻面時,這個轉動在零件上變號;長牆的兩段、孔與凸台、孔與墊片又正好分在兩次裝夾做。
- OP20 的毛胚怎麼帶著誤差過去。 OP20 開的那一趟,必須從 OP10 開那一趟切出的工件開始;記下的
.wct搬不過去(難題 4)。 - 加倍的錯位落在哪。 取決於 OP20 怎麼抓零件,這不是誤差項本身能決定的;代理兩種夾法都跑(難題 5)。
- 0.25 mm 的網格讀不讀得到。 單一面最大的偏差 4.42 µm 是格寬的 1.8%。同一批另一個案例(RPTU 件 4)以同一個值做的 0.25 mm 試跑,量到的 ±2.7 µm 仍隨誤差線性變化,所以不放大。
在已完成的誤差項案例裡,這是第一個零件在兩次裝夾之間翻面的:機台上是同一個誤差,零件上卻變了號。
代理建了什麼¶
每個值都標明是讀取(來自原案例或文件)、推得(由讀到的值算出)、自選(代理自己的決定)或量得(建置或播放後讀回)。θ 是誤差的角度 0.003°。
| 項目 | 值 | 來源 |
|---|---|---|
| 意義 | X 與 Y 行程不垂直:Y 滑座連同台面、夾具與零件裝在 X 滑座上,繞 Z 轉了 θ,+X 與 +Y 行程夾 90° + θ(ISO 230-1 的 X、Y 運動間垂直度,本批記作 EC0Y)。對台面上的零件,Y 行程沿零件的 y,X 行程沿 (cos θ, −sin θ):每次裝夾裡朝 ±Y 的面被剪切 δy = −θx;朝 ±X 的面、水平面與 x = 0 上的東西不動 | 自選:誤差的種類;推得:對零件的效果 |
| 大小 | 0.003°(52.36 µrad,sin θ = 5.236×10⁻⁵)=每 300 mm 15.71 µm;長牆兩端 x ±84.5 各 4.42 µm,兩次裝夾之間 8.85 µm | 自選:典型值,不放大;推得 |
| 量級的參考 | 落在本批設計簡報給的直線軸垂直度常見範圍(每 300 mm 5–20 µm)的中上段,不是哪一台機的量測。Holub 等人(2020)用雷射追蹤儀量一台三軸立式加工中心,補償前的 X–Y 垂直度是 24.4 µrad=0.0014°(Applied Sciences 10, 6233,圖 6 的 LTc1,從長條圖讀出);本案約是它的 2.1 倍。本批 RPTU 件 4 的試跑與 JMMP 深槽案用同一個值 | 讀取;自選 |
| 放在哪 | Y 軸連接的正上游。原本的 X→Y 切成兩段:X→Yerr 命名為 XYsq,帶 Static Rotation 繞 (0, 0, 1) 0.003°、樞軸 (−381, 0, 0)(X 錨點座標),標為誤差項;Y 軸原本的 Dynamic Translation (0, −1, 0) 搬到 Yerr→Y,名稱仍是 Y,Y 軸重新繫結到它,值不變 |
自選,依擁有者的裁定 |
| 樞軸 | (−381, 0, 0):兩次裝夾碰數姿態(G54 X −381、刀尖在程式零點)時的主軸軸線,以 X 錨點座標表示。繞 Z 轉時 z 不起作用,OP10 碰數時的刀尖(base z 486.536)與 OP20 的(512.536)都在這條線上,所以同一個樞軸對兩次裝夾都成立 | 推得(設計推導第 2–4 步) |
| 機台鏈 | O→base→X→Yerr→Y→w;刀側 base→Z→S→t 不變;兩個專案相同 | 量得(建置後讀回) |
| 讀回 | 讀回值=要求值(軸向、角度、樞軸),兩個專案的 XYsq 相同;其他 6 條連接(NewAnchor-001、X、Z、NewAnchor-006、NewAnchor-005、tooling-location)不變;Y 的值與角色不變(這條連接換了新的 guid);角色檢查在建置前後都是空的;載入與重開都沒有訊息 |
量得 |
| 工作偏移 | OP10:專案存的 G54 (−381, −203, −513.4639999999999) 就是碰數值,每一趟都不打入。OP20:專案存的是 0,七趟都打入 P0 在名目鏈上讀到的 (−381, −203, −487.4644626312256):治具的 WorkpieceMount 122.53553736877441 + 台面安裝點 390 − 刀具安裝點 1000。開的那幾趟與名目打入同一個值:碰數找到的就是名目的 G54 | 量得(各趟開始前的工作偏移與打入值);推得 |
這條連接名叫 XYsq,是本批的誤差項工具插入時取的名字。拓樸圖上它和 Y 軸的連接之間只有錨點 Yerr,形狀與手冊說的軸的誤差項相同,圖上也帶著誤差項的徽章。

設備頁拓樸欄的機台叢集(GeneralMechanism)。X 與 Y 之間多了錨點 Yerr。XYsq(Static Rotation,X → Yerr,讀回值繞 (0, 0, 1) 0.003°、樞軸 (−381, 0, 0) mm,X 錨點座標)帶橘色「誤差項」徽章;Y 軸的 Dynamic Translation(「工具機 · Y 軸」)接在 Yerr → Y;刀側 base → Z → S → t 不變。下方是同一張擷取中 X → Y 這一段的放大。OP20 誤差項專案的擷取(OP10 專案的鏈相同);HiNC 3.2.46 開發版(含誤差項),繁體中文介面。
為什麼是 X–Y 垂直度,為什麼放在 Y 的上游(設計代理的推導):
- 零件繞 X 翻面時,繞 Z 的轉動在零件上變號;長牆的兩段、孔與凸台、孔與墊片又正好分在兩次裝夾做。這是讓「兩次裝夾之間加倍」出現的誤差。
- X–Y 垂直度要放在兩個滑座之間。若放在 X 的上游(base→X 之間繞 Z),兩個滑座與台面一起轉,刀尖偏移變成 (Rz(−θ) − I)(0 − c),是常數:只是碰數會吃掉的平移,零件沒有形狀誤差。這台機 X 在下、Y 在上,Y 軸連接的正上游正好在兩個滑座之間,也符合擁有者的裁定。
- 主軸傾斜對這些 D20 以下的刀只有次微米的效果,所以不選。
刀尖會偏多少:第一次播放前寫下的預測。
- 記號:θ = 5.235987755982989×10⁻⁵ rad;X、Y、Z 是名目那一趟的刀尖 Cl(程式座標)。機台檔各連接都沒有旋轉,主軸軸線是 base 的 x = 0、y = 0;刀尖在 X 錨點座標是 (X − 381, 0, ·)。StaticRotation 讓台面相對 X 滑座轉 +θ,所以刀尖相對零件偏移 δ = Cl(開) − Cl(名目) = (Rz(−θ) − I)(X, 0, ·) = (X(cos θ − 1), −X·sin θ, 0)。
- 兩次裝夾同一個式子,與 Y、Z、刀長都無關;程式 x = 0 整條線上為 0,所以碰數找到的就是名目的 G54。
- 範圍:OP10 程式的 X 在 −98.5…98.5(s2 的 T 型槽刀),δy ±5.16 µm;|δx| ≤ 1.35×10⁻⁷ mm。
- 仿射擬合 δ = A·p + b 應得 A = [[cos θ − 1, 0, 0], [−sin θ, 0, 0], [0, 0, 0]] = [[−1.371×10⁻⁹, 0, 0], [−5.236×10⁻⁵, 0, 0], [0, 0, 0]]、b = 0。
- 機械座標:開、不標記、對照與名目每一步都相同(一般三軸程式)。
零件上留下多少,以開對名目的帶號距離 d 表示,沿面的法向(正=留料=藍,負=過切=紅)。刀是剛體、只平移,切出的面約等於名目面經 (x, y, z) → (x cos θ, y − x sin θ, z);刀截面本身的剪切畸變最多 Rθ/2 = 0.16 µm(D12)。每個面在切它那次裝夾的程式座標裡,d ≈ −θ·x·n_y:
- OP10(OP10 座標=設計 STL 座標):+y 長牆外側 −θx、−y 外側 +θx;內側面同向平移(法向相反,所以 d 的正負號也相反),牆整片移動、厚度不變;凸台、墊片、導軌整個平移 (0, −θx);端面 −84.5·θ²/2 = −1.2×10⁻⁴ µm,水平面 0。
-
OP20 成品 A(OP20 座標 x′ = x、y′ = −y、z′ = −z − 40.536,以下 x′ 直接寫 x):OP10 切的面在翻面後的零件上偏 δ = (0, +θx),OP20 切的面偏 (0, −θx);兩次都切的地方,取較深的那一刀。
- 長牆 OP10 段(z′ −40.5…−6):+y′ 面 +θx、−y′ 面 −θx。
- 49° 倒角(T5;設計面 0.7543y′ + 0.6566z′ = 38.588):+y′ 倒角 −0.754θx、−y′ 倒角 +0.754θx,兩端 ∓3.34 µm。
- 縫(z′ −6…−4.52:OP10 外輪廓精修到 z′ −4.482,OP20 的 T1 在 Z−6 收外輪廓,T5 最低一層的 R3 球面在 z′ −4.52 碰到牆面):取較深者 −θ|x|,兩端都紅。+y′ 牆在 x > 0 那端(−y′ 牆在 x < 0 那端),外側取 OP20 那一刀、背後是 OP10 切的面,z′ = −6 處有 2θ|x| 的階(x 84.5 為 8.85 µm)。
- Ø3.3 盲孔(OP20)在 Ø7.33 凸台(OP10)裡:孔與凸台反向各移 θx(x 37.5 為 1.96 µm),所以 2.0 mm 的壁一側厚 3.93 µm、一側薄 3.93 µm。
- Ø2.7 孔與沉頭(OP20)穿過 Ø5.1、高 0.98 mm 的墊片(OP10):1.2 mm 墊片壁變 ±2θx(x 72.504 為 7.59 µm);沉頭錐(半角 36.3°)的法向分量 0.806θx。
- 端面、底面 z′ = 0、腔底、中心 Ø5.1:0。
-
OP20 成品 B(毛胚再繞 OP20 程式零點的 Z 轉 −2θ = −1.047×10⁻⁴ rad,長牆重新貼齊 X 行程):OP10 切的面偏 δ = (2θy′, −θx),OP20 切的面照舊 (0, −θx)。長牆兩段斜率相同、縫消失;錯位改成沿 x 的 2θy′:+y′ 牆 +x 端面的 OP10 部分 +5.63 µm(角落 5.81);凸台 +x 側 −3.93 µm、+y′ 自由側 −1.96 µm;墊片自由側的正負號與 A 相反。OP20 切的面與 A 相同。
示意圖(OP20 座標俯視,偏移放大 1000 倍)。A 照設計框架定位時,OP10 切的面(藍:長牆、凸台)在翻面後的零件上剪切 +θx,OP20 切的面(橘:縫以上的外輪廓、孔)剪切 −θx,兩者在 x = 0 交會、在長牆兩端錯開 2θx(x = 84.5 處 8.85 µm)。B 坐進同一台機上修出的軟爪時,OP10 的面多轉 −2θ,長牆與 OP20 的面平行,錯位改沿 x、大小 2θy′(角落 5.81 µm)。B 是對夾持的假設,不是誤差項的功能。
各趟:
| 趟 | 專案/run set | 程式 | 網格 | 開關/XYsq |
毛胚 | 用途 |
|---|---|---|---|---|---|---|
| t-op10-nominal | OP10/trim | s1 | 1 mm | 關/有標記(未生效) | 料塊 | 匯出修剪的名目切削件 |
| t-op10-on | OP10/trim | s1 | 1 mm | 開/有標記 | 料塊 | 控制器不知道誤差;Diff、匯出 |
| t-op10-control | OP10/trim | s1 | 1 mm | 關/有標記(未生效) | 料塊 | 雜訊底;Diff、匯出 |
| t-op10-unmarked | OP10/trim | s1 | 1 mm | 開/清掉標記 | 料塊 | 控制器知道誤差;Diff、匯出 |
| t-op20-nominal | OP20/trim | bottom-op20.nc |
1 mm | 關 | 翻面的原料塊 | 匯出修剪的名目切削件 |
| t-op20-on | OP20/trim | 同上 | 1 mm | 開 | 翻面的原料塊 | Diff、匯出 |
| t-op20-control | OP20/trim | 同上 | 1 mm | 關 | 翻面的原料塊 | 雜訊底;Diff、匯出 |
| f-op10-nominal | OP10/full | s1–s5 一趟連播 | 0.25 mm | 關 | 料塊 | 匯出名目切削件(理想幾何,也是 OP20 名目與對照的毛胚) |
| f-op10-control | OP10/full | 同上 | 0.25 mm | 關 | 料塊 | 雜訊底;Diff、匯出 |
| f-op10-on | OP10/full | 同上 | 0.25 mm | 開 | 料塊 | Diff、匯出(OP20 開的毛胚) |
| f-op20-nominal | OP20/from-nominal | bottom-op20.nc |
0.25 mm | 關 | OP10 名目切削件翻面 | 匯出名目切削件(理想幾何) |
| f-op20-control | OP20/from-nominal | 同上 | 0.25 mm | 關 | 同上 | 雜訊底;Diff、匯出 |
| f-op20-on | OP20/from-on | 同上 | 0.25 mm | 開 | OP10 開的切削件翻面(A) | Diff、匯出 |
| f-op20-seated | OP20/from-on-seated | 同上 | 0.25 mm | 開 | 上一份再繞程式零點轉 −2θ(B) | Diff、匯出 |
兩個專案的 XYsq 每一趟都標著,只有開關不同;清掉標記的只有 t-op10-unmarked。
各趟共同的設定:
- 物理關。 這一案只看幾何,切削力、撓曲與熱不在範圍內(原案例驗收時物理開,所以下面的成本不能直接和它比)。
- 碰撞偵測開,失敗時不暫停;每一步是主軸一轉(Feed Per Cycle)。
- Diff(工作流程:幾何驗證):理想幾何是同一個專案的名目趟匯出的切削件;偵測半徑 1 mm、色階(
DiffVisualRadius)±0.005 mm,兩者都從建置時存下的兩個專案檔讀回;真實的誤差,不放大。 - 每趟開始前重啟實例,從檔案重新載入專案,所以每趟的記憶體峰值是那一趟自己的。
- 逐步序列記 Cl.X/Y/Z(刀尖在程式座標的位置)、MC.X/Y/Z、FileNo、LineNo、IsTouched 與 ToolId。
代理怎麼管理這件工作¶
- 先寫標準與預測。 設計代理的完整推導、誤差項工具讀的兩份 case 檔(連同停刀程式與翻面毛胚的腳本),以及帶十二條編號標準的計畫,都在第一次播放之前提交。建置在 2026-10-07 03:38:47,第一趟 03:40:36 開始。設計與 case 檔、計畫不同的地方,以後兩者為準。
- 兩個專案、兩份 case 檔。 誤差項工具一份 case 檔管一個專案,所以 OP10 與 OP20 各自另存成自己的誤差項專案;另存會把機台檔寫在專案旁邊,兩份機台檔帶同一個誤差。
-
先用 1 mm 修剪七趟,03:40:36–03:49:21,不拿共用鎖:
t-op10:只播bottom-op10-s1.nc(T1 面銑與外輪廓,1,182 行、58,993 步,X −95.5…95.5,跨過整條長牆):名目、開、對照、不標記。t-op20:整支bottom-op20.nc(243,197 步),毛胚換成 OP10 原料塊翻面,只有 12 個三角形,不必從約 160 萬面的真毛胚建:名目、開、對照。這幾趟驗打入的 G54、換毛胚、逐步公式,以及一趟裡換刀五次不重設(六把刀都有接觸步)。
-
整案七趟一個工作,0.25 mm(案例驗收的解析度),17:56:16–19:39:33;順序固定,因為 OP20 的毛胚取自 OP10 的切削結果:
- 第一步,
f-op10:五支分段程式一趟連播、中間不重設:名目(匯出名目切削件)、對照、開(匯出開的切削件)。 - 第二步,兩份 OP10 匯出件照原案例的矩陣 (x, −y, −z − 40.536) 翻面,B 那份再轉 Rz(−2θ),不減面。這一步加上重啟實例,從 OP10 最後一趟結束到 OP20 第一趟開始共 32 s。
- 第三步,
f-op20:名目與對照用名目的毛胚,A 與 B 用開的毛胚與它轉過的那一份。
- 第一步,
-
理想幾何是名目切出的工件。 每個專案的名目趟匯出自己的切削件,設成那個專案 Diff 的理想幾何:OP10 1,587,794 個三角形、OP20 1,674,804 個(修剪 103,488、79,204 個)。這樣 Diff 只剩誤差造成的差,不含刀路本身留下的痕跡。
- 播 NC,不播紀錄。 OP10 案例自己的
Record Meshed Geometry條目全部關掉;OP20 只開bottom-op20.nc,停刀程式在清單裡、關著。做 Diff 的趟各自記下最後的毛胚,拍圖時用。 - 每個數字都從紀錄算。 代理的分析腳本從執行紀錄算出本頁的逐步比較、網格距離、框、斜率、成本與判定,每個數字附出處,可以重跑。離名目超過 10 µm 的頂點,都在伺服器上以點到三角形的精確距離對名目切削件重算過。執行這一案的代理另用自己的腳本判讀標準,當作交叉核對。
- 畫面兩種介面語言各拍一套,都是把記下的毛胚連同 Diff 放回畫布拍的,沒有重播。畫布上沒有介面文字,所以同一鏡頭的中英擷取逐像素相同,只有交替圖的標籤、拓樸圖與圖表文字照語言不同。
- 共用一台伺服器。 整案的工作要等那把讓伺服器一次只跑一個整案的共用鎖;下面的成本只算它持鎖的時間。
- 人在哪裡介入。 HiNC 的產品擁有者要以驗收過的案例為基礎做誤差項的實作案例、吃重的執行放到共用伺服器上,並在 2026-10-06 裁定誤差項只放在軸或主軸的正上游。誤差、大小、樞軸、零件的兩種坐法、預測與標準,都是代理自己定的:設計代理推出來,執行這一案的代理把它們寫進計畫。標準與判定列在結果與效益。
難題¶
每一個都依序寫出情況、若沒發現會有的風險、怎麼發現、怎麼解決,以及證明解法成立的證據。
1. 誤差放在鏈的哪一段¶
- 情況。 X–Y 垂直度是兩個滑座之間的角度;擁有者的裁定只讓誤差項放在軸或主軸的正上游。
- 風險。 放在 X 的上游(base→X 之間繞 Z),兩個滑座與台面一起轉,刀尖偏移變成 (Rz(−θ) − I)(0 − c),是常數:碰數會整個吃掉,零件上什麼都看不到。
- 怎麼發現。 設計代理的推導。
- 解決。 放在 Y 軸連接的正上游。這台機 X 在下、Y 在上,那裡正好是 X 滑座與 Y 滑座之間。
- 證據。 刀尖偏移隨 X 變,照 (X(cos θ − 1), −X·sin θ, 0),相差不超過 8.36×10⁻¹⁴ mm(三軸殘差合成的長度)。
2. 一個樞軸要對兩次裝夾都成立¶
- 情況。 StaticRotation 要一個樞軸。兩次裝夾的碰數點在不同高度(刀尖在 base z 486.536 與 512.536),零件中間還翻了面。
- 風險。 樞軸放錯,零件上多一個常數平移,兩次裝夾還各不相同,看起來像程式零點錯了。
- 怎麼發現。 設計推導第 2–4 步:兩次裝夾的 G54 X、Y 都是 (−381, −203),碰數姿態時主軸軸線在 X 錨點座標都是 (−381, 0);繞 Z 轉時 z 不起作用。
- 解決。 樞軸取 (−381, 0, 0),在這條鉛直線上。程式 x = 0 整條線上偏差為 0,對任何 y、z、刀長都成立,所以碰數找到的就是名目的 G54,開的那幾趟不另打工作偏移。
- 證據。 仿射擬合的程式零點偏移 |b| ≤ 2.67×10⁻¹⁴ mm,OP10、OP20 都是。
3. OP20 基底專案存的 G54 是 0¶
- 情況。 OP20 專案
bottom-shell-OP20存的 G54 是 (0, 0, 0);原驗收每次重設後用 P0 設,誤差項工具則不量 G54。 - 風險。 不補,名目那一趟整支程式偏 381/203 mm。設計寫的 −487.4645 是四捨五入過的值,和 P0 讀到的差 0.04 µm。
- 怎麼發現。 設計代理讀專案檔。
- 解決。 OP20 每一趟都打入 P0 在名目鏈上讀到的 (−381, −203, −487.4644626312256)(治具 WorkpieceMount 122.53553736877441 + 390 − 1000);工具打入後立刻讀回,差超過 1×10⁻¹² 就中止。開的趟打入同一個值。
- 證據。 OP20 七趟開始前的 G54 都是 0、打入的都是這個值;刀尖的程式零點偏移 |b| ≤ 2.65×10⁻¹⁴ mm。
4. 毛胚怎麼跨過翻面¶
- 情況。 OP20 開的那一趟,毛胚必須是 OP10 開那一趟切出來的零件,誤差才會從 OP10 帶進成品。
- 風險。 讀 OP10 記下的
.wct,可以省掉從約 160 萬面的網格建毛胚;但.wct在 OP10 的工件座標,要用就得把 OP20 工件鏈的 GeomAnchor→FixtureMount 改成繞 X 180°、z −40.536,等於改基底專案。改走 STL,又怕匯出、翻面、重建這一趟來回抹掉幾 µm 的差。 - 怎麼發現。 設計代理讀兩個專案的工件鏈。
- 解決。 OP10 名目與開的匯出件,照原案例翻面腳本用的同一個矩陣翻面,B 那份再轉 Rz(−2θ),不減面。計畫加一條來回檢查(標準 10),不過就另做 ×10 的放大版拍圖。
- 證據。 五對框的中位數差 0.0000 µm,×10 版不必做。代價是 OP20 每趟的記憶體與時間(難題 13 與執行成本)。
5. OP20 怎麼抓零件:A 還是 B¶
- 情況。 HiNC 照原案例把 OP20 的毛胚放在設計框架裡(A,代表探針碰數或外部治具)。真機上若塞子與軟爪是在同一台機上修出來的,零件坐進去時長牆會重新貼齊 X 行程(B)。
- 風險。 只跑 A,就會把「加倍的錯位落在長牆接縫」說成這個誤差唯一的結果;反過來,把 B 寫成誤差項的效果也會誤導,因為 B 是對夾持的假設。
- 怎麼發現。 設計代理推導翻面後的位移時。
- 解決。 兩種都跑。B 的毛胚是 A 的毛胚再繞 OP20 程式零點轉 −2θ,本頁與 B 的每一張圖說都寫明它是假設。
- 證據。 B 的長牆兩段同一條線(縫對 OP10 段差 −0.011/−0.015 µm),錯位換到牆端(+5.615 µm)與凸台、墊片的 ±x 側;OP20 切的 11 個框與 A 差 0.0000 µm;B 的刀尖與機械座標和 A 逐位元相同。
6. 修剪的 OP20 在實心料塊上快移切料¶
- 情況。 修剪的
t-op20用 OP10 原料塊翻面當毛胚,省掉從 STL 建毛胚。料塊沒有內腔,z′ −4.482 以下的外圍也還有料,刀路卻是照真的毛胚排的。 - 風險。 刀路在料塊上碰到真毛胚沒有的料,報快移切料,看起來像建置錯了。
- 怎麼發現。 計畫事先寫明了這個可能(怎麼跑的段落與標準 3)。
- 解決。 照實記下、不算失敗;修剪趟只判 OP20 切的面,名目與開要一樣。
- 證據。 名目、開、對照三趟各
Play-RapidCut--Detected兩則,三趟相同;用真毛胚的整案 OP20 四趟一則都沒有。
7. 計畫依幾何改了設計的四句話,其中一句改錯了¶
-
情況。 計畫依設計 STL 的剖面,改了設計代理的四句話:
- OP10 長牆的內外兩面顏色相反(法向相反),不是同色;
- 從腔內看,凸台、墊片和孔反向移,但同一側的顏色相同;
- 縫是 z′ −6…−4.52(D6 球刀的 R3 在 z′ −4.52 碰到牆面),不是 −4.99;
- A 最先吃公差的是縫帶的牆厚與接縫的階(x 84.5 處 8.85 µm),不是墊片壁。
-
風險。 第四句改錯了。縫帶 z′ −6…−4.52 那一段長牆的背後有內凸緣(導軌:y′ 48.165、z′ −7.98…−2.0、|x| 到約 78;x 80–84 處在 46.0–46.2),所以外側面到內側的截面在 |x| 到約 78 是 7.335 mm、x 80–84.5 約 9.3–9.5 mm,都屬 ISO 2768-m 6–30 mm 那一級的 ±0.2,不是 3.5 mm 牆的 0.5–6 mm、±0.1。照計畫寫,本頁會把「哪一個尺寸先出問題」說錯。
- 怎麼發現。 分析員做公差帳時,在設計 STL 的 x = 0.1…84.1 各處讀剖面上內側面的位置,名目切削件上也一樣。
-
解決。 照讀到與量到的改寫:
- 縫帶截面薄 2θ|x|:|x| 62–76(在 7.335 mm 那一段)量到 −7.23 µm(預測 −7.23)。預測最壞處在 x 84.5,在 9.5 mm 那一段:薄 8.85 µm,是 ±0.2 的 4.4%;7.335 mm 那一段最壞約 8.2 µm,約 4.1%。
- A 最先吃公差的是 1.2 mm 的墊片壁:預測 7.59 µm=7.6%(θ 到 0.040° 用完),和設計原本的排序相同。
- 8.85 µm 的接縫階仍是零件上最大的錯位,但兩個面之間的階不是尺寸,ISO 2768-m 的長度公差管不到它:計畫拿它對 ±0.1 算出的 8.9% 不成立。B 那邊計畫把牆端在 z′ −6 的階(角落 5.81 µm,5.8%,0.052°)排第一,也是拿階對 ±0.1,同樣不成立;B 最先吃公差的是墊片壁,預測 4.19 µm=4.2%(0.072°)。
這是對計畫的發現,不是重判:公差帳不是計畫的標準。前三句成立,量到的也與它們相符:OP10 內外兩面 +3.719 對 −3.773 µm;凸台與它的孔的 +y′ 側都藍(+1.972、+1.913 µm),墊片與它的沉頭的 −y′ 側都紅(−3.686、−3.041 µm),只有框值為證,因為計畫列的「A 從腔內看」那一張沒有拍;縫框 −3.773 µm。
-
證據。 分析對設計 STL 的剖面讀值與公差帳的數字,和結果一起保存。
8. 量級的參考文獻,「補償前」與「補償後」寫反了¶
- 情況。 設計代理把 Holub 等人(2020)的 24.4 µrad,寫成「以雷射追蹤儀校正過的三軸立式機」量到的值。
- 風險。 把補償前的值說成校正後,等於說「校正得好的機台也差這麼多」,誇大了典型值的依據。
- 怎麼發現。 拿計畫對照論文的圖 6 查核時發現:LTc1 是補償前。
- 解決。 計畫與 OP10 的 case 檔都寫成「補償前」(OP20 的 case 檔沒有引這個值);本案的 0.003° 約是它的 2.1 倍,是典型值,不是哪一台機的量測。
- 證據。 計畫裡誤差大小那一列,以及 OP10 case 檔寫的理由。
9. 網格距離有 0.41–0.57% 的頂點超過 10 µm¶
- 情況。 整案三趟誤差項開的匯出件,讀到最大 |d| 162.7/176.9/157.3 µm(OP10、A、B),是預測的任何偏差(最大 5.81 µm,B 的牆端角落)的二十七倍以上。
- 風險。 把它當成誤差,就會說零件切壞了;不核對就排除,說法也站不住。
- 怎麼發現。 執行這一案的代理要求先用精確的點到三角形距離重算,再說它是什麼。
- 解決。 超過 10 µm 的頂點,都在伺服器上對名目切削件逐三角形重算:3,303、4,868、4,466 個全是真的,沒有一個是距離搜尋的假象;兩趟整案對照一個都沒有。依 (|y|, z) 分組,86/90/97% 排在 5/9/11 條沿銳邊、順 x 的長排上;每排只在一道牆的半邊,多數排沿全長同一大小,最大值等於格子的半對角線 0.25/√2。讀法是推論:邊移了一點點以後,0.25 mm 的網格在銳邊上換了一種切法,所以不當切削偏差用;本頁的大小一律用避開邊的框與第 1、第 99 百分位談。
- 證據。 和結果一起保存的精確距離;對照趟與網格距離的極值裡的長排。讀法是推論,沒有讀網格的程式碼;也不是每一排都等大:A 兩排、B 四排沿 x 變 2.7–112 µm。
10. 整案要不要跑不標記¶
- 情況。 計畫只在修剪那一組排一趟清掉標記的。
- 風險。 少一份整案的證據;或者多跑一趟約 21 GB 的 OP20,只為了得到一樣的結果。
- 怎麼發現。 兩支都是一般三軸程式(沒有
G43.4、沒有G68.2,也不是 CL):控制器只用程式與偏移算機械座標,所以不標記必與開逐位元相同;若不相同,反而是要記下的發現。 - 解決。 只在
t-op10跑一次;整案不跑,也沒有不標記的擷取,所以沒有「控制器不知道/知道」的交替圖。 - 證據。
t-op10-unmarked與t-op10-on的 10 個序列鍵、Diff--Stats與匯出件的距離都相同。
11. 「原物件」與新的 guid¶
- 情況。 標準 1 把
Yerr→Y寫成「原 Dynamic Translation 物件」;插入之後,這條連接的 guid 是新的。 - 風險。 照字面判可能判不過;或者有人以為 Y 軸被換成了另一種運動。
- 怎麼發現。 比對建置前後的拓樸。
- 解決。 照計畫括號裡寫的判法
movedValuesSame判:值(軸向 (0, −1, 0)、Step 0)與角色 Y 軸都相同,其他六條連接的 guid 不變。同一批其他案例的軸連接,也是這樣換了 guid。 - 證據。 建置紀錄的建置前後拓樸(
Y的 guid 換新、其他六條不變)與movedValuesSame。
12. IsTouched 隨誤差變¶
- 情況。 開與名目的步、行號、機械座標都相同,但「這一步碰不碰到料」有幾步不同:
t-op10-on33 步(開那一趟少碰 17 步,46,498 對 46,515),整案f-op10-on268 步、f-op20-on1,397 步、f-op20-seated1,458 步。 - 風險。 逐步比較涵蓋哪些步,會隨切削步由哪一趟定義而不同。
- 怎麼發現。 逐步比較時。
- 解決。 切削步一律取名目趟有接觸的步;殘差也在全部步上算(長度最多 1.26×10⁻¹³ mm),結論不變。
- 證據。 分析裡的逐步配對;分刀的數字見刀尖。
13. OP20 的記憶體超出計畫的估計¶
- 情況。 計畫估 OP20 每趟記憶體峰值(VmHWM)4–12 GB;整案四趟都是 20.66–21.26 GB(19.24–19.80 GiB)。
- 風險。 碰到計畫 24 GB 的停止線,或擠到伺服器上別的實例。
- 怎麼發現。 每一趟的 VmHWM。
- 解決。 在停止線內,跑完並照量到的報。執行這一案的代理看到峰值出現在頭幾分鐘、從約 160 萬面的網格建毛胚的時候;紀錄只有峰值,沒有出現的時間。修剪趟換成 12 個三角形的料塊、以 1 mm 網格跑,峰值只有 2.30–2.42 GB。
- 證據。 每一趟紀錄裡的 VmHWM。
結果與效益¶
在 HiNC 3.2.46 開發版(含誤差項)上、物理關下量得:整案 0.25 mm,修剪 1 mm。「量到」指在 HiNC 的仿真結果上量到。
計畫的十二條標準¶
每一條都照原文通過。
| # | 標準(計畫原文摘要) | 判定 | 量到 |
|---|---|---|---|
| 1 | 建置:重開沒有基底專案以外的載入訊息;鏈 O→base→X→Yerr→Y→w、刀側不變;XYsq 是標記的 Static Rotation,讀回 (0, 0, 1)、0.003°、樞軸 (−381, 0, 0),與設定逐位相同、兩專案相同;Y 是原 Dynamic Translation、名 Y、繫結 Y 軸(movedValuesSame);其他連接不變;角色檢查為空;任務清單(OP10 五支開、Record 條目關;OP20 只開 bottom-op20.nc、停刀程式在且關);物理關、碰撞偵測開、0.25 mm、Diff 開、半徑 1 mm、色階 0.005 mm;兩專案的工件鏈沒有平移;案例在誤差項資料夾以外的檔案在 git 不變 |
通過 | 兩專案的鏈如上;XYsq 讀回=設定、兩專案相同;Y 在 Yerr→Y,Dynamic Translation (0, −1, 0)、Y 軸、值相同(換了新的 guid,難題 11);其他 6/6 條連接不變;載入/重開訊息 0/0;角色檢查前後 0 筆;兩份任務清單都照計畫;0.25 mm、物理關、碰撞偵測開。從建置時存下的兩個專案檔讀回(03:38:47/03:38:52;之後的播放、拍圖與放回毛胚都不存檔):Diff 開、偵測半徑 1 mm、色階 0.005 mm;兩專案工件鏈的 FixtureMount 與 ProgramZeroAnchor 都是 Static Translation (0, 0, 0)。案例的檔案:建置後與收尾時各列一次的 git status,誤差項資料夾以外都是空的。各框也落在照「程式座標=STL 座標」算的預測上 |
| 2 | 工作偏移:OP10 開始前是專案存的 (−381, −203, −513.4639999999999)、不打入;OP20 開始前 0、每趟打入 (−381, −203, −487.4644626312256);開與名目相同 | 通過 | OP10 七趟如存、沒有打入;OP20 七趟開始前 0、打入值如上;其他偏移全 0 |
| 3 | 每一趟 Finished,開著的程式都有步;名目步數 t-op10 58,993、f-op10 320,360、OP20 243,197 各 ±1%;對照同名目,開與不標記差 ≤ 0.1%;每把刀都有接觸步(OP10 T1、T4、T2、T3,修剪只有 T1;OP20 T1、T5、T7、T8、T9、T6);沒有 Tool-Touch--None、Play-Touch--None;沒有碰撞、快移切料與行程超限(t-op20 的料塊例外);警告以上的訊息,開與名目種類與次數相同(Diff--* 除外) |
通過 | 14 趟都 Finished,每支開著的程式都有步;名目步數 t-op10 58,993(0%)、t-op20 243,197(0%)、f-op10 319,907(−0.141%)、f-op20 243,197(0%);對照=名目,開與不標記差 0%;每把刀都有接觸步;禁止的訊息只有 t-op20 料塊三趟各兩則 Play-RapidCut--Detected(計畫內的例外,三趟相同,難題 6);警告以上(Diff--* 除外)開與名目相同:整案 OP20 四趟各一則 ToolChange--UnsafePose,是當時那個開發版的假警告;現在的 HiNC 重播整支 OP20 程式,一則都沒有(〈誠實的限制〉) |
| 4 | 逐步刀尖(五個開趟,切削步):配對 ≥ 99.9%;機械座標相同到 1×10⁻⁹ mm;|Cl(開) − Cl(名目) − δ| ≤ 1×10⁻⁹ mm;仿射 A 每個元素差 ≤ 1×10⁻¹²、|b| ≤ 1×10⁻⁹ mm;δy 在 ±5.16 µm 內;四趟對照每步 |Cl − Cl(名目)| ≤ 1×10⁻¹² mm | 通過 | 步數相同,以步序對齊 100%;機械座標差 0;殘差(長度)≤ 8.36×10⁻¹⁴ mm;|A − A 預期| ≤ 2.2×10⁻¹⁶;|b| ≤ 2.67×10⁻¹⁴ mm;δy −4.895…+4.895 µm;四趟對照的 Cl 逐位元相同 |
| 5 | 不標記(只在 t-op10):對 t-op10-on 每步機械座標與刀尖 ≤ 1×10⁻¹² mm;Diff--Stats 逐字相同;兩份匯出網格每個頂點的距離 ≤ 1×10⁻⁹ mm |
通過 | 10 個序列鍵逐位元相同;Diff--Stats 相同;兩份匯出網格的頂點相距 ≤ 4.97×10⁻¹⁰ mm(搜尋值,是上界);兩者對名目的距離檔逐位元相同 |
| 6 | 雜訊底(四趟對照):≥ 99% 的頂點 |d| ≤ 0.1 µm;該 run set 每個框的中位數在 0.1 µm 內 | 通過 | 四趟都是 100%;框的中位數最大 3.4×10⁻⁷ µm(f-op20-control 22 個框都在內);精算之後,兩趟整案對照都沒有超過 10 µm 的頂點 |
| 7 | 修剪的網格(1 mm,只判正負號):t-op10-on 外牆四框 −、+、+、−,端面在 0.5 µm 內;t-op20-on 倒角 +y′ x+ 負、+y′ x− 與 −y′ x+ 正,底面、底板端面、中心 Ø5.1 在 0.5 µm 內 |
通過 | t-op10-on:−3.773/+3.773/+3.773/−3.773 µm(+y x+/+y x−/−y x+/−y x−),端面 −0.008;t-op20-on:倒角 −2.897/+2.885/+2.887,底面、底板端面、中心 0.000 |
| 8 | OP10(f-op10-on):外長牆斜率 +y −52.4、−y +52.4 µm/m(±20%),截距在 0.3 µm 內;外牆四框 ∓3.77、內牆框 +3.72,各 ±0.6 µm;外 x+ 加內 x+ 在 0.5 µm 內;凸台自由側 +1.96 ± 0.7;端面在 0.3 µm 內 |
通過 | 斜率 −52.34/+52.34 µm/m(各 38,988 個頂點),截距 +0.006 µm;外牆四框 −3.773/+3.773/+3.773/−3.773,內牆 +3.719;外加內 −0.053;凸台 +1.972;端面 −0.008 µm |
| 9 | OP20 成品 A(f-op20-on):OP10 段斜率 +52.4/−52.4 µm/m(±20%),四框 ±3.77 ± 0.6;倒角斜率 −39.5/+39.5(±25%),三框 ∓2.84 ± 0.6;兩個縫框皆負,−3.77 ± 1.0;孔 ±y′ ±1.96、凸台 +y′ 自由側 +1.96(±0.7),孔與凸台 +x 在 0.3 內;沉頭與墊片 −3.06、−3.80、−2.93、−3.64(±1.0);端面、底板端面、底面、中心在 0.3 內 |
通過 | OP10 段 +52.34/−52.34 µm/m(各 37,620 個頂點),四框 +3.773/−3.773/−3.773/+3.773;倒角 −39.44/+39.45 µm/m,三框 −2.823/+2.835/+2.835;縫 −3.773/−3.773;孔 +1.913/−1.955/+x 0.000,凸台 +y′ +1.972、+x +0.088;沉頭與墊片 −3.041、−3.686、−2.922、−3.531;四個零框 0.000 |
| 10 | 匯出→翻面→重建的來回:f-op10-on 的 OP10 框對 f-op20-on 同一面的 OP20 框(五對),中位數差 ≤ 0.5 µm;不過就另做 ×10 放大版拍圖 |
通過 | 五對全為 +0.0000 µm;不需要 ×10 版 |
| 11 | OP20 成品 B(f-op20-seated):OP10 段與縫斜率 −52.4/+52.4 µm/m(±20%);縫框與同側 OP10 段框差 ≤ 0.5 µm;牆端 +5.63 ± 1.0,底板端面在 0.3 內;凸台 +x −3.93 ± 1.0、+y′ 自由側 −1.96 ± 0.7;孔 +x 在 0.3 內;墊片自由側 +3.80、+3.64(±1.0);OP20 切的框與 A 差 ≤ 0.3 µm |
通過 | 斜率 −52.36/+52.36 µm/m(各 42,293 個頂點);縫對段 −3.780 對 −3.769、+3.754 對 +3.769;牆端 +5.615,底板端面 0.000;凸台 +x −4.046、+y′ −2.078;孔 +x 0.000;墊片 +3.419、+3.255;OP20 切的 11 個框與 A 差 0.0000 |
| 12 | 成本:每趟記步數、牆鐘時間、VmHWM;整案一個工作在 3 小時內;停止規則(VmHWM 超過 24 GB,或 OP20 單趟超過 60 分鐘) | 通過 | 14 趟都有紀錄;整案 1 h 43 min 17 s;最大 VmHWM 21.26 GB(f-op20-control);OP20 最長一趟 1,832 s |
- 設計另寫的標準與計畫重疊,判的是計畫的標準。
- 標準 3 的步數:
f-op10的 319,907 步比計畫的 320,360 少 0.141%,原因計畫已經寫明:五段在一趟裡連播,每段第一個快移從上一段的終點出發,不是從重設後的原點。 - 標準 1 的「原物件」:這條連接換了新的 guid,照計畫寫明的判法
movedValuesSame判(難題 11)。
刀尖:每一步都落在公式上¶
這裡的刀尖指每一步的 Cl,也就是實際刀尖在程式座標中的位置。各趟步數相同,每一步的 FileNo、LineNo、ToolId 也相同,所以按索引對齊後直接相減。切削步是名目趟有接觸(IsTouched 為 1)的步:OP10 224,167 步(T1 211,147、T2 6,392、T3 850、T4 5,778),OP20 165,184 步(T1 42,045、T5 33,182、T6 89,186、T7 385、T8 336、T9 50)。
| 比較 | 範圍 | 結果 |
|---|---|---|
| 開減名目,再減 δ(三軸殘差合成的長度) | f-op10-on 的 224,167 個切削步 |
最多 8.33×10⁻¹⁴ mm |
| 同上 | f-op20-on、f-op20-seated 各 165,184 個切削步 |
最多 8.36×10⁻¹⁴ mm |
| 同上 | 全部步(319,907/243,197) | 最多 1.26×10⁻¹³ mm |
| 同上 | 修剪的 t-op10-on(46,515 個切削步)與 t-op20-on(111,162 個) |
7.69×10⁻¹⁴、8.34×10⁻¹⁴ mm |
| δy | 切削步 | OP10 −4.895…+4.895 µm(x −93.49…+93.49);OP20 −4.887…+4.765 µm(x −91.0…+93.34);計畫的界 ±5.16 µm |
| δx | 切削步 | 最多 1.29×10⁻⁷ mm,就是 X(cos θ − 1) |
| δz | 全部步 | 0 |
| δy | 全部步 | 最多 19.95 µm,在程式 X 381、也就是機械 X 0 的不切削步上(381 × sin θ) |
| 仿射擬合 δ = A·p + b | 切削步 | A 與預測每個元素差 ≤ 2.2×10⁻¹⁶;|b| ≤ 2.67×10⁻¹⁴ mm(程式零點沒有偏移) |
| 機械座標 MC.X/Y/Z,開減名目 | 全部步 | 逐位元相同(五個開趟、不標記、四個對照都是) |
| 對照減名目 | 全部步 | 0:10 個序列鍵逐位元相同 |
| B 減 A | 全部步 | Cl 與機械座標逐位元相同;只有 IsTouched 有 63 步不同(B 換的只是毛胚) |
逐步刀尖偏移(開減名目,程式座標):OP10 的 224,167 個與 OP20 的 165,184 個切削步,δy 都落在 −X·sin θ 這條線上(|X| ≤ 93.5 mm 時 ±4.9 µm),δy 的殘差在 3.49×10⁻¹⁴ mm 內(三軸中最大的是 δx,8.33×10⁻¹⁴ mm 內);δx 在 1.3×10⁻⁷ mm 內、δz = 0;每一步的機械座標開關相同。殘差軸正負對稱。HiNC 3.2.46 開發版(含誤差項)。
- 兩次裝夾同一個式子。 樞軸在兩次碰數姿態共用的主軸軸線上,所以 OP10 與 OP20 的刀尖偏移都只看程式 X,x = 0 處為 0;程式零點偏移 |b| ≤ 2.67×10⁻¹⁴ mm。
- 有幾步
IsTouched不同。 開與名目的步、行號、機械座標都相同,只有「這一步碰不碰到料」不同:t-op10-on33 步(開那一趟少碰 17 步,46,498 對 46,515)、f-op10-on268 步、f-op20-on1,397 步、f-op20-seated1,458 步。OP20 差得多,主要在 T6,也就是做沉頭的 D2 球刀(全程 149,270 步):f-op20-on的 1,397 步裡有 1,302 步是 T6,f-op20-seated的 1,458 步裡也是 1,302 步。主因不是毛胚:修剪的 OP20 開與名目用同一個料塊,也有 465 步不同(T6 444 步);A 與 B 刀尖逐位元相同、只差毛胚,只差 63 步(T1 16、T5 47,T6 沒有)。翻轉主要來自刀尖偏移 δ,讓擦邊的步碰到或碰不到料。切削步一律以名目趟為準(難題 12)。 - 殘差是長度。 表裡的殘差是三軸殘差向量的長度;分軸來看,切削步上最大的是 δx 的 8.33×10⁻¹⁴ mm 與 δy 的 3.49×10⁻¹⁴ mm,全部步上 δx 最多 1.07×10⁻¹³ mm。|b| 也是長度。
OP10:一次裝夾只是 ±4.4 µm 的剪切¶
量法:f-op10-on 匯出的工件共 809,659 個頂點,逐點量到 OP10 名目切削件的帶號距離 d(正=留料,Diff 藍;負=過切,Diff 紅)。
| 量 | 量到 | 預測 |
|---|---|---|
| 外長牆的斜率(|y| 55.4–55.6、z −34…−20、|x| ≤ 82;兩側各 38,988 個頂點) | +y −52.34、−y +52.34 µm/m;截距 +0.006 µm | −52.36、+52.36;0 |
| 內長牆的斜率(|y| 51.9–52.1、z −24…−10、|x| ≤ 80;各 38,076 個) | +y +52.34、−y −52.34 µm/m;截距 +0.006 µm | +52.36、−52.36 |
| 外牆四框(x 62–82) | +y x+ −3.773、x− +3.773;−y x+ +3.773、x− −3.773 µm | ∓3.77 |
| 內牆框(+y、x 62–80) | +3.719 µm | +3.72 |
| 牆厚(外 x+ 框加內 x+ 框) | −0.053 µm | −0.05(兩框的 x 範圍差 2 mm) |
| 凸台 (37.5, 37.5) 的 −y 自由側 | +1.972 µm | +1.96 |
| +y 牆的 +x 端面 | −0.008 µm | 0(−1.2×10⁻⁴) |
| 全部頂點,第 1/第 99 百分位 | −4.30/+4.25 µm;47.7% 的頂點在 0.1 µm 內 | 長牆兩端 ±4.42 |
同一道牆的內外兩面整片往同一個方向移(法向相反,所以 d 的正負號相反、大小相同),牆厚不變:只在 OP10 一次裝夾切出的尺寸,這個誤差都不改。端面框 −0.008 µm;地板與凸台、墊片的頂面沒有框,在 Diff 圖上是綠的(預測 0)。

OP10(f-op10-on 對名目,一次裝夾)越過近側長牆往腔內等角看,交替「誤差項開」與「誤差項關」(f-op10-control):看得到的兩個長牆面(遠處那道牆的內側、近處那道牆的外側)都由左下端紅(過切,約 −4.4 µm)經中央綠到右上端藍(留料);兩道牆整片同向平移,所以這兩個面在同一端同色;地板、端面與凸台、墊片的頂面是綠的。同一道牆內外兩面顏色相反,這張圖上看不到,量到的值見上表(+y 外側 x+ −3.773、內側 x+ +3.719 µm),牆厚不變。x+ 在畫面的哪一端沒有核對(這個剪切圖樣繞 Z 轉 180° 看起來一樣),所以只用畫面位置描述。右下另一條「L. 0–1」色條與 Diff 無關。Diff 色階 ±0.005 mm(藍=留料、綠=0、紅=過切);0.25 mm 網格;HiNC 3.2.46 開發版(含誤差項)。
OP20 成品 A:兩次裝夾反向剪切,長牆兩端錯開 8.85 µm¶
量法:f-op20-on 匯出的工件共 853,997 個頂點,量到 OP20 名目切削件(毛胚是 OP10 名目切削件翻面)的帶號距離。座標是 OP20 座標(x 不變、y′ = −y、z′ = −z − 40.536)。
| 量 | 量到 | 預測 |
|---|---|---|
| 長牆 OP10 段的斜率(|y′| 55.4–55.6、z′ −20.5…−7、|x| ≤ 82;兩側各 37,620 個頂點) | +y′ +52.34、−y′ −52.34 µm/m;截距 +0.006 µm | +52.36、−52.36 |
| 49° 倒角的斜率(離設計倒角面 0.05 mm 內、z′ −3.6…−0.5;15,817/15,851 個) | +y′ −39.44、−y′ +39.45 µm/m | −39.49、+39.49(0.7543θ) |
| 縫帶外側的斜率(|y′| 55.4–55.6、z′ −5.9…−5.1;x = 0 兩側各 1,065 個頂點) | +y′ 牆 x > 0 −52.93、x < 0 +52.93 µm/m:V 形,兩端都負 | −θ|x|:∓52.36 |
| 縫框(|x| 62–82) | −3.773/−3.773 µm | −3.77/−3.77 |
| 縫在 z′ −6 的階(外側面:縫帶 z′ −5.9…−5.1 對 OP10 段 z′ −7.0…−6.1) | +y′ 牆 x 62–82 的中位數 7.545 µm;兩條直線擬合在 x 84.5 處相差 8.849 µm;x− 那端 0.000(−y′ 牆反過來,x− 端 8.849) | 2θx:x 72 處 7.54、x 84.5 處 8.849;另一端 0 |
| 縫帶截面(外側面到 y′ 48.165 的內凸緣面,|x| 62–76) | +y′ 牆 x+ 端 −7.225、−y′ 牆 x− 端 −7.221 µm;另兩端 0.000 | −2θ|x|:x 69 處 −7.23 |
| 長牆端面(+y′ 牆 +x 端,OP10 部分) | 0.000 µm | 0 |
| Ø3.3 孔 (37.5, −37.5):+y′/−y′/+x 側 | +1.913/−1.955/0.000 µm | +1.96/−1.96/0 |
| 外面的凸台:+y′ 自由側/+x 側 | +1.972/+0.088 µm | +1.96/0 |
| 2.0 mm 凸台壁(孔壁加凸台面):+y′ 側/+x 側 | +3.885/+0.088 µm | +3.93/0 |
| 沉頭 (72.5, 40) 的 −y′ 側/墊片 −y′ 自由側 | −3.041/−3.686 µm | −3.06/−3.80(同框逐頂點 −3.054/−3.735) |
| 1.2 mm 墊片壁 −y′ 側(孔壁 −2.881 加墊片自由側 −3.686,框內) | −6.567 µm | 中線上 −7.59;同框逐頂點 −6.49 |
| 沉頭 (−69.5, −40) 的 +y′ 側/墊片 +y′ 自由側 | −2.922/−3.531 µm | −2.93/−3.64(逐頂點 −2.925/−3.578) |
| 底面 z′ = 0、底板 +x 端面、中心 Ø5.1 | 0.000 µm | 0 |
| 全部頂點,第 1/第 99 百分位 | −4.32/+4.23 µm |
- 長牆上兩段反向。 OP10 段與 OP20 切的倒角,斜率正負號相反(+52.34 對 −39.44 µm/m);倒角的斜率小,是因為 49° 倒角面的法向只有 0.754 落在 y′ 上。
- 縫取較深的那一刀。 縫帶外側在 x > 0 跟著 OP20 那一刀、在 x < 0 跟著 OP10 那一刀,所以兩端都是負的(V 形)。+y′ 牆在 x > 0 那端,縫的外側是 OP20 切的,背後的內凸緣是 OP10 切的:截面薄 2θ|x|(量到 −7.23 µm),外側面在 z′ = −6 留下 2θx 的階(x 84.5 處 8.849 µm)。另一端外側也是 OP10 那一刀,沒有階、截面不變。縫帶的斜率量到 ±52.93 µm/m,比預測的 52.36 多 1.1%;縫帶只取 0.8 mm 高,原因沒有再追,縫框的中位數照預測(−3.773)。
- 孔與凸台、墊片反向。 孔、沉頭是 OP20 切的(−θx),凸台與墊片是 OP10 切的(在成品上 +θx),夾在中間的壁一側厚、一側薄。x 37.5 的凸台壁 +y′ 側厚 3.885 µm(預測 3.93),+x 側不變(0.088)。x 72.5 的墊片壁 −y′ 側在框內薄 6.567 µm:框橫跨 x ±0.6 mm,小孔與墊片的法向是斜的,所以框內的中位數小於中線上的 7.59;同一個框的逐頂點預測是 −6.49,相符。
- 墊片自由側比計畫值淺約 0.11 µm(−3.686 對 −3.80、−3.531 對 −3.64):計畫值取框中心的 x 與法向,逐頂點預測 −3.735、−3.578 與量到的中位數只差約 0.05 µm(0.049、0.047)。

OP20 成品 A 俯視底面(視線沿 −z′),交替「誤差項開」(f-op20-on)與「誤差項關」(f-op20-control):底面 z′ = 0 與中心 Ø5.1 是綠的;上下兩條 49° 倒角反向漸變(上方那條左藍右紅、下方那條左紅右藍);7 個沉頭與 4 個 Ø3.3 孔的內壁一側藍一側紅、沿 y′ 分開,離中央越遠越明顯;關的那一幀全綠。底面上兩個白亮點是畫布打光的反光,關的那一幀同一位置也有,不是偏差。右下另一條「L. 0–1」色條與 Diff 無關。Diff 色階 ±0.005 mm(藍=留料、綠=0、紅=過切);0.25 mm 網格;HiNC 3.2.46 開發版(含誤差項)。
長牆沿 x 的偏差(每 2 mm 的中位數與第 10–90 百分位,虛線為預測):OP10 的 +y 長牆外側斜率 −52.34 µm/m、內側同向平移(牆厚不變);OP20 A 的 +y′ 長牆 OP10 段 +52.34 µm/m、倒角 −39.44 µm/m,縫取較深那一刀、兩端都負,x+ 端的縫在 z′ −6 和 OP10 段錯開 2θx(x 84.5 處 8.85 µm);B 的 OP10 段與縫同一條線(−52.36 µm/m),縫消失。B 是對夾持的假設,不是誤差項的功能。偏差軸正負對稱;0.25 mm 網格;HiNC 3.2.46 開發版(含誤差項)。
匯出→翻面→重建的來回¶
OP20 的毛胚是 OP10 匯出的網格翻面後重建的。同一個 OP10 切的面,在 OP10 的 Diff 裡和在 OP20 成品的 Diff 裡應該讀到一樣的值;若來回抹掉了幾 µm 的差,計畫就要另做 ×10 的放大版拍圖。
OP10 的框(f-op10-on) |
同一個面在 OP20 的框(f-op20-on) |
中位數(µm) | 差 |
|---|---|---|---|
op10-wall+y-outer-xpos |
op20-wall-y-op10band-xpos |
−3.7727/−3.7727 | +0.0000 |
op10-wall+y-outer-xneg |
op20-wall-y-op10band-xneg |
+3.7727/+3.7727 | +0.0000 |
op10-wall-y-outer-xpos |
op20-wall+y-op10band-xpos |
+3.7727/+3.7727 | +0.0000 |
op10-wall-y-outer-xneg |
op20-wall+y-op10band-xneg |
−3.7727/−3.7727 | +0.0000 |
op10-boss-D3.3(37.499,37.499)-y-free |
op20-boss-D3.3(37.499,-37.499)+y-free |
+1.9722/+1.9722 | +0.0000 |
來回沒有損失,×10 版不需要做;本頁所有數字與畫面都是真實的 0.003°。
OP20 成品 B:坐進機上修出的軟爪,長牆的接縫消失¶
B 假設 OP20 的塞子與軟爪是在同一台機上修出來的,零件坐進去時長牆重新貼齊 X 行程:毛胚是 A 的毛胚再繞 OP20 程式零點的 Z 轉 −2θ。這是對夾持的假設,不是誤差項的功能;程式、機台與誤差都與 A 相同,刀尖與機械座標也與 A 逐位元相同。
| 量 | 量到 | 預測 |
|---|---|---|
| 長牆 OP10 段加縫(z′ −20.5…−5.1;兩側各 42,293 個頂點) | +y′ −52.36、−y′ +52.36 µm/m;截距 0.0002 µm | −52.36、+52.36 |
| 縫帶外側,x = 0 兩側分開 | +y′ 牆 x > 0 −52.39、x < 0 −52.35 µm/m:和 OP10 段同一條線 | −52.36 |
| 縫框對同側的 OP10 段框 | x+:−3.780 對 −3.769(差 −0.011);x−:+3.754 對 +3.769(差 −0.015)µm | 差 0 |
| 縫在 z′ −6 的階 | x 62–82 的中位數 0.011/0.015 µm;外推到牆端 0.004/0.005 µm | 0 |
| 縫帶截面 | 四端 −0.008…+0.008 µm(+y′ 牆 x+ 0.000、−y′ 牆 x− −0.008,另兩端 +0.008、+0.004) | 0 |
| +y′ 牆 +x 端面的 OP10 部分(x 84.2–84.8、y′ 52.3–55.2、z′ −20.5…−7;605 個) | +5.615 µm | +5.63(框內 5.48…5.78,角落 5.81);逐頂點 +5.618 |
| 同一端面的 OP20 部分(z′ −5.9…−5.1;33 個)與兩者的階 | +0.015 µm;階 5.600 µm | 0;2θy′ ≈ 5.63 |
| +y′ 牆 −x 端面的 OP10 部分 | −5.615 µm(內縮) | −5.63 |
| 底板 +x 端面 | 0.000 µm | 0 |
| 凸台 +x 側/+y′ 自由側 | −4.046/−2.078 µm | −3.93/−1.96(逐頂點 −4.029/−2.090) |
| Ø3.3 孔 +x 側 | 0.000 µm | 0 |
| 墊片自由側 (72.5, 40)/(−69.5, −40) | +3.419/+3.255 µm(各 22 個頂點) | +3.80/+3.64(逐頂點 +3.557/+3.588) |
| 1.2 mm 墊片壁:+x 側/−y′ 側 | +4.219/+0.538 µm | 中線上 +4.19(|y′| 40)/0;逐頂點 +4.54/+0.80 |
| OP20 切的 11 個框(倒角、孔、沉頭、底面、底板端面、中心孔),B 減 A | 0.0000 µm | 0 |
| 全部頂點,第 1/第 99 百分位 | −5.55/+4.38 µm |
- 長牆的錯位消失,換到朝 ±x 的面上。 B 的長牆兩段同一條線,縫與 OP10 段只差 0.011–0.015 µm。兩次裝夾的錯位改成沿 x 的 2θy′:+y′ 牆的 +x 端面,OP10 切的部分凸出 5.615 µm,OP20 的 T1 在 Z−6 以上把端面切回 84.5(+0.015),階 5.600 µm;同一道牆的 −x 端面 OP10 部分內縮 −5.615 µm。−y′ 牆反過來:x− 端凸出、階在 z′ −6;兩個內縮端(+y′ 牆 x−、−y′ 牆 x+)的階,預測落在 OP10 端面切到的最深一層 z′ −2.3。除了 +y′ 牆 x+ 端,這些階都沒有框量。
- 凸台與墊片換邊。 凸台壁的錯位從 A 的 ±y′ 側換到 ±x 側(+x 側 −4.046 µm,預測 −3.93);墊片自由側的正負號與 A 相反。
- 墊片自由側是所有框裡離計畫最遠的:+3.419、+3.255 µm,比計畫的 +3.80、+3.64 低約 0.38 µm,比逐頂點預測低 0.14–0.33 µm,仍在 ±1.0 內。墊片只高 0.98 mm,在 0.25 mm 的格子上只有約 4 列。
- OP20 切的面,A 與 B 完全相同:11 個框差 0.0000 µm。俯視底面的擷取(只看得到 OP20 切的面),A 與 B 只有 0.25% 的零件像素差超過 12 個色階(同一角度開對關是 8.3%);正對長牆那張則有 84.6% 不同。

同一鏡頭(正對 +y′ 長牆)交替「照設計框架定位(A)」(f-op20-on)與「坐進機上修出的軟爪(B)」(f-op20-seated,毛胚再繞程式零點轉 −2θ):A 的 OP10 段左藍右紅、倒角左紅右藍、縫兩端偏紅;B 的 OP10 段反過來左紅右藍,和倒角同向,縫與 OP10 段連成同一片顏色(縫消失);倒角在 A、B 相同。B 是對夾持的假設,不是誤差項的功能。Diff 色階 ±0.005 mm(藍=留料、綠=0、紅=過切);0.25 mm 網格;HiNC 3.2.46 開發版(含誤差項)。

俯視底面,交替 A(照設計框架定位)與 B(坐進機上修出的軟爪):看得到的都是 OP20 切的面(底面、倒角、沉頭、孔、中心孔),A 與 B 幾乎逐像素相同(零件上只有 0.25% 的像素差超過 12 個色階,都在邊緣;同一角度開對關是 8.3%):坐法只改變 OP10 切的面。B 是對夾持的假設,不是誤差項的功能。Diff 色階 ±0.005 mm(藍=留料、綠=0、紅=過切);0.25 mm 網格;HiNC 3.2.46 開發版(含誤差項)。
每個框:量到對預測¶
計畫的每個量測框(OP10 的 7 個、OP20 的 22 個):實測中位數(OP10 與 A 藍、B 橘)、計畫在框中心的預測(空心菱形)與逐頂點預測 u·n 的中位數(十字)。B 只改 OP10 切的框(長牆、凸台、墊片、牆端),OP20 切的框與 A 相同。B 是對夾持的假設,不是誤差項的功能。偏差軸正負對稱 ±6 µm;0.25 mm 網格;HiNC 3.2.46 開發版(含誤差項)。
「逐頂點預測」是把該次裝夾的位移 u 投到名目切削件最近三角形的法向 n 上,再取框內的中位數。它用的是 0.25 mm 網格刻面的法向,在倒角上偏約 ±0.03 µm、在 Ø3.3 孔的 +x 側偏 0.15 µm(量到 0.000),只當參考;判定一律用計畫在框中心的值。
OP10 的 7 個框(f-op10-on,µm)
| 框 | 誰切的 | 頂點 | 量到 | 計畫預測 | 逐頂點預測 |
|---|---|---|---|---|---|
op10-wall+y-outer-xpos(+y 長牆外側 x+) |
OP10 | 4,617 | −3.773 | −3.77 | −3.770 |
op10-wall+y-outer-xneg(+y 長牆外側 x−) |
OP10 | 4,617 | +3.773 | +3.77 | +3.770 |
op10-wall-y-outer-xpos(−y 長牆外側 x+) |
OP10 | 4,617 | +3.773 | +3.77 | +3.770 |
op10-wall-y-outer-xneg(−y 長牆外側 x−) |
OP10 | 4,617 | −3.773 | −3.77 | −3.770 |
op10-wall+y-inner-xpos(+y 長牆內側 x+) |
OP10 | 4,161 | +3.719 | +3.72 | +3.718 |
op10-boss-D3.3(37.499,37.499)-y-free(凸台 −y 自由側) |
OP10 | 90 | +1.972 | +1.96 | +1.962 |
op10-wallend-x+(+y 牆的 +x 端面) |
OP10 | 171 | −0.008 | 0 | +0.001 |
OP20 的 22 個框,A(f-op20-on)與 B(f-op20-seated),µm
| 框 | 誰切的 | 頂點 | A 量到 | A 計畫 | A 逐頂點 | B 量到 | B 計畫 | B 逐頂點 |
|---|---|---|---|---|---|---|---|---|
op20-wall+y-op10band-xpos(+y′ 長牆 OP10 段 x+) |
OP10 | 4,455 | +3.773 | +3.77 | +3.770 | −3.769 | −3.77 | −3.758 |
op20-wall+y-op10band-xneg(+y′ 長牆 OP10 段 x−) |
OP10 | 4,455 | −3.773 | −3.77 | −3.770 | +3.769 | +3.77 | +3.770 |
op20-wall-y-op10band-xpos(−y′ 長牆 OP10 段 x+) |
OP10 | 4,455 | −3.773 | −3.77 | −3.770 | +3.769 | +3.77 | +3.770 |
op20-wall-y-op10band-xneg(−y′ 長牆 OP10 段 x−) |
OP10 | 4,455 | +3.773 | +3.77 | +3.770 | −3.769 | −3.77 | −3.758 |
op20-chamfer+y-xpos(+y′ 倒角 x+) |
OP20 | 1,377 | −2.823 | −2.84 | −2.854 | −2.823 | −2.84 | −2.854 |
op20-chamfer+y-xneg(+y′ 倒角 x−) |
OP20 | 1,377 | +2.835 | +2.84 | +2.807 | +2.835 | +2.84 | +2.807 |
op20-chamfer-y-xpos(−y′ 倒角 x+) |
OP20 | 1,377 | +2.835 | +2.84 | +2.807 | +2.835 | +2.84 | +2.807 |
op20-seam+y-xpos(+y′ 縫 x+) |
較深那一刀 | 243 | −3.773 | −3.77 | −3.770 | −3.780 | −3.77 | −3.770 |
op20-seam+y-xneg(+y′ 縫 x−) |
較深那一刀 | 243 | −3.773 | −3.77 | −3.770 | +3.754 | +3.77 | +3.770 |
op20-hole-D3.3(37.499,-37.499)+y(Ø3.3 孔 +y′ 側) |
OP20 | 95 | +1.913 | +1.96 | +1.911 | +1.913 | +1.96 | +1.911 |
op20-hole-D3.3(37.499,-37.499)-y(Ø3.3 孔 −y′ 側) |
OP20 | 95 | −1.955 | −1.96 | −1.958 | −1.955 | −1.96 | −1.958 |
op20-hole-D3.3(37.499,-37.499)+x(Ø3.3 孔 +x 側) |
OP20 | 95 | 0.000 | 0 | +0.148 | 0.000 | 0 | +0.148 |
op20-boss-D3.3(37.499,-37.499)+y-free(凸台 +y′ 自由側) |
OP10 | 85 | +1.972 | +1.96 | +1.962 | −2.078 | −1.96 | −2.090 |
op20-boss-D3.3(37.499,-37.499)+x(凸台 +x 側) |
OP10 | 85 | +0.088 | 0 | +0.023 | −4.046 | −3.93 | −4.029 |
op20-csink-D2.7(72.504,40.001)-y(沉頭 (72.5, 40) −y′ 側) |
OP20 | 61 | −3.041 | −3.06 | −3.054 | −3.041 | −3.06 | −3.054 |
op20-pad-D2.7(72.504,40.001)-y-free(墊片 (72.5, 40) −y′ 自由側) |
OP10 | 21/22 | −3.686 | −3.80 | −3.735 | +3.419 | +3.80 | +3.557 |
op20-csink-D2.7(-69.496,-39.999)+y(沉頭 (−69.5, −40) +y′ 側) |
OP20 | 59 | −2.922 | −2.93 | −2.925 | −2.922 | −2.93 | −2.925 |
op20-pad-D2.7(-69.496,-39.999)+y-free(墊片 (−69.5, −40) +y′ 自由側) |
OP10 | 21/22 | −3.531 | −3.64 | −3.578 | +3.255 | +3.64 | +3.588 |
op20-wallend-x+(+y′ 牆 +x 端面,OP10 部分) |
OP10 | 605 | 0.000 | 0 | +0.002 | +5.615 | +5.63 | +5.618 |
op20-floorend-x+(底板 +x 端面) |
OP20 | 2,583 | 0.000 | 0 | +0.001 | 0.000 | 0 | +0.001 |
op20-floorface(底面 z′ = 0) |
OP20 | 19,521 | 0.000 | 0 | 0.000 | 0.000 | 0 | 0.000 |
op20-centre-D5.1(中心 Ø5.1) |
OP20 | 1,616 | 0.000 | 0 | 0.000 | 0.000 | 0 | 0.000 |
每個框只在它註記的 run set 裡判。對照趟 f-op20-control 的 22 個框,中位數全在 ±2.91×10⁻⁷ µm 內。
公差帳:這台機要歪到多少,這個機殼才會出問題¶
原案例的圖面沒有公差欄,所以一般公差取 ISO 2768-m。只在一次裝夾裡切出的尺寸(z′ −8 以下 3.5 mm 的牆、2.5 mm 的溝壁),兩面一起移,不變;2.0 mm 的底厚兩面分在兩次裝夾,但都是水平面,X–Y 垂直度不動 z,也不變。會變的是兩面分在兩次裝夾、又不是水平面的尺寸。
兩次裝夾各切一面的尺寸,0.003° 在最壞處用掉多少 ISO 2768-m 公差(預測):A 的 1.2 mm 墊片壁 7.6%(θ 到 0.040° 才用完)、2.0 mm 凸台壁 3.9%、縫帶截面 4.4%(截面在 |x| 到約 78 是 7.335 mm、x 80–84.5 約 9.3–9.5 mm,都屬 ±0.2;最壞處在 x 84.5);B 的墊片壁 4.2%、凸台壁 3.9%、縫帶截面不變;兩面之間的階(A 的接縫、B 的牆端)不是尺寸,另列實測。B 是對夾持的假設,不是誤差項的功能。
| 尺寸 | 兩面各是哪次切的 | 一般公差 | A 最壞處(預測) | A 用掉 | θ 到多少才用完 | B 最壞處(預測) | B 用掉 | 實測核對 |
|---|---|---|---|---|---|---|---|---|
| Ø2.7 孔外的墊片壁 1.2 mm | 孔 OP20、墊片 OP10 | ±0.1 | 7.59 µm(x 72.504,±y′ 側) | 7.6% | A 0.040°(13 倍);B 0.072° | 4.19 µm(|y′| 40,±x 側) | 4.2% | A −y′ 側框內 −6.57 µm(同框逐頂點 −6.49);B +x 側 +4.22 µm |
| Ø3.3 孔外的凸台壁 2.0 mm | 孔 OP20、凸台 OP10 | ±0.1 | 3.93 µm(x 37.5,±y′ 側) | 3.9% | 0.076° | 3.93 µm(|y′| 37.5,±x 側) | 3.9% | A +y′ 側 +3.88 µm;B +x 側 −4.05 µm |
| 縫帶的截面 7.335–9.5 mm(外側面到內凸緣,z′ −6…−4.52;|x| 到約 78 是 7.335,x 80–84.5 約 9.3–9.5) | 外側 OP20、內凸緣 OP10 | ±0.2 | 8.85 µm(x 84.5,約 9.5 mm 那段;7.335 mm 那段最壞約 8.2 µm) | 4.4%(7.335 mm 那段約 4.1%) | 0.068° | 0 | 0 | A |x| 62–76 −7.23 µm(預測 −7.23);B 四端都在 0.008 µm 內 |
| 兩面之間的階:A 長牆外側在 z′ −6;B 牆端在 z′ −6 | 上 OP20、下 OP10 | 不是尺寸 | 8.85 µm(x 84.5) | — | — | 5.81 µm(角落) | — | A 8.849 µm(x 84.5);B 5.600 µm(y′ 52.3–55.2) |
- A 最先吃公差的是墊片壁。 預測 1.2 mm 的壁在 x 72.5 處中線上薄 7.59 µm,是 ±0.1 的 7.6%(框內量到 6.57 µm,同框逐頂點預測 6.49);這台機要歪到 0.040°,也就是現在的 13 倍,才會用完。計畫原本把縫帶的牆厚排第一,那是把縫帶當成 3.5 mm 的牆;縫帶背後的內凸緣讓截面在 |x| 到約 78 是 7.335 mm、x 80–84.5 約 9.3–9.5 mm,都屬 6–30 mm 那一級的 ±0.2,所以它最壞處 x 84.5 薄 8.85 µm,只是 4.4%(7.335 mm 那一段最壞約 8.2 µm、約 4.1%)(難題 7)。
- 最大的錯位是階,不是尺寸。 A 的接縫在 x 84.5 處錯開 8.849 µm,是零件上最大的錯位;但兩個面之間的階沒有尺寸,案例採用的 ISO 2768-m(長度與角度的一般公差)不給它公差。計畫拿它對 ±0.1 算出的 8.9% 不成立;計畫把 B 牆端的階排第一(角落 5.81 µm,5.8%,0.052°),也是拿階對 ±0.1,同樣不成立。B 最先吃公差的是墊片壁,預測 4.19 µm,4.2%(0.072°)。圖面若另訂形狀公差,那是另一本帳,本案沒有算。
- B:墊片壁換到 ±x 側,用掉 4.2%;凸台壁一樣 3.9%;縫帶截面不變。
- 6–30 mm 的 ±0.2 是 ISO 2768-1 m 級的值,這次沒有重讀標準原文;原案例的報告只寫到 0.5–6 mm 的 ±0.1。
控制器知道誤差(不標記,修剪)¶
t-op10-unmarked 清掉 XYsq 的標記,開關仍開著,G54 不變。機台還是那台 X–Y 差 0.003° 的機台,控制器的模型裡也有了這個誤差。可是程式是一般三軸的 G54/G43/G81:機械座標只由程式字語、工作偏移與刀長決定,控制器不去讀機台鏈,所以沒有東西可以補(標記會改變什麼)。
- 逐步:10 個序列鍵(Cl、MC、FileNo、LineNo、IsTouched、ToolId)與有標記的
t-op10-on逐位元相同。 - 零件:
Diff--Stats八個數相同;兩份匯出網格之間,每個頂點的距離最多 4.97×10⁻¹⁰ mm(搜尋值,是上界);兩者對名目的距離檔逐位元相同。
整案沒有跑不標記(它必與開相同),也沒有不標記的擷取,所以沒有「控制器不知道誤差(標記)/控制器知道誤差(不標記)」的交替圖(難題 10)。真機上要讓這個零件切對,得把機台重新對正;真實控制器的垂直度補償表 HiNC 不模擬(機台幾何誤差)。
對照趟與網格距離的極值¶
雜訊底。 對照趟(開關關、做 Diff)就是名目趟再播一次:四趟對照的刀尖、機械座標與 IsTouched 都與名目趟逐位元相同。它們匯出的工件 100% 的頂點在 0.1 µm 內(t-op10-control 54,336、t-op20-control 42,706、f-op10-control 797,258、f-op20-control 842,613 個);整案兩趟對照的全部頂點都在 ±5.0×10⁻⁷ µm 內,框的中位數最大 3.4×10⁻⁷ µm。誤差的效果(±4.4 µm)比雜訊底大七個數量級。
網格距離超過 10 µm 的頂點。 整案三趟誤差項開的匯出件,各有一小部分頂點離名目切削件超過 10 µm,比任何框的值大得多。每一個都在伺服器上以點到三角形的精確距離對名目切削件重算過:
| 趟 | 頂點 | > 10 µm | 占比 | 負/正 | 在 ≥ 50 個頂點的長排裡 | 最大 |d| | 全部頂點,第 1/第 99 百分位 |
|---|---|---|---|---|---|---|---|
f-op10-on |
809,659 | 3,303 | 0.41% | 2,829/474 | 86%(5 排) | 162.7 µm | −4.30/+4.25 µm |
f-op20-on(A) |
853,997 | 4,868 | 0.57% | 4,390/478 | 90%(9 排) | 176.9 µm | −4.32/+4.23 µm |
f-op20-seated(B) |
851,743 | 4,466 | 0.52% | 4,388/78 | 97%(11 排) | 157.3 µm | −5.55/+4.38 µm |
f-op10-control、f-op20-control |
797,258、842,613 | 0 | 0 | — | — | ≤ 5.0×10⁻⁷ µm | −4.9/+4.9、−4.9/+4.7(×10⁻⁷ µm) |
- 全是真的。 精確距離與搜尋值一致,沒有一個是最近 12 個三角形搜尋的假象。
- 多數在銳邊上順 x 排成長排(86%/90%/97%):溝的兩條邊、牆頂、內牆接內凸緣的那條線、OP10 外輪廓最低一刀的那條邊。每一排只在一道牆的半邊,也就是誤差把那個面往材料裡推的那半邊(B 有 2 個頂點例外);最長的幾排從 |x| = 1 mm 就出現,那裡的誤差只有 0.05 µm。其餘大多在牆端 |x| ≥ 78(477 個中的 452 個、489 個中的 448 個、132 個中的 82 個),另有一些在墊片、內凸緣與內牆台階的角。
- 大小與誤差無關。 OP10 的 5 排、A 9 排裡的 7 排、B 11 排裡的 7 排,沿全長同一個大小(差 ≤ 1 µm),不隨 x 變,而誤差從 x = 1 mm 的 0.05 µm 變到牆端的 4.4 µm;其餘幾排沿 x 變 2.7–112 µm(A 在 z′ −8 那排 23.6 µm、z′ −37.5 那排 105 µm;B 四排 2.7–112 µm)。
- 最大值是格子的半對角線。 176.9 µm 只比 0.25 mm 格的 0.25/√2 = 176.8 µm 多 0.14 µm,沒有任何頂點超過它 0.2 µm 以上。
- 讀法。 邊移了一點點以後,0.25 mm 的網格在那條銳邊上,就換到格子的另一個角去切那個刻面。這是由位置、半邊、等大與最大值推論的,沒有讀網格的程式碼。照這個讀法,它是 0.25 mm 網格在邊上的性質,所以不當切削偏差用;本頁的大小一律用避開邊的框與第 1、第 99 百分位談(難題 9)。
離名目切削件超過 10 µm 的頂點(都在伺服器上以點到三角形的精確距離重算過,全部是真的差異):OP10 3,303 個(0.41%)、A 4,868 個(0.57%)、B 4,466 個(0.52%),其中 86%/90%/97% 排成 5/9/11 條沿銳邊、順著 x 的長排;每排只在一道牆的半邊,也就是誤差把那個面往材料裡推的那半邊(B 有 2 個頂點例外);OP10 的 5 排與 A、B 各 7 排沿全長同一個大小(差 ≤ 1 µm),與誤差在那裡的大小無關;最大 176.9 µm,等於 0.25 mm 格的角到對角線的距離 0.25/√2 = 176.8 µm(多 0.14 µm)。讀法(推論):網格在銳邊上換了一種切法,不當切削偏差用。B 是對夾持的假設,不是誤差項的功能。距離軸正負對稱;HiNC 3.2.46 開發版(含誤差項)。
刀把入鏡¶

刀把入鏡:f-op20-on 的成品連同 Diff 放回畫布後,播 pose/pose-t5-chamfer.nc:T5(D6 球刀,懸伸 30 mm)連 BT40 熱縮刀把停在 +y′ 倒角 x+ 端上方 10 mm(刀尖 X80 Y53.33 Z7.507),主軸已停;零件坐在 OP20 的塞子與軟爪上(灰)。這支停刀程式不切料。右下另一條「L. 0–1」色條與 Diff 無關。Diff 色階 ±0.005 mm(藍=留料、綠=0、紅=過切);0.25 mm 網格;HiNC 3.2.46 開發版(含誤差項)。

上一張的局部:BT40 熱縮刀把的錐形鼻部、T5 D6 球刀,與底下 +y′ 倒角 x+ 端那一角(+y′ 倒角在這個角度只看得到邊緣);畫面右下帶顏色的,是另一側(−y′)的倒角(藍)與長牆(紅)在 x+ 端的 Diff。Diff 色階 ±0.005 mm;0.25 mm 網格;HiNC 3.2.46 開發版(含誤差項)。
做 Diff 的十趟的 Diff--Stats
| 趟 | 回報的葉 | 比較前的表面葉 | 隨需展開 | 新節點 | NaN 葉 | 量到的量測線 | 沒量到的量測線 | 目標三角形 |
|---|---|---|---|---|---|---|---|---|
| t-op10-on | 122,164 | 51,916 | 22,896 | 93,144 | 84 | 476,375 | 2,129 | 103,488 |
| t-op10-unmarked | 122,164 | 51,916 | 22,896 | 93,144 | 84 | 476,375 | 2,129 | 103,488 |
| t-op10-control | 122,336 | 51,916 | 22,996 | 93,416 | 0 | 478,002 | 1,091 | 103,488 |
| t-op20-on | 152,292 | 42,534 | 35,535 | 145,293 | 0 | 585,995 | 63 | 79,204 |
| t-op20-control | 152,202 | 42,534 | 35,480 | 145,148 | 0 | 585,706 | 24 | 79,204 |
| f-op10-control | 795,156 | 794,646 | 194 | 704 | 10 | 3,146,786 | 10,271 | 1,587,620 |
| f-op10-on | 806,806 | 806,298 | 191 | 699 | 192 | 3,150,711 | 7,243 | 1,587,620 |
| f-op20-control | 874,965 | 840,366 | 11,533 | 46,132 | 443 | 3,474,111 | 675 | 1,674,700 |
| f-op20-on | 886,611 | 852,012 | 11,538 | 46,137 | 405 | 3,466,507 | 2,325 | 1,674,700 |
| f-op20-seated | 884,729 | 844,955 | 13,600 | 53,374 | 0 | 3,468,134 | 3,829 | 1,674,700 |
名目趟不做 Diff。NaN 葉占回報的葉最多 6.9×10⁻⁴(t-op10-on、t-op10-unmarked)。整案的目標三角形比匯出的 STL 少:OP10 1,587,620 對 1,587,794(少 174)、OP20 1,674,700 對 1,674,804(少 104);修剪的兩份與 STL 相同。每一趟做 Diff 的都有一則 Diff--TargetNotClosed(HiNC 回報理想幾何的網格不封閉;理想幾何是名目趟匯出的切削件),名目趟沒有。
執行成本¶
以下都在共用的 32 執行緒伺服器上,以 HiNC 3.2.46 開發版(含誤差項)的私有實例執行,每趟開始前重啟實例。VmHWM 是行程常駐記憶體的最高水位,紀錄以 bytes 記:GB = 10⁹ B,GiB = 2³⁰ B。
| 趟 | 網格 | 步數 | 牆鐘時間 | VmHWM(GB) | (GiB) | Diff 與匯出 |
|---|---|---|---|---|---|---|
| t-op10-nominal | 1 mm | 58,993 | 25.0 s | 0.76 | 0.71 | 匯出 |
| t-op10-on | 1 mm | 58,993 | 25.0 s | 0.87 | 0.81 | Diff、匯出、記錄毛胚 |
| t-op10-control | 1 mm | 58,993 | 25.0 s | 0.88 | 0.82 | Diff、匯出、記錄毛胚 |
| t-op10-unmarked | 1 mm | 58,993 | 25.0 s | 0.81 | 0.75 | Diff、匯出、記錄毛胚 |
| t-op20-nominal | 1 mm | 243,197 | 125.1 s | 2.30 | 2.15 | 匯出 |
| t-op20-on | 1 mm | 243,197 | 125.1 s | 2.41 | 2.25 | Diff、匯出、記錄毛胚 |
| t-op20-control | 1 mm | 243,197 | 125.1 s | 2.42 | 2.25 | Diff、匯出、記錄毛胚 |
| f-op10-nominal | 0.25 mm | 319,907 | 545.6 s | 3.96 | 3.69 | 匯出 |
| f-op10-control | 0.25 mm | 319,907 | 545.5 s | 4.99 | 4.65 | Diff、匯出、記錄毛胚 |
| f-op10-on | 0.25 mm | 319,907 | 530.5 s | 4.98 | 4.64 | Diff、匯出、記錄毛胚 |
| f-op20-nominal | 0.25 mm | 243,197 | 1,822.0 s | 20.66 | 19.24 | 匯出 |
| f-op20-control | 0.25 mm | 243,197 | 1,832.0 s | 21.26 | 19.80 | Diff、匯出、記錄毛胚 |
| f-op20-on | 0.25 mm | 243,197 | 360.4 s | 21.24 | 19.79 | Diff、匯出、記錄毛胚 |
| f-op20-seated | 0.25 mm | 243,197 | 450.5 s | 21.25 | 19.79 | Diff、匯出、記錄毛胚 |
-
對計畫的估計:
t-op10估每趟 1–2 分、1–5 GB,實際 25 s、0.76–0.88 GB,都低於估計。t-op20估 2–4 分、1.5–5 GB,實際 125 s、2.30–2.42 GB,在估計內。f-op10估 4–10 分、3–8 GB,實際 8.8–9.1 分、3.96–4.99 GB,在估計內。f-op20估 20–30 分、4–12 GB,實際 6.0–30.5 分、20.66–21.26 GB:名目與對照略超過 30 分、開的兩趟遠低於;記憶體超出估計(難題 13)。- 整案合計估 1.6–2.5 小時,實際 1 h 43 min。
-
停止規則沒有碰到:最大 VmHWM 21.26 GB,低於 24 GB;OP20 最長一趟 1,832 s,不到 60 分鐘。
- OP20 有兩趟慢得多。 同一個實例建置、同樣 243,197 步、記憶體峰值相近,名目與對照各 1,822、1,832 s,開的 A、B 各 360.4、450.5 s,合起來約 4.5 倍。慢的兩趟正好是毛胚取自 OP10 名目切削件的那兩趟。這些播放沒有記下建毛胚花了多久;在現在的 HiNC 上,從那份網格建毛胚以 1 mm 格距要約 27 分鐘,A 的毛胚在 1 mm 與 0.25 mm 都不到 3.5 分鐘,差不多就是慢的兩趟多出來的時間,所以多半就是它(推論);那份網格為什麼建得慢這麼多,沒有查。牆鐘照量到的報;它既不是誤差項的代價,也不是 HiNC 的效能數字。
- 總時間:建置 2026-10-07 03:38:47–03:38:52;修剪七趟 03:40:36–03:49:21(525 s,其中播放 475.3 s);整案七趟一個工作 17:56:16–19:39:33(6,197 s=1 h 43 min 17 s,其中播放 6,086.5 s;OP10 最後一趟到 OP20 第一趟之間的 32 s,用在翻面毛胚與重啟實例)。工作在這之前等共用鎖,等待不算在內。
- Diff 與毛胚紀錄的記憶體:OP10 的對照與開比名目多 1.02–1.03 GB;OP20 只多 0.58–0.60 GB:四趟的峰值都在 20.66–21.26 GB,執行這一案的代理看到它出現在從網格建毛胚的頭幾分鐘(紀錄只有峰值)。
- 與原案例的成本不能直接比:原案例驗收時物理開、每段重設一次、Diff 對的是設計件。
- 牆鐘時間含匯出、Diff、記錄毛胚與建毛胚,也含伺服器當時別的負載。
它說明了什麼¶
對加工工程師。
- 同一台機、同一個 0.003°:一次裝夾裡,只是朝 ±Y 的面整片斜了 ±4.4 µm,牆厚、溝壁、底厚都不變;零件翻面以後,兩次裝夾做出的面錯開兩倍(長牆兩端 8.85 µm),孔外的薄壁一側厚、一側薄。程式、機械座標與碰數看起來全都對。
- 錯位落在哪,看 OP20 怎麼抓零件:照設計框架定位時,落在長牆的接縫與孔的 ±y 兩側;坐進同一台機上修出的軟爪或塞子時,長牆接縫消失,錯位換到牆端與孔的 ±x 兩側。
- 這個機殼不需要更好的機台:最緊的 1.2 mm 墊片壁,預測只用掉 ±0.1 的 7.6%,機台要歪到 0.040° 才會用完。
- 一般三軸程式下,運動學校正過的控制器也沒有東西可改(修剪的不標記趟逐位元相同);要改,就得把機台重新對正,或用控制器自己的垂直度補償表,這部分 HiNC 不模擬。
- 在 HiNC 裡,可以把一台機量到的常數誤差放進模型;上機之前,就看得到它跨兩次裝夾、在自己零件上的樣子與大小。
對老師或學生。
- 為什麼翻面會讓同一個誤差加倍:繞 Z 的剪切,在繞 X 翻面的零件上變號。
- X–Y 垂直度只動朝 ±Y 的面,大小與 x 成正比;表面只留下偏移的法向分量(49° 倒角 0.754、沉頭錐 0.806);兩次都切的地方,取較深的那一刀。
- 誤差要放在兩個滑座之間才有形狀誤差,放在 X 的上游只是碰數會吃掉的平移;樞軸的選法就是碰數點的選法,一個樞軸可以同時對兩次裝夾成立。
- 標記與不標記,分別對應沒校正與校正過的運動學,而這個差別只在 RTCP、傾斜工作平面或 CL 播放下才存在。
對評估這種做法的人。
- 建置加十四趟播放;整案一個工作 1 h 43 min,OP20 每趟記憶體峰值 21 GB 上下。
- 預測在第一次播放前寫好:刀尖公式對到 8.36×10⁻¹⁴ mm;OP10 的 7 個框、A 與 B 各 22 個框,量到的中位數離計畫值最多 0.39 µm(B 的墊片),其餘都在 0.12 µm 內;翻面的來回差 0.0000 µm。
- 要說清楚的地方都照量到的寫:計畫〈公差帳〉的錯、網格沿銳邊的長排、OP20 慢的兩趟,以及超出估計的記憶體。
誠實的限制¶
- 只放了一個誤差,而且只能是常數。 真實的三軸機同時還有別的垂直度(X–Z、Y–Z)、各軸的角度誤差,以及隨位置變的定位與真直度誤差。誤差項只能表達常數誤差;隨位置變化的誤差(定位、真直度、體積誤差表)、背隙、伺服不匹配與熱變形都表達不了,真實控制器的補償表也不模擬(機台幾何誤差)。
- 大小與正負號是選的。 0.003° 是典型值,不是哪一台機的量測;所有偏差都與 θ 成正比。θ 取另一個方向,偏差全部反號(哪一端藍、哪一端紅對調),大小不變。
- 碰數是假設的。 樞軸放在通過程式零點的主軸軸線上,等於假設兩次裝夾都在程式零點碰數。在別處碰數,零件只多一個常數平移,偏差為零的那條線跟著移,斜率不變。
- B 是對夾持的假設。 模型只把毛胚轉 −2θ;軟爪與塞子怎麼修、零件坐進去的接觸誤差、夾持變形都不在模型裡。現場的坐法也可能介於 A 與 B 之間。
- 只看幾何。 物理關:切削力、刀具撓曲、薄牆被推開、夾持力與熱都不在範圍內。原案例記下了底殼長刀在精修時的撓曲(第 95 百分位在 22 µm 內,單步更大),比這裡的 ±4.4 µm 大;真機上兩者疊加。
- 只做底殼。 上蓋與前後面板也是兩次裝夾,這一案沒有跑。
- 0.25 mm 網格的讀法。 銳邊上 0.41–0.57% 的頂點讀到 10–177 µm;精確距離確認兩份網格在那裡真的相差這麼多,「網格在邊上換了一種切法」是推論(難題 9)。墊片只高 0.98 mm、縫帶 1.48 mm,在格子上只有幾列。框都避開邊,大小用框的中位數與第 1、第 99 百分位。
- 逐頂點預測只當參考。 它用名目網格 0.25 mm 刻面的法向,在倒角上偏約 ±0.03 µm、在 Ø3.3 孔的 +x 側偏 0.15 µm。
- 有兩個預測沒有量。 A 的倒角邊長,在縫取 OP10 那一刀的那端(+y′ 倒角 x < 0、−y′ 倒角 x > 0)預測會短 2θ|x|(x 84.5 處 8.85 µm);B 兩個內縮端在 z′ −2.3 的階。都沒有框量。
- Diff 的目標三角形比 STL 少(OP10 少 174、OP20 少 104,修剪的相同),成因沒查;每一趟做 Diff 的都有一則
Diff--TargetNotClosed。不影響任何結論。 - 紀錄只收警告以上。 更低層級的訊息沒有收。收下的警告裡,整案 OP20 四趟各有一則
ToolChange--UnsafePose,是這些播放用的開發版報的假警告:那個開發版的步數還沒算進排隊等著切削的步,換刀要查的那幾步就往前滑到換刀之前最後的切削上。這支程式每次換刀時主軸都在機械 Z0、刀尖離毛胚 340 mm 以上;現在的 HiNC 在名目那一趟的毛胚上以 1 mm、在 A 的毛胚上以 0.25 mm 重播整支 OP20 程式,一則都沒有。 - 6–30 mm 的 ±0.2 沒有重讀標準原文。 它是 ISO 2768-1 m 級的值;原案例的報告只寫到 0.5–6 mm 的 ±0.1。
- 計畫列的一張圖沒有拍:A 從腔內等角看的那一張。凸台、墊片與孔同側同色,只由框值證明(難題 7)。
- 牆鐘時間含匯出、Diff、記錄毛胚、建毛胚,也含伺服器當時別的負載。
讀者可以帶到自己案例的¶
- 把誤差放在一條自己的連接上,緊接在它所屬那一軸的上游;兩個滑座之間的垂直度,就要真的放在兩個滑座之間:放在下面那個滑座的上游,兩個滑座一起轉,只剩碰數會吃掉的平移(誤差項放在哪裡 (Where an Error Term Goes),英文,未鏡像)。
- 旋轉誤差的樞軸,放在碰數姿態的主軸軸線上。 那裡的偏差就是 0,名目的工作偏移就是碰數會找到的值;兩次裝夾在同一條鉛直線上碰數時,一個樞軸對兩次都成立(程式原點對齊)。
- 翻面時,把切出的工件當毛胚帶過去:匯出後用原案例同一個矩陣翻面,先在幾個框上核對來回,再讀第二次裝夾。
- 預期機台誤差在翻面的零件上變號,兩次裝夾之間的錯位加倍。錯位落在哪,看夾持:不知道現場怎麼夾,就把可能的坐法都跑,並寫明哪一種是假設。
- 公差要看兩面分在兩次裝夾的尺寸,截面要從設計模型讀,不要照計畫的假設;兩個面之間的階不是尺寸。
- 每個專案都以自己的名目切削件當理想幾何。 這樣 Diff 才只顯示誤差,不含刀路本身的痕跡。
- 切削步以名目趟為準,因為誤差本身就會改變哪些步碰到料。
- 網格距離的極值,先用點到三角形的精確距離核對;判定用的框避開銳邊。 這裡沿邊的長排讀到 0.177 mm,是格子的半對角線,而誤差只有 4.4 µm。
- 一般三軸程式下,標不標記都不改切削:鏈上的誤差全都切進零件;只有 RTCP、傾斜工作平面或 CL 播放,控制器才能補償(標記會改變什麼)。
- 從三角形很多的網格建毛胚,要預留記憶體:這裡 OP20 每趟的記憶體峰值約 21 GB,執行這一案的代理看到峰值出現在用約 160 萬個三角形的 STL 建毛胚的時候;同樣 0.25 mm 網格、毛胚是一般料塊的 OP10 各趟是 3.96–4.99 GB,修剪的 OP20 以 12 個三角形的料塊、1 mm 網格跑,則是 2.30–2.42 GB。
來源與授權¶
- 來源: Antmicro,Enclosure for Antmicro baseboard with NVIDIA Jetson AGX Thor,https://github.com/antmicro/jetson-agx-thor-baseboard-enclosure(
main分支,2026-09-30 讀取);權利人是 Antmicro。連結失效時可搜尋:antmicro jetson-agx-thor-baseboard-enclosure、cnc-milled-bottom-shell-al。 - 授權: Apache License 2.0。README 寫明「Copyright (c) 2026 Antmicro」,並在 Licensing 一節寫「This project is published under the Apache-2.0 license.」(本專案以 Apache-2.0 授權發佈。)授權依原樣提供素材,不附任何保證。
- 姓名標示(原案例來源紀錄的原文):「Enclosure design (c) 2026 Antmicro, Apache-2.0, https://github.com/antmicro/jetson-agx-thor-baseboard-enclosure. Machining set-up by Tech Coordinate's agent (changes: stock, fixtures, toolpaths).」(機殼設計 (c) 2026 Antmicro,Apache-2.0;加工設定由超級高科技的代理完成,改動:毛胚、夾具、刀路。)NVIDIA 的產品名只用來說明這個機殼裝的是什麼。
- 誤差量級的參考: M. Holub、R. Jankovych、J. Vetiska、J. Sramek、P. Blecha、J. Smolik、P. Heinrich,"Experimental Study of the Volumetric Error Effect on the Resulting Working Accuracy—Roundness",Applied Sciences 10(18), 6233 (2020),https://doi.org/10.3390/app10186233,CC BY 4.0。只用一個讀值(圖 6 的 LTc1,補償前的 X–Y 垂直度 24.4 µrad),沒有重製論文的任何圖。
-
使用與修改了什麼:
- 零件模型原樣使用。原案例加上的是毛胚、夾具(虎鉗與料頭、塞子與軟爪)、刀具與刀把、兩次裝夾的刀路與程式,以及 HiNC 專案。
- 這一案另外加的:機台鏈上 Y 軸的誤差項
XYsq(X–Y 垂直度 0.003°,代理選的典型值,不是任何機台的量測)、從 OP10 切削結果翻面的 OP20 毛胚(B 那份再轉 −2θ,是對夾持的假設),以及一支只停刀、不切料的程式pose/pose-t5-chamfer.nc。 - 本頁沒有重製任何第三方的圖:畫面都是 HiNC 的擷取,圖表畫的是 HiNC 的逐步結果與匯出的切削網格,示意圖是代理自己畫的。
- 本頁的一切都是仿真,沒有切過任何零件。本站不提供下載,原始檔請到來源取得。
另見¶
- Jetson AGX Thor 機殼——機殼的裝夾、代理的 CAM,以及這裡重播的程式怎麼做出來、怎麼通過驗收
- Jetson AGX Thor 機殼的 NC 優化——同一個案例上 HiNC 的進給優化,是另一項研究
- 建立虛擬工具機:誤差項——誤差項可以放在哪裡、標記會改變什麼、啟用誤差項開關,以及有誤差項的機台上的工作偏移
- 運動拓樸:誤差項連接 (Error-Term Branches)(英文,未鏡像)——控制器求解的名目鏈,以及它看得到哪些誤差
- 模型之外的加工問題:機台幾何誤差——模型放不進的機台誤差
- 工作流程:幾何驗證——幾何差異比對、偵測半徑與色階
- 程式原點對齊——P0,以及手動打入量到的工作偏移
- NISTIR 6868 試件切在原機台以雷射球桿量到的 X–Y 垂直度上——雷射球桿量到的 X–Y 垂直度,從試件的兩排方孔與圓槽讀回
- 深槽插銑對分層,Z 軸差 0.003°——同樣的 0.003°,換成 Z 對 Y 的垂直度,放在深槽上
- 實作案例——其他案例,以及案例頁怎麼讀