跳轉到

RPTU 基準件 4–10:七件由 AI 代理設定並核對的三軸加工

一個 AI 代理 (agent) 拿到七個公開的測試件——每件有一個 CAD 模型、一支 CAM 後處理出來的 NC 程式、一張渲染圖和一行說明——透過 HiNC 的 Web API 把它們建成 HiNC 仿真專案。每個零件它都重播兩次,而且讓 HiNC 的結果、而不是它自己的看法,來決定一個設定對不對。一路上,HiNC 指出了交付的程式哪裡切不出設計、負載落在哪裡,並證實較短的刀具切出來的結果相同。代理沒有切任何東西:資料集的作者實際加工過這些零件,但本頁沒有用到他們的任何結果。

零件 7,加工解析度 0.25 mm,島的最後一道精修輪廓結束時:熱縮刀把裡的 Ø6 端銑刀;幾何差異以藍色標出島的三個內凹凹灣尖端,那裡留有材料

零件 7,HiNC 3.2.41,停在最後一道精修輪廓 Z−11 那一刀的最後一個單節(40,014 行中的第 39,999 行)。綠色表示與設計相差在 ±0.1 mm 以內;藍色標出超出這個範圍而留下的材料——島的三個內凹凹灣,其尖端比 Ø6 刀具的半徑還窄。

案例

這些零件是 Benchmark Dataset of 10 Multi-Feature Models for Single-Setup 3-Axis Milling(Zenodo,CC BY 4.0)的第 4 到第 10 件;紀錄的聯絡人在 RPTU Kaiserslautern-Landau,本系列頁面上的「RPTU」即出自這裡——紀錄並沒有給作者的所屬機構。零件 1–3 由一個夥伴代理以同樣方式建成,自成一頁。資料集為每個零件發佈三個檔案:

  • 完成件的 STEP 模型;
  • 一支 NC 程式(.ngc),檔頭寫的是某家 CAM 廠商的通用三軸機台定義,並帶有刀具註解 T1 D=6. CR=0. 與最深深度(ZMIN);
  • 零件的渲染圖。

它的說明另外寫明:每個零件都用一支直徑至多 6 mm 的端銑刀、不重新裝夾,從一塊 80 × 80 × 50 mm 的料切出;並為每個零件列出一行特徵。

它沒有給的:程式原點在料塊的哪裡、程式是為哪一種控制器後處理的、工件材料、夾具,以及刀具除了直徑與角半徑以外的一切——刃長、刃數、各種角度、刀把、伸出量。機台只描述為龍門式三軸,而 NC 檔頭寫明三個軸都在主軸頭上。

零件 特徵(讀自資料集) NC 行數 最深切削(讀取)
4 4 holes, surrounding step (circular) 3,676 Z−8
5 4 holes, surrounding step (semi-circular/semi-rectangular) 2,509 Z−7
6 4 holes, surrounding step (rectangular), circular pocket 6,611 Z−7
7 Square pocket with negative freeform 40,014 Z−11
8 Multiple inclined surrounding steps (circular and rectangular) 11,894 Z−17
9 4 holes, circular pocket, multiple negative freeforms 71,377 Z−9
10 4 holes, multiple inclined surrounding steps (circular and rectangular), multiple pockets (circular and rectangular), negative freeform 14,214 Z−19

資料集自己的零件 4 到 10 渲染圖,依編號排列:4,料塊上凸起的 Ø70 圓台,台上四個孔;5,半圓半方的凸台,四個孔;6,凸起的方台,台上一個 Ø60 口袋,四角附近各一個孔;7,方形口袋,中間立著一座樣條外形的島;8,圓台疊在轉 30° 的方台上,再疊在斜邊台階與 78 mm 方塊上;9,Ø75 口袋裡立著四座樣條外形的島與四支 Ø4 小銷,料塊四角各一個孔;10,凸起的圓台裡有方形口袋,口袋裡再有一個圍著樣條外形島的圓形口袋,底下是斜邊台階與 78 mm 方塊。圖:M. Schmitz、J. Mertes、F. Schillinger、M. Wagner,Zenodo 17035762,CC BY 4.0,經裁切、排列並加上零件編號

資料集渲染的零件 4–10,每個零件一個 .png 檔。每面壁都是垂直的,每個底面都是平的(難題 4)。

代理建了什麼

每個零件一個專案,全部透過 HiNC 的 Web API、依專案建構的順序建成;每個值寫入後都讀回核對,最後存檔並重新載入。最後一欄說明每個值的出處。

項目 設定 出處
NC 程式 與發佈時逐位元相同,原樣播放 讀取
目標模型 STEP 轉成 STL 並移入程式座標:零件 4、7、9 為 (40.5, 40.5, −53);5、6、10 為 (41, 41, −53);8 為 (28.534, 40.962, −51.056) 由程式自身的運動推得(難題 1、2)
毛胚 一個與模型側面和底面齊平、高出模型頂面 1 mm 的方塊:80 × 80 × 51 mm(零件 4、8、9)或 80 × 80 × 53 mm(5、6、7、10) 推得;寫明的 50 mm 放不下(難題 3)
程式原點 G54 在毛胚頂面,位於料塊左前角外側 0.5 或 1 mm,如上面的平移所示 推得
控制器 HiNC 的 Fanuc 執行器 自選;沒有 LinuxCNC 執行器(難題 5)
機台 一台不帶任何形狀的通用三軸機,工作臺走 X 與 Y、主軸頭走 Z;行程 X −800..0、Y −500..0、Z −500..0。公開資料的機台三個軸都在主軸頭上;對三軸程式而言,刀具相對於零件的路徑是一樣的 自選
夾具 毛胚底下一塊 160 × 120 × 20 mm 的板 自選
材料 取自 HiNC 資源庫的鋁合金 6061-T6 及其切削參數 自選;資料集沒有指名材料
刀具 Ø6 平端銑刀;3 刃、刃長 13 mm、全長 57 mm、螺旋角 45°、前角 12°、後角 10°、碳化鎢 直徑與角半徑為讀取;其餘為自選
刀把 熱縮刀把:鼻端 Ø21,在 55 mm 內漸擴到 Ø30,本體 Ø44,法蘭 Ø63.5;量規長度 80 mm 自選
伸出量 20 mm(零件 4–7、9)與 25 mm(8、10):刃長與最深切削兩者取大,加 5 mm,再進位到 5 mm 的倍數 依規則推得(難題 6、7)
主軸 一支通用的 24,000 rpm、7.5 kW 主軸 自選;程式最高轉速 18,000 rpm(難題 8)
任務 一支程式;碰撞檢查開啟;最後做幾何差異;先用 1 mm 加工解析度粗跑,再用 0.25 mm 驗收 自選
通過標準 步數、接觸到毛胚、每一行都有執行、幾何差異建出來、每則訊息都有交代 自選,在第一次執行之前

