詞彙:SessionProgress(訊息系統)¶
什麼是 SessionProgress?¶
SessionProgress (SessionShell.SessionProgress) 是訊息主體物件,管理 HiNC 腳本工作階段中所產生的所有訊息。它是日誌記錄、過濾與診斷資訊匯出的中央樞紐。
Note
舊名 SessionMessageHost 已標記為 [Obsolete]。請改用 SessionProgress。
訊息類型¶
HiNC 提供四種訊息類型,各有不同嚴重程度與典型顯示行為:
| 類型 | 命令 | 說明 | 典型顯示 |
|---|---|---|---|
| Message | Message |
一般資訊訊息 | 訊息面板 |
| ProgressMessage | ProgressMessage |
進度相關狀態更新 | 進度條/狀態列 |
| WarningMessage | WarningMessage |
警告(不中斷執行) | 訊息面板(黃色) |
| ErrorMessage | ErrorMessage |
錯誤(可能影響執行流程) | 訊息面板(紅色) |
使用範例¶
Message("Starting simulation");
ProgressMessage("Loading workpiece...");
WarningMessage("No cutting engagement detected in this segment");
ErrorMessage("Workpiece does not exist");
訊息標籤¶
訊息可加上標籤以利過濾。標準標籤包含 "Error" 與 "Warning"。匯出訊息時可依一或多個標籤過濾。
顯示訊息¶
所有訊息會自動記錄於工作階段訊息主體,並顯示於 HiNC UI 的 訊息面板。ProgressMessage 另外會更新 進度條。
存取訊息主體¶
匯出訊息¶
AppendMessagesToFile 將訊息寫入文字檔,可選擇依標籤過濾:
// 匯出所有訊息
AppendMessagesToFile("Output/messages.txt");
// 僅匯出錯誤與警告
AppendMessagesToFile("Output/errors.txt", "Error", "Warning");
Tip
仿真結束後匯出訊息,以建立可長期保存的日誌供除錯或報告之用。
常見樣式¶
記錄仿真進度¶
Message("Simulation started");
PlayNcFile("NC/file1.nc");
Message($"Simulation complete. Total steps: {StepCount}");
AppendMessagesToFile("Output/log.txt");
條件式警告¶
錯誤防護¶
透過事件做步級日誌¶
SessionStepBuilt += (preStep, curStep) => {
if (curStep != null)
Message($"Step {curStep.StepIndex}: ToolId={curStep.ToolId}");
};
PlayNcFile("NC/file1.nc");
步選取記錄¶
MachiningStepSelected += (step) => {
if (step != null && step.ToolId == 1)
ProgressMessage($"Tool 1 step selected at line {step.LineNo}");
};
訊息生命週期¶
- 訊息於腳本執行期間,透過四個訊息命令產生
- 所有訊息皆存於
SessionProgress主體物件 - 訊息會持續存在,直至工作階段結束或運行時重置
ResetRuntime()清除事件處理器,但 不會 清除已記錄的訊息- 可隨時使用
AppendMessagesToFile匯出訊息
延伸閱讀¶
- 腳本命令 — 腳本命令基礎
- SessionShell 速查
- 基礎仿真 — 在仿真流程中使用訊息