工作流程:基礎加工仿真¶
本工作流程從零開始說明如何建立並執行加工仿真,包含專案配置、選項調整、NC 執行與結果檢視。
flowchart TD
Equipment["設定工具機與<br>控制器品牌/型號"]
Job["設定工件、夾具、<br>刀具庫、NC 檔案、<br>控制器補償"]
Option["調整仿真選項<br>(解析度、物理計算等)"]
Run["執行仿真"]
View["檢視結果"]
Equipment --> Job --> Option --> Run --> View
1. 設定工具機與控制器¶
工具機與控制器為固定設備,定義仿真的物理環境。
工具機¶
工具機檔(.mt 檔)提供運動模型與 STL 實體。一旦選定,通常仿真之間不會更動。
控制器¶
選擇控制器品牌與型號(如 Fanuc、Heidenhain、Siemens)。此設定決定 NC 碼的解讀方式。詳見 Heidenhain 支援 與 通用 NC 碼支援。
GUI 操作¶
於 HiNC 應用程式中開啟或建立專案,並透過對應面板設定工具機與控制器,再進行作業設定。
2. 設定作業元件¶
設備固定後,配置每次仿真會變動的作業專屬元件。
Tip
建立專案前要蒐集的完整資料清單(以及一份可交付客戶的盤點表),見 專案資料盤點清單。
作業元件¶
| 元件 | 說明 |
|---|---|
| 工件 | 幾何(STL 或參數化)、材料與座標系 |
| 夾具 (選用) | 參與碰撞檢測的夾具幾何 |
| 刀具庫 | 一支或多支切削刀具,含幾何與刃形定義 |
| NC 檔案 | 要仿真的 NC 程式 |
| 控制器補償 | 刀具補償表、工件補償表與其他控制器專屬預設值 |
Tip
腳本命令中的所有檔案路徑,若未指定絕對路徑,皆相對於專案目錄。
腳本存取¶
工件與夾具物件可透過 SessionShell.Workpiece (API) 與 SessionShell.Fixture (API) 取得。
GUI 操作¶
透過對應面板(工件、夾具、刀具庫視窗)設定每個元件。
3. 調整仿真選項¶
仿真選項控制精度與速度之間的取捨。
3.1 工件實體解析度¶
MachiningResolution_mm (API) 設定工件網格的最小立方體寬度。
合法值為 2 的次方(如 4、2、1、0.5、0.25、0.125)。若提供非 2 次方的值,系統將四捨五入至最近的 2 次方。
Warning
每次將網格寬度減半,計算時間與 RAM 用量可能增加最多 8 倍。建議從較粗解析度起步,必要時再細化。
3.2 顯示快取¶
顯示解析度取決於快取大小。建議值不超過 1000 Mb。
3.3 加工運動解析度¶
加工運動解析度決定每個仿真步的間隔。可選模式:
| 模式 | 命令 | 說明 |
|---|---|---|
| 每轉一步 | MachiningMotionResolution = FeedPerCycle; |
每主軸一轉一個步 |
| 每轉縮放 | MachiningMotionResolution = ScaledFeedPerCycle(0.5); |
每主軸一轉乘以縮放比例 |
| 每刃一步 | MachiningMotionResolution = FeedPerTooth; |
每刃旋轉一步(預設) |
| 固定步進 | MachiningMotionResolution = FixedPace(1, 15); |
固定線性 (mm) 與旋轉 (deg) 解析度 |
Warning
不要用縮放模型尺寸來代替調整網格寬度。 縮放模型尺寸會使內部演算法門檻(最小可切量、浮點轉分數的範圍)失效,產生不規則的幾何瑕疵。請改用解析度設定。
3.4 XML 配置¶
解析度也可在 .hincproj 檔內設定,或於 NC 碼註解中即時調整:
4. 執行仿真¶
有三種方式驅動仿真。
4.1 PlayNcFile — 從檔案執行¶
PlayNcFile (API) 讀取並執行 NC 檔。
4.2 PlayNc — 從字串執行¶
PlayNc (API) 直接從字串執行 NC 碼,適合程式化或動態產生的命令。
4.3 PlayCsvFile — 由 CSV 資料驅動¶
PlayCsvFile (API) 由 CSV 檔(含軸位置、主軸轉速、進給率)驅動仿真。
必要的 CSV 欄位(預設標頭):MC.X、MC.Y、MC.Z、ToolId、SpindleSpeed_rpm、Feedrate_mmdmin。選用:MC.A、MC.B、MC.C、ActualTime、StepDuration。
標頭與時間戳值可用雙引號包覆,解析器會自動去除。ActualTime 接受 HH:mm:ss.fff 或絕對時間 yyyy-MM-dd HH:mm:ss.ffffff 兩種格式(與 MapSeriesByCsvFile (API) 串接時必須用絕對格式,因其以 TimeTag 比對):
"ActualTime","Feedrate_mmdmin","MC.X","MC.Y","MC.Z","SpindleSpeed_rpm","ToolId"
"2026-03-16 15:57:45.559000",10000.0,-351.745,-244.799,-215.799,1270,1
"2026-03-16 15:57:45.705000",10000.0,-351.745,-244.799,-215.799,1270,1
當真實控制器紀錄含有額外欄位(如 t_receive、cnc_delay_s、status)或使用替代欄名(X/Y/Z、feedrate、spindle_speed)時,請在傳入 PlayCsvFile (API) 前先前處理檔案,刪除或重新命名欄位。
Tip
WriteStepFiles (API) 輸出的 CSV 檔可直接由 PlayCsvFile (API) 讀回。
4.4 播放器控制¶
| 命令 | 用途 |
|---|---|
Pace |
插入可暫停的檢查點 |
Pause |
暫停執行 |
Reset |
重置播放器狀態 |
5. 檢視結果¶
5.1 運行時幾何¶
仿真後工件幾何為 運行時幾何(立方體網格)。可儲存後重新載入,避免重新運算初始形狀:
下一次運行時讀回已儲存的幾何:
5.2 步資料檢視¶
每個仿真步都帶有豐富資料(力、力矩、功率、熱、磨耗)。存取個別步:
總步數:
5.3 匯出資料¶
匯出步級 CSV:
匯出波形(shot)CSV:
5.4 訊息¶
利用訊息記錄與追蹤仿真進度:
疑難排解¶
| 現象 | 可能原因 | 處理 |
|---|---|---|
| 仿真極慢 | 解析度過細 | 增大 MachiningResolution_mm |
| 幾何上有不規則凸起 | 用縮放模型尺寸代替解析度 | 僅使用解析度設定,見上方警告 |
| 顯示卡頓 | DispCache_Mb 過大 |
降低顯示快取(建議 < 1000 Mb) |
| 無步資料 | 未執行仿真或刀具未接觸工件 | 確認刀具路徑與工件相交 |
延伸閱讀¶
- Heidenhain 支援 — 控制器設定
- 通用 NC 碼支援 — ISO NC 支援
- 步 (Step) — 步是什麼
- 步階欄位參考 — 步欄位參考