逐件列出設計網格與刀具(mm):

零件 設計網格(封閉) 伸出量、刀長 最深切削 最深切削處刀把鼻端高出毛胚頂面
4 1,892 個三角形 20、100 Z−8 12
5 1,532 個三角形 20、100 Z−7 13
6 1,856 個三角形 20、100 Z−7 13
7 5,522 個三角形 20、100 Z−11 9
8 712 個三角形 25、105 Z−17 8
9 28,544 個三角形 20、100 Z−9 11
10 4,344 個三角形 25、105 Z−19 6

代理怎麼管理這件工作

  • 通過標準在執行之前就寫下來。 一次重播只有憑從 HiNC 讀回的證據才算通過:一個步數、「接觸到毛胚」旗標為 1、每一行 NC 都有執行、幾何差異建出來,以及一份沒有任何未解釋項目的訊息清單。一個小檢查程式對每一次執行套用這些規則,所以一次「跑完了卻什麼也沒證明」的執行不可能通過。
  • 先粗後細,先小後大。 每個零件先用 1 mm 加工解析度跑,再用 0.25 mm。兩支最大的程式(零件 7 與 9)先只播放前兩道工序的節錄,證明設定無誤之後,才把時間與記憶體投入整支程式。
  • 執行之前先估算。 步數估為切削時間 × 主軸轉速,記憶體以每步約 5 KB 計(記憶體規劃)。各次執行一次一個,送到一台 32 執行緒的伺服器。
  • 十個零件一套設定。 建置腳本取自做零件 1–3 的夥伴代理,只做了參數化,所以兩批共用每一個與零件無關的選擇;方言的處理方式與刀具規則出自夥伴代理,本代理在開始建置之前先跟它確認過。
  • 對抗式審查。 每個零件的書面指示都由被要求去駁倒它的審查代理逐條核對——兩輪、每輪七個審查者——本頁也另由一個審查者核對。
  • 盲建。 一個夥伴代理只拿到共用的建案指南與零件 10 的資料夾——沒有腳本、沒有筆記——重建了這個專案。
  • 共用一台伺服器。 一個 HiNC 服務對所有連上它的人只開一個專案。本代理與三個夥伴代理同時在做實作案例,各用各的服務執行個體,並互相告知。
  • 人在哪裡介入。
    • 負責人為實作案例訂下的常設規則——每把刀都裝在合乎實際的刀把裡,伸出量取剛好夠用的最短——決定了刀把與伸出量規則。
    • 負責人指定了代理該用的服務執行個體;當代理自身的規則拒絕從部署檔讀取帳號時,負責人給了它一個帳號(難題 19)。
    • 負責人改了實作案例的用途:從給學生的建案指示,變成這份工作紀錄。代理隨後從 HiNC 自己的結果量出零件 7 的殘料,並拍了本頁的圖。

難題

1. 程式原點在哪裡?

  • 情況。 資料集沒有任何地方寫明程式的 G54 在哪裡。STEP 模型以自己的原點為中心:X 與 Y 從 −40 到 40,頂面在 Z 52(零件 8 是例外:X 從 −27.534 到 52.466,頂面在 Z 50.056)。
  • 風險。 用猜的原點會移動每一刀。仿真照樣會跑,然後幾何差異會把設定錯誤怪到程式頭上。
  • 怎麼發現。 代理第一次的猜測——依對稱平移 40——與程式中孔的位置對不上。
  • 解法。 從程式的運動中讀出原點。Z 方面,模型的每一個底面都與程式切到的某個深度完全吻合,而模型頂面正好落在面銑的深度 Z−1。X 與 Y 方面,Ø10 的孔是 Ø6 刀具以半徑 2 mm 的螺旋銑出來的,所以每個螺旋的圓心都是一個孔軸。只比對單一圓弧會有歧義——一個零件的四個孔可以彼此對調——所以代理拿四個螺旋圓心的平均,去對四個模型孔軸的平均。零件 9 則透過它 Ø75 口袋的精修圓的圓心來比對,零件 7、8、10 透過沿直壁走的精修刀:它們離模型的壁 3 mm(刀具半徑),而且在壁的正確一側。
  • 證明解法站得住的證據。 比對是精確的:螺旋圓心落在平移後模型的孔軸上,精修刀離平移後的壁 3.0 mm。自適應清料的峰值等於它的分層深度(難題 12),而零件 7 加工後的工件除了刀具到不了的凹灣尖端之外,處處與設計吻合(難題 14)。

2. 同一個資料集,三種不同的擺放

  • 情況。 零件 4 的結果是 (40.5, 40.5),與零件 1–3 相同。零件 5 看起來跟零件 4 一樣。
  • 風險。 把零件 4 的數字抄給零件 5,會讓零件 5 偏掉半公釐。不會有任何訊息指出這件事;幾何差異只會把它顯示成程式的錯。
  • 怎麼發現。 每個零件都做了擺放檢查——零件 4、5、6 用孔的螺旋,零件 9 用口袋的精修圓,零件 7、8、10 用沿直壁的精修刀:零件 5、6、10 的結果是 (41, 41),模型原點不在自身中心的零件 8 是 (28.534, 40.962)。
  • 解法。 每個零件帶著自己的平移。
  • 證明解法站得住的證據。 零件 4、5、6 的四個孔,螺旋圓心全都與平移後模型的孔軸完全重合;零件 7、8、10 的精修刀離平移後的壁 3.0 mm。

逐件的擺放、它給出的毛胚方塊、位於毛胚底面中心的夾具安裝點,以及 HiNC 的程式原點呼叫隨後寫入的 G54(mm,程式座標):

零件 比對依據 模型平移 毛胚 X / Y / Z 夾具安裝點 G54
4 四個 Ø10 孔:每個螺旋圓心(半徑 2)都落在模型的孔軸上 (40.5, 40.5, −53) 0.5..80.5 / 0.5..80.5 / −51..0 (40.5, 40.5, −51) (−440.5, −290.5, −529)
5 同上,四個孔全對 (41, 41, −53) 1..81 / 1..81 / −53..0 (41, 41, −53) (−441, −291, −527)
6 同上,四個孔全對 (41, 41, −53) 1..81 / 1..81 / −53..0 (41, 41, −53) (−441, −291, −527)
7 沿口袋直壁走的精修刀,離壁 3 mm(刀具半徑);六組比對全部一致 (40.5, 40.5, −53) 0.5..80.5 / 0.5..80.5 / −53..0 (40.5, 40.5, −53) (−440.5, −290.5, −527)
8 沿直壁走的精修刀;模型中心在它自己座標中的 (12.466, 0.038),平移後落在 (41, 41) (28.534, 40.962, −51.056) 1..81 / 1..81 / −51..0 (41, 41, −51) (−441, −291, −529)
9 Ø75 口袋精修圓的圓心 (40.5, 40.5, −53) 0.5..80.5 / 0.5..80.5 / −51..0 (40.5, 40.5, −51) (−440.5, −290.5, −529)
10 沿直壁走的精修刀;五組比對全部一致 (41, 41, −53) 1..81 / 1..81 / −53..0 (41, 41, −53) (−441, −291, −527)

