跳轉到

刀位 (CL) 播放

PlayClFile (API) 直接把 CAM 刀位檔——NX CLSF(.cls)/APT 原始碼刀具路徑——當作刀具運動重播,不經過後處理器。用它在刀具路徑被後處理成任何特定機台的程式之前,先驗證程式路徑本身(刀具干涉 gouge、過切 overcut、嚙合 engagement)。

同一份檔案也可以播在真實的工具機鏈上,而播放過的 CL 程式還能寫回成 Fanuc NC——見兩種機構鏈,兩個問題與把 CL 轉成 NC。

CL 與 NC——兩種不同的輸入

PlayNcFile (API)(NC / G 碼) PlayClFile (API)(CL / CLSF)
來源 針對某一台特定機台後處理過的 G 碼 CAM 的刀位輸出,在後處理之前,與機台無關
內容 軸移動(G01 X.. Y.. Z..)、工件偏移、固定循環 刀位(GOTO)、圓弧(CIRCLE)、刀軸向量
驅動 經由運動學驅動一條工具機鏈(X/Y/Z/A/B/C 軸) 兩種機構鏈皆可——見下文
回答的問題 「這台機台拿這支程式會做什麼?」 「程式路徑本身正確嗎?」——或者在工具機鏈上,兩個問題一次回答

一個刀位就是工件座標下的一個點加上一個刀軸方向。PlayClFile 依序把刀具放到每個刀位上,並掃掠出相鄰刀位之間被移除的材料。

兩種機構鏈,兩個問題

專案設置裡配置的機構鏈,決定了一次 CL 播放的意義。

在 ClMillingDevice (API) 上,刀位直接套用到刀具:沒有逆向運動學、沒有工件座標偏移、沒有控制器方言。這是與機台無關的檢查——它回答的是 CAM 輸出本身是否正確;當你還不知道這份工作會由哪台機台來跑時,這就是該選的機構鏈。

在工具機鏈上,每個 CLSF 運動終點都在解析時就做逆向求解,並以 NC 管線所用的同一套「程式到機台」轉換詞彙來表達——來自作用中刀具的刀長項、錨定在工件座標框架上的軸樞項,以及解出的旋轉軸——因此共用的機械座標與旋轉軸繞回 (rotary wrap) 處理可以原封不動地重用。這回答的是某一台特定機台拿這條路徑會做什麼,包括可及範圍與旋轉軸行為,中間不需要後處理器。

Note

在工具機鏈上播放,需要專案的運動學能解析到一個可用的求解器。遇到無法求解的終點時,該運動會被回報,而不是悄悄丟掉——留意診斷中的 ClToMc--EndpointIkFailed 與 ClToMc--NoToolOffset。

把 CL 轉成 NC

ConvertClToNcFiles (API) 把播放過的 CL 程式寫回成 Fanuc NC,每個來源檔各輸出一個檔案,並以模板代入 [NcName](預設 Output/[NcName].nc)。它要求先前已經在工具機鏈上播放過:這個 session 什麼都沒播時回報 ConvertClToNc--NoPlay;在 ClMillingDevice 上播過時,因為它不會留下任何機台求解資料可供序列化,回報 Writeback-Synthesis--RequiresMcRun,什麼都不寫出。[NcName] 會保留來源檔的副檔名,所以預設模板下 CL/part.cls 會寫成 Output/part.cls.nc。任務 (mission) 可透過 PostExecutionCommand.EnableConvertClToNcFiles (API) 與 PostExecutionCommand.ClToNcFileTemplate (API) 宣告這項寫回。

檔案格式

讀取器解析的是 NX CLSF 記錄(APT 原始碼語言):

記錄 作用
GOTO 刀位——第一個把刀具定位過去(快速瞬移);之後的每一個都切出一段直線 CL 路徑
CIRCLE / MOVARC 預備一段圓弧;接下來的 GOTO 把它收成一段真正的圓弧 CL 路徑
RAPID 把下一個移動標為非切削的快速移動
FEDRAT 進給率(MMPM / IPM)。第一個 FEDRAT 之前的切削 GOTO 沒有進給率:在 ClMillingDevice 上照幾何播放、歷時為零;在工具機鏈上完全不模擬(不去除材料、不檢查碰撞、不計時)。兩邊都會回報(CL 裝置上是 ClMotion--NoFeedrate,工具機鏈上是 McMotion--NoFeedrate)。要模擬這種檔案,請在 CL 檔補上一筆 FEDRAT 記錄
SPINDL 主軸轉速與方向
COOLNT 冷卻液模式(ON / FLOOD / MIST / OFF)
TLDATA 刀具幾何(直徑、圓角半徑、長度、角度)
LOAD/TOOL 換刀到指定的刀具 id

註解($$ 到行尾)與續行(行尾的 $)都會被遵循。這個集合以外的記錄(PAINT、TOOLNO、TOOL PATH、……)會被跳過。

Note

這裡的「APT」指的是 APT 刀具路徑語言(GOTO、CIRCLE、……)。這與刀具幾何頁用的是同一個字的另一個意思——那一頁定義的是刀具幾何。CL 檔的 TLDATA 餵進的正是那同一套刀具幾何模型——見下文。

解析的方言是 Siemens NX(.cls)。其他 CAM 系統以不同的名稱輸出同一族 APT 記錄(CATIA APTSOURCE、Creo CL 檔);那些方言尚未支援解析。

來自檔案的刀具

CL 檔通常自帶刀具定義。遇到 LOAD/TOOL,<id> 時,若刀具庫裡沒有相符的 id,就用它前面的 TLDATA 幾何自動建立刀具。刀具庫裡已經存在的 id 則保留其已配置的刀具——所以你可以為了精確度先把刀具配置好,也可以讓簡單的檔案自給自足。

範例

// 加工機構鏈必須是 ClMillingDevice(在專案設置中設定)。
MachiningResolution_mm = 0.125;
EnablePhysics = false;             // 先做純幾何檢查
PlayClFile("CL/part-op10.cls");    // 重播 CAM 刀位檔
Diff("target/part-op10.stl");      // 把切削結果與設計目標比對

專案在 NC 與 CSV 套組之外,另外保有一組專用的 CL 執行器套組 (runner suit)(MachiningProject.ClsfRunnerSuit (API));解析器本身則是 NxClRunner (API) 預設組。

延伸閱讀