詞彙:腳本命令¶
什麼是腳本命令?¶
腳本命令 即 HiNC 腳本引擎執行的 C# 敘述。腳本直接引用 SessionShell (API) 的成員與方法 — SessionShell 即全域作用域,無需明確物件參考。
// 以下都是直接以 SessionShell 成員作為全域使用
EnablePhysics = true;
MachiningResolution_mm = 0.125;
PlayNcFile("NC/file1.nc");
Message("Done");
腳本語法基礎¶
腳本使用 原生 C# 語法:
| 功能 | 語法 |
|---|---|
| 敘述結尾 | ; |
| 行尾註解 | // comment |
| 字串插值 | $"Value is {variable}" |
| 正無限大 | double.PositiveInfinity |
| 負無限大 | double.NegativeInfinity |
| 位元 OR(旗標) | Fx|Fy|Fz |
所有標準 C# 語言特性(變數、迴圈、條件、LINQ 等)皆可使用。
腳本任務頁¶
在 HiNC GUI 中,任務 (Task) 頁含有一或多個腳本面板。每個面板具有:
- Order:執行順序(由左至右、由上至下)
- Enabled:腳本是否執行(未勾選即跳過)
- Title:人類參考用標籤,不影響功能
執行模型¶
工作階段生命週期¶
- 腳本依 Task 頁順序執行
- 由
PacePlayer(API) 控制播放 —PlayNcFile之類的腳本命令會阻塞至 NC 程式完成 - 播放器控制命令(
Pace、Pause、Reset)與PacePlayer互動 ResetRuntime清除事件處理器、緩衝區與運行時狀態
事件驅動執行¶
SessionStepBuilt 等事件於仿真期間觸發,可作步級邏輯:
SessionStepBuilt += (preStep, curStep) => {
if (curStep != null)
Message($"Step: ToolId={curStep.ToolId}");
};
PlayNcFile("NC/file1.nc");
事件由 ResetRuntime 清除。
NC 碼中的腳本命令¶
腳本命令可嵌入 NC 註解。以 ;@ 開頭的行會在該 NC 行執行 之前 執行:
對於不支援 ; 為註解字元的控制器(如 FANUC),請包在註解區塊內:
檔案路徑樣板¶
輸出檔的命令支援 [NcName] 標記,會替換為各 NC 檔名稱:
PlayNcFile("NC/file1.nc");
PlayNcFile("NC/file2.nc");
WriteShotFiles("Output/[NcName].shot.csv", 1);
// 產生:Output/file1.nc.shot.csv、Output/file2.nc.shot.csv
所有檔案路徑除非指定為絕對路徑,否則皆以 專案目錄 為基準。
重要警告¶
下列操作可能損壞仿真狀態或產生錯誤結果:
- 仿真期間請勿儲存專案。 系統內部配置(如訓練專屬的解析度覆寫)可能覆寫你的設定。
- 訓練銑削係數期間請勿重置播放器。 請改以關閉專案的方式,避免意外錯誤。
- 訓練期間請勿修改解析度、刀具或控制器設定。 在訓練中途改變這些設定會使結果無效。
- 請勿將
SessionStepBuilt事件中的UpdateNcOptOption與 NC 內嵌優化命令併用。 並行計算可能造成未定義行為。
全域變數¶
Global 提供跨腳本共享資料的鍵值字典:
完整 API 參考¶
完整命令、屬性與事件清單請參閱:
延伸閱讀¶
- SessionShell 速查
- 步 (Step) — 加工步資料模型
- 基礎仿真 — 在仿真流程中使用腳本