3. 寫明的毛胚放不下模型

  • 情況。 資料集寫的是 80 × 80 × 50 mm。程式從頂面面銑掉 1 mm,而那個面以下的模型高 50 或 52 mm。
  • 風險。 50 mm 的毛胚會在模型底面之上就結束,HiNC 對加工件與設計的比對就會回報 1–3 mm 的「缺料」,而那是任何程式都不可能留下的。
  • 怎麼發現。 第一次計算毛胚方塊時就量了模型的高度。
  • 解法。 毛胚與模型的側面和底面齊平、高出模型頂面 1 mm:高 51 或 53 mm。這項更改與它的理由都隨各案例記錄下來。
  • 證明解法站得住的證據。 每個零件的面銑都讀到 1.0 mm 的切削,而幾何差異沒有在零件的側面或底面標出任何東西。

4. 「Freeform」——是曲面還是輪廓?

  • 情況。 資料集在零件 7、9、10 列出「negative freeform」特徵。
  • 風險。 為三維自由曲面做規劃,意味著球刀、足以呈現曲率的細網格,以及不同的驗收方式。
  • 怎麼發現。 在規劃之前,代理先看了渲染圖,並把模型切片。
  • 解法。 壁是垂直的、底面是平的,外形是自由曲線(spline)輪廓;程式裡每一道工序都是平端銑刀的 2D 工序。它們是 2.5D 特徵。網格的問題於是變成:解析度能不能分辨最小的特徵——零件 9 的 Ø4 小銷,在 0.25 mm 下橫跨十六格。
  • 證明解法站得住的證據。 以平端銑刀切出的零件 7 島壁,除了刀具到不了的凹灣尖端,以及一處由設計本身的網格造成的痕跡之外,在每個高度都與設計吻合(難題 14)。

5. 為 LinuxCNC 後處理的程式(推論),放在一台 HiNC 沒有的控制器上

  • 情況。 程式用了 G64 P0.01 Q0.01、G91.1 以及 .ngc 副檔名,這些都指向 LinuxCNC 的後處理器。HiNC 的控制器是 Fanuc、Siemens、Heidenhain、Syntec 與 Mazak。
  • 風險。 改寫程式,會讓代理的編輯夾在公開的程式與結果之間。
  • 怎麼發現。 在任何建置之前,與做零件 1–3 的夥伴代理一起檢查了方言。
  • 解法。 程式在 Fanuc 執行器上原樣播放。G91.1 的意思是「圓心為增量」,而 Fanuc 一律如此;G64 P Q 是路徑混接的容差,仿真不建模。HiNC 把兩者都回報為 Parsing--Unconsumed,並播放同一條路徑。
  • 證明解法站得住的證據。 十四次重播中每一行 NC 都有執行,唯一的警告就是那三則 Parsing--Unconsumed;G18 與 G19 圓弧(在 X-Z 與 Y-Z 平面上)、G53 以及 % 標記都沒有引發任何訊息。

6. 一把只寫了「Ø6」的刀具

  • 情況。 唯一的刀具資料是 T1 D=6. CR=0.。
  • 風險。 沒有刀把、或伸出量超出所需的刀具,仿真時一聲不吭,卻會誤導任何看結果的人。
  • 怎麼發現。 負責人為實作案例訂的常設規則。
  • 解法。 一支 Ø6、3 刃、刃長 13 mm 的碳化鎢端銑刀,裝在熱縮刀把裡;伸出量等於刃長與最深切削兩者取大,加 5 mm,再進位到 5 mm 的倍數:零件 4–7 與 9 為 20 mm。
  • 證明解法站得住的證據。 HiNC 的刀具補正表讀回 80 mm 量規長度加伸出量(100 與 105 mm),兩張圖也都看得到刀把在毛胚上方。

7. 不需要的長刃刀

  • 情況。 零件 8 與 10 切到 Z−17 與 Z−19。代理把這讀成 16 與 18 mm 高的壁——比 13 mm 的刃長還長——於是給這兩個零件配了一支長刃刀(刃長 24 mm),伸出量 30 mm。兩次重播都通過了。
  • 風險。 比所需長 5 mm 的刀具剛性較差,而本頁原本會推薦它。
  • 怎麼發現。 一個審查代理在模型上量了壁:壁是分段的,零件 8 最高的單段壁是 8 mm(Z−9 到 Z−17),零件 10 是 10 mm(Z−9 到 Z−19)。
  • 解法。 兩個零件都改用標準刀、伸出量 25 mm 重建並重播。
  • 證明解法站得住的證據。 步數多了 8 步、仿真時間多了 0.03 s;深度、力與訊息都沒有變;最後精修輪廓的深度峰值(8 與 10 mm)都在 13 mm 刃長之內;而在最深處,刀把鼻端高出毛胚頂面 8 mm(零件 8)與 6 mm(零件 10)。

零件 8,停在最後一道精修輪廓的最後一個單節 Z−17:熱縮刀把位於毛胚上方,伸出量是規則給出的 25 mm

零件 8,HiNC 3.2.41,停在最後一道精修輪廓的最後一個單節(Z−17)。

8. 太慢的主軸

  • 情況。 程式以 18,000 rpm 運轉(零件 4、5、6、9 的銑孔為 16,000);HiNC 資源庫裡的主軸最高只到 12,000。
  • 風險。 低於程式轉速的主軸,會讓功率與扭矩的數字失去意義。
  • 怎麼發現。 選主軸的時候。
  • 解法。 為實作案例定義了一支通用的 24,000 rpm 主軸,載入每個專案。
  • 證明解法站得住的證據。 每個專案都依名稱讀回這支主軸,它的 24,000 rpm 高於程式呼叫的每一個轉速,也沒有任何一次執行回報缺少物理輸入。

9. 需要多少記憶體、多少時間?

  • 情況。 程式從 63 kB 到 1.8 MB 不等。
  • 風險。 記憶體不足的仿真會在接近結尾、花掉大部分時間之後才停下來。
  • 怎麼發現。 在第一次執行之前就規劃好。
  • 解法。 依零件 9 的路徑、進給與主軸轉速,估出約 408,000 步、2 GB 的步結果。零件 7 與 9 先用節錄核對。
  • 證明解法站得住的證據。 量得的步數落在估算值的 −5 % 到 +7 % 之間(零件 9:435,627),每一次執行都跑完了。

每個零件的記憶體,由量得的步數算出:每步約 5 KB,加上約 1 GB 的基底,以及在 0.25 mm 下為被切表面網格預留、假設的 0.3 GB(事先做的步數估算,紀錄保留了兩個:零件 4 約 137,000 步,零件 9 約 408,000 步):

零件 進給路徑切削時間 步數 步結果 估計峰值
4 7.4 min 131,253 0.66 GB 2.0 GB
5 6.8 min 120,610 0.60 GB 1.9 GB
6 9.9 min 176,026 0.88 GB 2.2 GB
7 16.3 min 316,161 1.58 GB 2.9 GB
8 10.1 min 192,851 0.96 GB 2.3 GB
9 22.3 min 435,627 2.18 GB 3.5 GB
10 12.7 min 239,526 1.20 GB 2.5 GB

兩個節錄都在 1 mm 下播放:程式從頭到第三道工序的註解之前為止,再接一行標明截斷處的註解,以及 M5、G53 G0 Z0.、M30、%;兩者都接觸到毛胚,也只引發那三則預期的警告:

零件 播放的工序 行數 步數 深度峰值 力峰值
7 面銑 PLANEN3 與開口袋的 2D-TASCHE2 717 98,852 2.0 mm 134 N,在開口袋;面銑 54 N
9 面銑 PLANEN2 與四角孔的 2D-TASCHE1 736 107,776 4.0 mm,在銑孔 54 N,在面銑;銑孔 51 N

10. 「Finished」不等於「通過」

  • 情況。 一次從未裝上刀具的重播不會產生任何步,照樣以「Finished」結束;播放結束時的 Play-Touch--None 警告要有步才會發出,所以往往沒有任何訊息提到這件事。
  • 風險。 驗收了一次什麼都沒切的執行。
  • 怎麼發現。 重播驗收的工作流程已經說明了這一點。
  • 解法。 每一次執行都只憑上面的通過標準、從 HiNC 讀回的證據來驗收。
  • 證明解法站得住的證據。 檢查程式修正之後(難題 11),十四次執行全部通過。

11. 一個為了錯的理由而失敗的檢查

  • 情況。 零件 7 第一次完整重播沒有通過代理自己的檢查:它預期四則 Parsing--Unconsumed 警告——G91.1 一則、每一行 G64 各一則——HiNC 卻回報三則。
  • 風險。 追查一個並不存在的建置錯誤,或把檢查放寬到什麼也證明不了。
  • 怎麼發現。 檢查程式在訊息數上失敗,其他每一項檢查都通過。
  • 解法。 代理在怪罪建置之前先讀了訊息。HiNC 會把一則警告第一次出現時單獨列出,其後所有的重複則併成最後一行上的一則 [repeated 3x in this run, first at Sn=16],其次數包括第一次。零件 1–6 有一或兩行 G64,兩種規則算出的次數相同。檢查改正為:從兩行 G64 起,每次重播三則警告(只有一行的零件 1 回報兩則)。
  • 證明解法站得住的證據。 零件 8、9、10 分別有 7、5、9 行 G64,每件都恰好回報三則,最後一則分別讀作 [repeated 7x …]、[repeated 5x …] 與 [repeated 9x …]。

逐件列出(G91.1 都回報在第 8 行、第一個 G64 在第 16 行;第三則落在最後一行 G64 上,每次播放另外只有一則 Sys-Init--FileLines 說明):

零件 G64 所在行 第三則
4 2 行:16、308 第 308 行,[repeated 2x in this run, first at Sn=16]
5 2 行:16、315 第 315 行,[repeated 2x …]
6 2 行:16、315 第 315 行,[repeated 2x …]
7 3 行:16、308、38,286 第 38,286 行,[repeated 3x …]
8 7 行:16、315、3,528、3,545、10,711、10,752、11,834 第 11,834 行,[repeated 7x …]
9 5 行:16、309、734、906、68,036 第 68,036 行,[repeated 5x …]
10 9 行:16、315、4,147、4,168、5,671、6,796、12,581、12,610、14,154 第 14,154 行,[repeated 9x …]

12. 一個看起來像基準錯誤的深度

  • 情況。 零件 5 在 0.25 mm 下回報的切削深度峰值是 5.89 mm。程式以 2 mm 分層清料,而同一個零件在 1 mm 下讀到 2.0 mm。
  • 風險。 Z 原點錯了,看起來正是這個樣子。
  • 怎麼發現。 和每一次執行一樣,拿峰值與程式的分層深度比較。
  • 解法。 把執行按工序拆開:每道工序的第一行 NC 對應到它的第一個仿真步,再逐一讀取各步段的峰值。5.89 mm 來自銑孔,那裡的力峰值是 20 N,而清料是 107 N。零件 4 的孔——同樣的螺旋、深 7 mm——在同樣的解析度下只讀到 0.69 mm,零件 5 的孔在 1 mm 下讀到 1.44 mm。所以這不是那個深度的切削;可能的解讀是刀具側面貼著已完成的孔壁,細網格把沿著壁高的接觸都算了進去(推論,未逐步追查)。深度基準改取自適應清料工序。
  • 證明解法站得住的證據。 在每個零件、兩種解析度下,被指定為基準的自適應清料峰值都是 2 mm;唯一例外是以 1.5 mm 分層的零件 9,在 0.25 mm 下讀 1.5 mm、在 1 mm 下讀 2.0 mm。

13. 一次吃下整面壁的精修刀

  • 情況。 零件 7–10 的最後一道精修輪廓讀到的深度比任何分層都深:5、8、8 與 10 mm。
  • 風險。 誤以為是基準錯誤,或沒注意到它承受的負載。
  • 怎麼發現。 在難題 12 的逐工序峰值裡。
  • 解法。 零件 8 與 10 的最後精修輪廓是底部的一刀:在上方台階與 78 mm 方塊齊平的那兩側,方塊的壁一直升到那個台階,這一刀一次碰上全部 8 或 10 mm。零件 7 與 9 則是兩刀(Z−6 再 Z−11、Z−6 再 Z−9),下面那一刀碰上第一刀以下 5 mm 的島壁(零件 7),或整面 8 mm 的口袋壁(零件 9)(由模型與程式推論)。
  • 證明解法站得住的證據。 每個峰值都等於那一刀所剩下的壁高,而且在 1 mm 與 0.25 mm 下相同。

14. 幾何差異只有圖,沒有數字

  • 情況。 幾何差異會為加工件上色,但 Web API 沒有辦法讀出它的數值。
  • 風險。 只憑幾何就宣稱「島的凹灣尖端留有材料」,而 HiNC 並沒有顯示這件事。
  • 怎麼發現。 這個說法最初是由模型與刀具半徑寫出來的;一個審查者把它標為推論。
  • 解法。 代理在 0.25 mm 重播之後,把 HiNC 加工後的工件匯出成 STL,逐層切片與設計比對。
  • 證明解法站得住的證據。 在島的每一個高度(Z−5.5 到 Z−10.9)都有三處留料,平面上約 2.0、1.8 與 0.6 mm²,最厚約 0.7、0.65 與 0.28 mm——正是幾何預測的三個凹灣尖端——而且沒有任何過切。第四處較淡的痕跡(至多 0.2 mm)在 X59 Y52 附近,來自設計 STL 本身:它有一個三角面陷進了真實的壁面。畫面上的幾何差異標出了三個凹灣尖端(見上方的圖)。

15. 截圖顯示的是執行結束時的刀具位置

  • 情況。 在網頁用戶端選取一步只會將它標示出來,並不會移動刀具;三維視圖顯示的是重播結束時的刀具,已退到零件上方。
  • 風險。 一張沒有刀具在工作、或看不到刀把的圖。
  • 怎麼發現。 最初幾次擷取時,刀具都遠在零件上方。
  • 解法。 每張圖都由代理把存好的專案播放到選定的 NC 行為止(程式到那一行為止的各行,再加上 M30),擷取畫面後重新載入專案,不存任何東西。
  • 證明解法站得住的證據。 兩張圖都顯示刀具停在選定的行上;存好的專案沒有改變。

16. 代理自己的書面陳述

  • 情況。 每個零件的指示都由代理依自己的量測寫成。
  • 風險。 一句沒人核對過的貌似合理的話,會變成公開的事實。
  • 怎麼發現。 由對抗式審查的各輪。
  • 解法。 審查抓到的包括:一座寫成 55 × 45 mm、實測 49 × 52 mm 的島;零件 8 與 10 的高壁放錯了邊;從零件 8 抄到零件 10 的 3° 角,而零件 10 的邊實際上是 2.2° 與 2.3°;一個用直插下刀也會得到的數字去「證明」螺旋下刀的檢查;紀錄並未寫明的作者所屬機構;以及一個結論正確、理由卻錯的授權論證。全部都已更正。
  • 證明解法站得住的證據。 第一輪核對了 839 條陳述、退回 76 條;修正之後,第二輪核對了 580 條、退回 32 條較小的問題,也都已修正;盲建隨後的每一個數字都吻合。

17. 盲建發現了什麼

  • 情況。 一個夥伴代理只憑共用指南與零件的資料夾重建了零件 10。
  • 風險。 只有寫它的代理才照得出來的指示。
  • 怎麼發現。 這正是盲建的目的。
  • 解法。 它回報了兩個陷阱,都已補進共用指南:打錯的 GET 路由會回應「200 OK」加上網頁用戶端的頁面,而不是錯誤(打錯的 POST 路由則回 405);以及播放過後讀回的清單條目,是那次播放留下的執行期數值:運動解析度條目讀到的是播放留下的每轉進給,以及無限大的旋轉步距,JSON 以字串 "Infinity" 傳回,而專案存下的只有這個條目的 Scale 與 MinLinearResolution_mm。
  • 證明解法站得住的證據。 它的數字在每一列都與參考值吻合:步數、執行的行數、逐工序的深度、仿真時間、程式原點與刀長。

18. 與其他代理共用伺服器與儲存庫

  • 情況。 數個夥伴代理同時在建實作案例,共用一台伺服器與共用的工作副本。
  • 風險。 一個代理載入或重設專案,會停掉另一個代理的執行;一個代理的提交把另一個代理的檔案一起掃進去;提交時換行被改寫,公開檔案就不再符合資料集公布的檢查碼。
  • 怎麼發現。 一個夥伴代理的執行被不明的用戶端中途關閉,這個問題問到了本代理;共用的工作副本預設會轉換換行。
  • 解法。 每個代理各用自己的服務執行個體並公告出來;本代理的用戶端固定連自己的那一個。提交只加入明確的路徑。來源檔案標為「不轉換換行」。當別人留著沒關的專案擋路時,代理用完之後把它重新開回去。
  • 證明解法站得住的證據。 本代理的執行沒有一次被中斷,而提交的來源檔案符合資料集公布的檢查碼。

19. 代理無法自行讀取的登入

  • 情況。 服務需要登入。
  • 風險。 從部署檔取得帳密,會繞過負責人。
  • 怎麼發現。 代理自身的安全規則拒絕讀取它們。
  • 解法。 代理向負責人詢問,負責人給了它一個帳號。
  • 證明解法站得住的證據。 從那之後的每一次呼叫都只用那一個帳號。

結果與效益

十四次重播的數字在 HiNC 3.2.45 上量得;零件 7 的量測與兩張圖在 3.2.41 上做成,建案時播放的節錄(難題 9)與長刃刀執行(難題 7)則在 3.2.39 上。

零件 步數 仿真時間* 重播時間 1 / 0.25 mm 深度峰值 1 / 0.25 mm 深度基準(清料)
4 131,253 7.6 min 25 / 70 s 2.0 / 2.0 mm 2 mm
5 120,610 7.0 min 25 / 60 s 2.0 / 5.89 mm(銑孔,難題 12) 2 mm
6 176,026 10.0 min 35 / 95 s 2.0 / 5.89 mm(銑孔) 2 mm
7 316,161 16.5 min 65 / 135 s 5.0 / 5.0 mm(最後精修輪廓) 2 mm
8 192,851 10.4 min 35 / 90 s 8.0 / 8.0 mm(最後精修輪廓) 2 mm
9 435,627 22.6 min 85 / 165 s 8.0 / 8.0 mm(最後精修輪廓) 0.25 mm 下為 1.5 mm
10 239,526 13.0 min 40 / 100 s 10.0 / 10.0 mm(最後精修輪廓) 2 mm

*程式路徑依其進給率加上快速移動所得的仿真時間;沒有加速度模型。

RPTU 零件 1 到 10 的仿真加工時間,每件一條長條並附步數:零件 1 為 3.0 分、52,600 步,零件 2 為 4.9 分、84,637 步,零件 3 為 7.5 分、126,971 步,零件 4 為 7.6 分、131,253 步,零件 5 為 7.0 分、120,610 步,零件 6 為 10.0 分、176,026 步,零件 7 為 16.5 分、316,161 步,零件 8 為 10.4 分、192,851 步,零件 9 最長,22.6 分、435,627 步,零件 10 為 13.0 分、239,526 步

十個零件的仿真加工時間與步數;零件 4–10 的數值都在上表,零件 1–3 的在它們自己的那一頁。

十四次重播全部通過:有步數、接觸到毛胚、每一行 NC 都有執行、幾何差異建出來,而且只有那三則 Parsing--Unconsumed 警告。HiNC 的碰撞檢查涵蓋夾具,也涵蓋刀把與刀柄對毛胚,在每一次重播中都沒有回報任何接觸;機台沒有幾何,所以它那一側沒有檢查任何東西。

逐工序列出代理讀到的峰值:工序開頭註解所在的行、該工序的步數(兩種解析度相同),以及這些步的峰值,寫成 1 mm / 0.25 mm,兩次相同時只寫一個:

零件 工序(行) 切什麼 步數 深度峰值(mm) 力峰值(N)
4 PLANEN2(11) 頂面,面銑掉 1 mm,到 Z−1 47,002 1.0 54
4 2D ADAPTIVE2(307) Ø70 圓台四周,以 2 mm 分層切到 Z−3 與 Z−5,整道工序都後處理成短 G1 線段(3,107 行),其中圓台的壁每層約 370 段 30,127 2.0(基準) 107
4 2D-TASCHE1(3,414) 四個 Ø10 孔,螺旋每圈下降 0.44 mm,S16000 54,124 1.44 / 0.69 45 / 20
5 PLANEN2(11) 頂面,面銑掉 1 mm,到 Z−1 48,514 1.0 54
5 2D ADAPTIVE2(314) D 形凸台四周,2 mm 分層 23,483 2.0(基準) 107
5 2D-TASCHE1(2,267) 四個 Ø10 孔,螺旋銑,S16000 48,613 1.44 / 5.89 45 / 20
6 PLANEN2(11) 頂面,面銑掉 1 mm,到 Z−1 48,514 1.0 54
6 2D ADAPTIVE3(314) 凸起方台的四周,切到 Z−5 16,935 2.0(基準) 102
6 2D ADAPTIVE4(978) Ø60 口袋,三層各 2 mm,每層以螺旋下刀 61,952 2.0(基準) 111 / 107
6 2D-TASCHE2(6,369) 四個 Ø10 孔,螺旋銑,S16000 48,625 1.44 / 5.89 45 / 20
7 PLANEN3(11) 頂面,面銑掉 1 mm,到 Z−1 47,000 1.0 54
7 2D-TASCHE2(307) 口袋,切到島的頂面,Z−3 與 Z−5 51,543 2.0(基準) 134
7 2D ADAPTIVE2(713) 島的四周,五層各 2 mm,Z−3 到 Z−11 201,830 2.0(基準) 114 / 111
7 2D-KONTUR3(38,285) 口袋壁從面銑後的頂面到島頂的一段,在 Z−5 一刀 2,836 4.0 223 / 218
7 2D-KONTUR2(38,305) 口袋壁與島,Z−6 與 Z−11 兩刀 12,952 5.0 290 / 281
8 PLANEN2(11) 頂面,面銑掉 1 mm,到 Z−1 48,512 1.0 54
8 2D ADAPTIVE6(314) Ø54 圓台四周,Z−1 到 Z−5 46,116 2.0(基準) 107
8 2D-KONTUR1(3,527) 圓台的壁 2,285 4.0 167 / 138
8 2D ADAPTIVE7(3,544) 轉 30° 的 54 mm 方台四周,切到 Z−9 65,463 2.0(基準) 111 / 107
8 2D-KONTUR2(10,710) 轉過的方台的壁 2,931 4.0 108 / 82
8 2D ADAPTIVE9(10,751) 1 mm 的邊框,切到 Z−17,先於它上方的台階 12,762 2.0(基準) 84 / 69
8 2D ADAPTIVE8(11,312) 斜邊台階四周,切到 Z−13 7,782 2.0(基準) 107 / 102
8 2D-KONTUR5(11,833) 斜邊台階的前、左兩邊 2,444 4.0 139 / 102
8 2D-KONTUR4(11,868) 78 mm 方塊的壁,在 Z−17;後、右兩側斜邊台階與它齊平,壁高 8 mm 4,556 8.0 192 / 156
9 PLANEN2(11) 頂面,面銑掉 1 mm,到 Z−1 47,002 1.0 54
9 2D-TASCHE1(307) 四角的孔,螺旋每次下降 0.58 mm,S16000 60,498 4.0 / 3.5 51 / 23
9 2D-KONTUR3(732) 孔壁,Z−5 與 Z−7 兩刀,轉回 S18000 5,996 4.0 210 / 189
9 2D-TASCHE2(905) 口袋,切到島的頂面 17,699 2.0 115
9 2D ADAPTIVE8(960) 島與小銷的四周,以 1.5 mm 分層切到 Z−9 278,447 2.0 / 1.5(基準) 114 / 93
9 2D-KONTUR1(68,035) 口袋壁、島與小銷,Z−6 與 Z−9 兩刀 25,985 8.0 210 / 165
10 PLANEN2(11) 頂面,面銑掉 1 mm,到 Z−1 48,511 1.0 54
10 2D ADAPTIVE3(314) 方形口袋,切到 Z−5 46,486 2.0(基準) 111 / 107
10 2D-KONTUR1(4,146) 方形口袋 4 mm 的壁 2,264 4.0 223 / 215
10 2D-TASCHE2(4,167) 圍著島的圓形口袋,分層在 Z−5.6、−7.2、−8.8 與 −9 33,448 3.8 138 / 114
10 2D-KONTUR2(5,670) 島的外形與 Ø52.3 的壁,Z−7 與 Z−9 7,360 6.0 120
10 2D ADAPTIVE5(6,795) Ø74 圓台四周 58,678 2.0(基準) 107
10 2D-KONTUR3(12,580) 圓台 8 mm 的壁,Z−5 與 Z−9 兩刀 5,914 4.0 167 / 138
10 2D ADAPTIVE7(12,609) 1 mm 的邊框,切到 Z−19,先於它內側的台階 19,138 2.0(基準) 84 / 69
10 2D ADAPTIVE6(13,450) 斜邊台階四周,Z−9 到 Z−13 10,630 2.0(基準) 107 / 102
10 2D-KONTUR4(14,153) 斜邊台階的壁 2,448 4.0 139 / 126
10 2D-KONTUR6(14,188) 78 mm 方塊的壁,在 Z−19;後、左兩側斜邊台階與它齊平,壁高 10 mm 4,649 10.0 192 / 156

零件 4 各工序在 1 mm 與 0.25 mm 下:面銑讀到 1 mm 與 54 N;自適應清料 2 mm,正落在 2 mm 的清料層深,107 N;銑孔 1.44 與 0.69 mm,45 與 20 N

零件 4:各工序在 1 mm 與 0.25 mm 下的切削深度峰值與力峰值,對照 2 mm 的清料層深;每個數值都在上表。

零件 5 各工序在 1 mm 與 0.25 mm 下:面銑讀到 1 mm 與 54 N;自適應清料 2 mm,正落在 2 mm 的清料層深,107 N;銑孔在 1 mm 下 1.44 mm、在 0.25 mm 下 5.89 mm,45 與 20 N

零件 5:各工序在 1 mm 與 0.25 mm 下的切削深度峰值與力峰值,對照 2 mm 的清料層深;每個數值都在上表。

零件 6 各工序在 1 mm 與 0.25 mm 下:面銑讀到 1 mm 與 54 N;兩道自適應清料 2 mm,正落在 2 mm 的清料層深,分別為 102 N 與 111 / 107 N;銑孔在 1 mm 下 1.44 mm、在 0.25 mm 下 5.89 mm,45 與 20 N

零件 6:各工序在 1 mm 與 0.25 mm 下的切削深度峰值與力峰值,對照 2 mm 的清料層深;每個數值都在上表。

零件 7 各工序在 1 mm 與 0.25 mm 下:面銑讀到 1 mm 與 54 N;口袋與自適應清料 2 mm,正落在 2 mm 的清料層深,分別為 134 N 與 114 / 111 N;口袋壁的輪廓 4 mm、223 / 218 N;最後精修輪廓最深也最重,5 mm、290 / 281 N

零件 7:各工序在 1 mm 與 0.25 mm 下的切削深度峰值與力峰值,對照 2 mm 的清料層深;每個數值都在上表。

零件 8 的九道工序在 1 mm 與 0.25 mm 下:面銑讀到 1 mm 與 54 N;四道自適應清料 2 mm,正落在 2 mm 的清料層深,1 mm 下 84 到 111 N;三道 4 mm 的輪廓在 1 mm 下 108 到 167 N;78 mm 方塊壁的最後精修輪廓最深也最重,8 mm、192 / 156 N

零件 8:各工序在 1 mm 與 0.25 mm 下的切削深度峰值與力峰值,對照 2 mm 的清料層深;每個數值都在上表。

零件 9 各工序在 1 mm 與 0.25 mm 下:面銑讀到 1 mm 與 54 N;銑孔 4 與 3.5 mm,51 與 23 N;孔壁的輪廓 4 mm、210 / 189 N;口袋 2 mm、115 N;自適應清料在 1 mm 下 2 mm、在 0.25 mm 下 1.5 mm(正是它的分層),114 / 93 N;最後精修輪廓最深,8 mm、210 / 165 N

零件 9:各工序在 1 mm 與 0.25 mm 下的切削深度峰值與力峰值,對照 1.5 mm 的清料層深;每個數值都在上表。

零件 10 的十一道工序在 1 mm 與 0.25 mm 下:面銑讀到 1 mm 與 54 N;四道自適應清料 2 mm,正落在 2 mm 的清料層深,1 mm 下 84 到 111 N;圓形口袋 3.8 mm、138 / 114 N;4 與 6 mm 的輪廓中,方形口袋的壁最重,223 / 215 N;78 mm 方塊壁的最後精修輪廓最深,10 mm、192 / 156 N

零件 10:各工序在 1 mm 與 0.25 mm 下的切削深度峰值與力峰值,對照 2 mm 的清料層深;每個數值都在上表。

給加工工程師

  • 零件 7 的程式切不完它的島。 島的三個凹灣尖端在整個 6 mm 島高上,平面上各留約 2.0、1.8 與 0.6 mm² 的材料,最厚約 0.7 mm:凹灣收窄到半徑約 1.4–1.8 mm 的尖端,比 Ø6 刀具的 3 mm 半徑還窄。如果設計在那裡很要緊,就需要一道用較小刀具的清角加工。
  • 零件 6 的薄壁。 孔離凸起方台的側面只有 2.5 mm、離口袋壁 3.9 mm;在實際零件上值得檢查。
  • 較短的刀具就夠了。 零件 8 與 10 用 25 mm 伸出量就能碰到所有地方;直覺會選的 30 mm 長刃刀比所需長了 5 mm。在最深的切削處,刀把離毛胚分別有 8 與 6 mm 的餘隙。
  • 負載在哪裡。 清料工序的峰值約 84–134 N(1 mm 執行;零件 10 的口袋銑削為 138 N)。峰值最高的是精修壁面的輪廓:零件 7 的最後精修輪廓 290 N,零件 10 的第一道輪廓(方形口袋 4 mm 的壁)與零件 7 的口袋壁 223 N,零件 9 的孔精修與最後精修輪廓 210 N,零件 8 與 10 的最後精修輪廓 192 N。0.25 mm 的執行讀到相同或最多低約 27 %。如果在意刀具撓曲或表面品質,這些就是該拆成多段軸向切深的刀。
  • 裝夾設定。 依零件不同,程式原點位於料塊角外側 0.5 或 1 mm;如果在料塊角上對刀,這些零件就會偏移那麼多。
  • 資料集本身。 寫明的 50 mm 料塊對這裡的每一個模型都太矮;零件 10 的特徵清單列出四個模型中並不存在的孔(它的四個半徑 3 的特徵是方形口袋的圓角)。

給老師或學生

  • 一次「跑完了」的仿真,在它顯示出步數、接觸、執行的行數與乾淨的訊息清單之前,什麼也沒有證明。
  • 程式原點、毛胚與刀具可以從 CAM 程式自身的運動中讀出來,也應該在那裡核對,而不是用猜的:在這個資料集裡,原點在零件之間會移動。
  • 整次執行的單一峰值可能會誤導。把它按工序拆開,拿每一段去比它被程式設定要做的事。
  • 資料集的說明是一種主張,不是量測:這裡的料塊高度、一份特徵清單與「freeform」這個字,都需要核對。
  • 依最高的單段壁選刀,依最深的切削定伸出量。

給正在評估這種做法值不值得採用的人

  • 花了多少。 本頁的十四次重播用了約 17 分鐘的伺服器時間(一台 32 執行緒的機器)。建案時連同節錄、後來被取代的長刃刀執行、零件 7 的量測與拍圖,約用了 40 分鐘的伺服器時間。每次執行估計的記憶體峰值為 1.9–3.5 GB(未量測)。兩輪審查各約 40 分鐘,盲建約 13 分鐘,全部由代理執行。
  • 它抓到了單次檢查抓不到的。 在零件之間移動的原點;資料集寫錯的毛胚;比所需更長的刀具;一個看起來像基準錯誤的深度讀值;以及先 76 條、後 32 條錯誤或不清楚的書面陳述。
  • 它沒有取代的。 由人訂下代理所遵循的規則、提供帳號,並調整工作的方向;而且這裡的一切都沒有實際切削。

誠實的限制

  • 全部都是仿真。 代理沒有切任何東西。執行的數字出自 HiNC;估算、〈代理建了什麼〉逐件表裡刀把鼻端的高度,以及零件 7 的殘料面積,則是代理自己的幾何、算術或離線量測;HiNC 的碰撞檢查在每一次重播中都沒有發現刀把或刀柄與毛胚接觸。
  • 代理的選擇,不是作者的。 材料、機台、夾具、主軸、刀具除了直徑以外的幾何,以及刀把,都是代理的選擇。力、功率與時間都取決於它們。
  • 毛胚因難題 3 的理由,與寫明的 80 × 80 × 50 mm 不同。
  • 週期時間沒有加速度模型,實際控制器會套用的 G64 路徑混接也沒有仿真。
  • 推論性的解釋都已標明:銑孔的深度讀值(難題 12),以及最後精修輪廓在哪裡碰上整面壁(難題 13)。
  • 零件 7 的殘料面積來自代理對 HiNC 匯出工件的離線切片;HiNC 自己的幾何差異數值無法透過 API 讀取。
  • 力在 1 mm 與 0.25 mm 的執行之間有差異:清料與精修最多約 27 %,銑孔最多 56 %,而銑孔的峰值本身很低(45 → 20 N)。
  • 記憶體是每次執行的估計值,未量測。

讀者可以帶到自己案例的

  • 從程式推出程式原點:拿孔的螺旋、口袋的圓或精修壁面去比對模型,而且要比對整組特徵。「平移後的模型外形等於毛胚外形」這種檢查,只有在毛胚是獨立給定時才有意義。
  • 在使用寫明的毛胚之前,先拿模型與面銑深度核對它。
  • 在相信特徵清單之前,先看模型。
  • 控制器的語意相符時,程式就原樣播放,並列出剩下的警告,逐一說明為什麼無害。
  • 依最高的單段壁選刀、依最深的切削定伸出量,並檢查刀把餘隙。
  • 在第一次執行之前估算步數與記憶體;大型程式先用節錄證明設定。
  • 在執行之前寫下通過標準,並拿每一次執行去對照。
  • 按工序讀峰值;深度基準取自清料工序。
  • 結果看起來不對時,在更改建置之前先讀 HiNC 的訊息與幾何。
  • 請別人照你的指示重建案例,也讓人核對你的書面陳述。

來源與授權

M. Schmitz, J. Mertes, F. Schillinger, M. Wagner, Benchmark Dataset of 10 Multi-Feature Models for Single-Setup 3-Axis Milling,Zenodo,第 1 版,2025,https://doi.org/10.5281/zenodo.17035762(紀錄:https://zenodo.org/records/17035762)。連結搬家時可用的搜尋字詞:Benchmark Dataset of 10 Multi-Feature Models for Single-Setup 3-Axis Milling、zenodo 17035762。

授權為 Creative Commons Attribution 4.0 International。本站不提供下載;請從紀錄取得檔案。

Model, NC program and rendering: M. Schmitz, J. Mertes, F. Schillinger, M. Wagner, "Benchmark Dataset of 10 Multi-Feature Models for Single-Setup 3-Axis Milling", parts 4–10, https://doi.org/10.5281/zenodo.17035762, licensed CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/), provided without warranty.

改了什麼:模型轉成 STL 並移入程式座標;NC 程式在每一次完整重播中都依公開原樣播放;零件 7 與 9 的兩個基準核對節錄(難題 9)取程式從頭到第三道工序的註解之前為止,結尾是一行註解與 M5、G53 G0 Z0.、M30、%;為了兩張圖,程式在選定的一行截斷並補上 M30(難題 15)。仿真設定——毛胚、擺放、機台、夾具、刀具幾何、刀把、材料、主軸——是代理的,如上所述;毛胚高 51 或 53 mm,而不是寫明的 50 mm(難題 3)。本頁的圖是這些零件的 HiNC 仿真,圖表取自 HiNC 對它們的重播,只有〈案例〉一節的渲染圖例外:它們是資料集自己的圖,經裁切、排列並加上編號。

從紀錄取得的檔案,可以用各零件來源筆記給的 SHA-256,核對它是否就是本頁仿真所用的那一個:

零件 檔案 SHA-256
4 4.ngc 6240d35afb5e7de046e0249b23072db63f3a20d0aecb756de2419c91f697b1f6
4 4.step 9779d88de7a615c439a76582341eb8244c2c73acc3e67c64c8332856e19437da
4 4.png 852a37b8bef2c5fa08fa1b6b4d8ed337b8c3b60db879b485462270800130f651
5 5.ngc d268fec818e49cbc329969d5ccc29334ca2f0ad8851b1f288caafe6ca60dbf5e
5 5.step 2e77b32274a0b7ab62dcf6ccb8fc47077a8968cce0e3cd466de7abad1cd693f7
5 5.png 06684bcae0e31ea2bd877b75e73bb8ca4e616883228c9932f417e338e7220706
6 6.ngc 318245efdccabd466cb53b6a0349242fcda79f82feb7c776187d03338c746d96
6 6.step 30328dbe66955e34db199c9a36f0674548941c59164c12e48ea3bf4bca5eade7
6 6.png 392457b9ed3d44dced973098e6ac22e4f84a2d9d2284227fac0af1bce6204534
7 7.ngc df9c904dd52e5908006b37744abbff6a9f9cf4094eaf3602dfe3f97e147e6860
7 7.step 1fdc0a1ccfdf92f6bee6e67c8e29c0308dafee104025923315a58a0998f9cec3
7 7.png b93436d7bb4ef3ffaa0692e7126b3fd16bc3b8462c19a48c4e20a43cddfb9842
8 8.ngc 57b637a6533710dc9e11cc90945edea39bc3d0792d1e7ba7273805dd3af6dfb3
8 8.step bb7f3809b3e5610dfde77aaf4cd388426bd06a47267cf021587f6bca23822bb7
8 8.png 781d89c0dd409571fbe04161102dc5a56e39914692d0e77834d6e5adccc948d9
9 9.ngc d944a8d0d40f0c97e5d0f64c097785561503b61f8b1b0eb7b5682f84925445da
9 9.step 3658eb09d100e75cc57e0e18fb7850eb0de456ac141c6b8a17e21141f8edfd32
9 9.png c5f99a9dedd360e4a7636a5ee2abb139b3f7c4179b743120eee9809117f56174
10 10.ngc 4b90bb4a916bcda7f4812298ae1aabe907b2fefbcd18e76e2f901709d4e942b9
10 10.step 91c23f1fb78ab88b50e9bf46af2f5a08774a56a772d66d8922801a6fbe2001ab
10 10.png 45b0870f7b08e2f9f5f16c84ac7f9d505cfa4129e9e3816a17725ed0ba40323c