G-CODE FUNDAMENTALS

G-code 完全入門:從 ISO 6983 到 AI 自動生成的一篇搞懂

G-code 是什麼?從 ISO 6983 到 AI 自動生成的 G-code 教學完全入門——文章封面圖
重點摘要(TL;DR) G-code 是什麼?它是 CNC 機台看得懂的程式語言,由一行行「單節」組成,逐步指揮刀具移動、切削與換刀,其位址字元格式由國際標準 ISO 6983 定義。核心指令包含 G00/G01/G02/G03 四個運動模式、F(進給)/S(轉速)/T(換刀)/M(輔助機能)碼,以及 G54 工件座標系。本篇用一段可讀的 G-code 範例逐行拆解這些指令,說明為什麼同一段程式換機台常常不能直接跑(控制器方言),最後談 AI 自動生成 G-code 的能與不能——AI 能加速草擬,但上機前仍需切削模擬與資深技師簽核。

01G-code 是什麼?CNC 的共通語言

G-code(又稱 G 代碼、NC 程式)是 CNC(電腦數值控制)機台看得懂的程式語言。要回答「G-code 是什麼」,最簡單的說法是:它是一份逐行的動作清單,每一行告訴機台刀具要移動到哪個座標、走直線還是走圓弧、進給多快、主軸轉多快,機台的控制器讀一行就執行一行。銑床、車床、加工中心之所以能共用類似的指令,是因為 G-code 的位址字元(address words)格式由國際標準 ISO 6983 定義[1]

在製造工程的架構中,G-code 位於「設計 → 製程規劃 → 加工」這條鏈的最末端:CAD 畫出零件、CAM 決定刀具路徑,最後輸出成機台實際執行的 G-code。經典教科書強調,數值控制的價值在於把加工動作精確、可重複地編碼,讓複雜幾何得以穩定量產[2]。換句話說,看懂 G-code,就是看懂 CNC 加工「最後一哩」到底在下什麼命令。

02一段 G-code 長什麼樣子:逐行拆解

與其背指令表,不如看一段真實的程式。下面是一段面銑(把板件上表面銑平)的簡化 G-code,右側註解說明每一行在做什麼:

%
O1000 (SLIDE PLATE FACE 面銑程式)
G21 G17 G40 G49 G80   公制 / XY 平面 / 取消刀徑與刀長補正 / 取消固定循環
G54                   選用第 1 組工件座標系
T1 M06                換上 1 號刀(面銑刀 D50)
S1200 M03             主軸正轉 1200 rpm
G00 X-30. Y0.         快速定位到起點(空跑,未切削)
G43 H01 Z50.          啟用 1 號刀長補正,Z 到安全高度
G00 Z2.               快速下到工件上方 2mm
G01 Z0. F150.         直線進給下刀到 Z0,進給 150 mm/min
G01 X130. F400.       直線切削,沿 X 走過工件表面
G00 Z50.             快速抬刀到安全高度
M05                   主軸停止
M30                   程式結束並回到開頭
%

每一行稱為一個「單節(block)」,由位址字元加數值組成:G 是準備機能、M 是輔助機能、X/Y/Z 是座標、F 是進給、S 是轉速、T 是刀號。ISO 6983 規範的正是這套位址字元與程式格式[1]。抓住「一行一個動作、由字母+數字堆疊」這個結構,任何一段 G-code 都能逐行讀懂。

03運動指令:G00/G01/G02/G03 與 G54 座標

G 碼裡最常用、也最該先搞懂的是四個運動指令:

指令動作典型用途
G00快速定位(機台最高速)刀具空跑到下一個位置,不切削
G01直線切削進給(需搭配 F)沿直線去除材料,多數銑削的主力
G02順時針圓弧插補切削圓弧、倒圓角(CW)
G03逆時針圓弧插補切削圓弧、倒圓角(CCW)

初學者最常混淆 G00 與 G01:G00 是「趕路」,讓刀具用最高速移動到定點,不保證路徑是精確直線,因此只能用在未接觸工件的空跑;G01 才是真正在「切」,以 F 指定的進給率沿直線去除材料。G02/G03 則把直線換成圓弧,差別只在順時針或逆時針。

這些座標都必須有一個原點基準,這就是 G54 工件座標系的作用。G54~G59 讓操作者把程式裡的座標對應到夾在機台上的實際工件位置——設定好 G54 的零點,程式就不必因為工件夾在工作台哪個角落而改寫。要注意的是,選錯座標系或零點對錯,會讓整段刀具路徑整體偏移,是撞機的常見原因之一,這也是為什麼上機前的模擬驗證不可省略(延伸閱讀:撞機預防與切削模擬)。

04F/S/T/M 碼:進給、轉速、換刀與輔助機能

運動指令決定「往哪走」,F/S/T/M 碼則決定「怎麼走、用什麼切」:

F 與 S 不是隨便填的數字。切削力學與 CNC 設計的權威教材指出,進給、轉速與切深必須依刀具—工件系統的力學與振動特性選擇,否則輕則精度不良與刀痕,重則顫振、斷刀甚至撞機[3]。實務上,這些參數應以廠內刀具庫的標準切削參數為邊界,而不是憑感覺輸入——這也是 AI 生成 G-code 時必須把廠內參數當成約束條件的原因。

05控制器方言:為什麼換機台不能直接跑

很多人以為 G-code 既然有國際標準,就應該一份程式到處能跑。實情是:ISO 6983 只規範了基本的位址字元與格式,各家控制器在固定循環、巨集、起頭代碼與參數呼叫上都發展出自己的「方言」。學界早已指出,G-code 只描述刀具的低階運動、不保留設計與製程資訊,加上標準涵蓋範圍有限,導致不同控制器之間互通性差、程式難以直接移植[4]

具體來說,同一段程式從一台 FANUC 控制器搬到三菱或海德漢,可能遇到:鑽孔固定循環(G81/G83)的參數寫法不同、換刀與主軸起頭順序有別、子程式與巨集語法不相容。再加上每台機的刀具庫、行程範圍與夾治具都不一樣,「照抄上機」幾乎必然出事。正確做法是:換機台等於換一份需求,程式要重新調整並重新做 3D 切削模擬驗證。這正是 Mastercam 等 CAM 軟體的後處理器(post processor)存在的理由,也是 AI CAM 必須把控制器型號納入生成流程的原因。

06從手寫到 AI 自動生成 G-code

早期程式師逐行手寫 G-code,後來 CAM 軟體讓工程師以圖形化方式規劃刀具路徑再輸出程式,大幅降低出錯率。AI 自動生成 G-code 是這條路線的再一次延伸:把客戶的 2D 圖面辨識成加工特徵、建成 3D 模型,再依廠內刀具庫、控制器型號與行程/轉速上限,自動草擬出可執行的程式(延伸閱讀:AI 如何把 2D 圖面變成可驗證的 G-code)。工程師的角色,從「逐格操作」轉為「審核與修正」。

但自動生成不等於可以盲目上機。前面談到的控制器方言、F/S 參數的力學邊界、G54 零點與夾持條件,AI 都可能判斷不足;公差、基準與特殊工法更牽涉裝配意圖與現場經驗。因此可靠的導入模式是 human-in-the-loop:AI 負責讀圖、建模、產碼與交叉比對,加速最耗時的準備工作;資深技師則在上機前完成切削模擬與最終簽核,確認刀長補正、進退刀與行程安全。這也是本站產品一貫的界線——AI 加速準備,師傅保留最終判斷。

一句話總結:G-code 是 CNC 的執行語言,ISO 6983 給了共通骨架,但方言、參數與現場條件讓「一份程式到處跑」成為神話。AI 能把草擬做得又快又一致,最後一關仍要交回給人。

07常見問題 FAQ

G-code 是什麼?跟 CNC 有什麼關係?

G-code 是 CNC 機台看得懂的程式語言,由一行行「單節」組成,逐步告訴機台刀具要移動到哪個座標、用多快的進給與轉速切削。它的位址字元格式由 ISO 6983 定義,是銑床、車床、加工中心共通的基礎控制語言。

G00 和 G01 有什麼不同?

G00 是快速定位,讓刀具以機台最高速移動到目標點,用於未接觸工件的空跑,不保證直線切削精度;G01 是直線切削進給,必須搭配 F 進給率沿直線去除材料。G00 用來「趕路」,G01 才是真正在「切」。

同一段 G-code 可以換不同機台直接執行嗎?

通常不行。ISO 6983 只規範基本格式,各家控制器在固定循環、巨集與起頭代碼上存在方言差異,加上刀具庫、行程與夾治具不同,換機台前必須調整並重新模擬驗證,不能直接照搬上機。

AI 自動生成的 G-code 可以直接上機嗎?

不建議。AI 自動生成 G-code 能大幅加速編程,但控制器方言、切削參數、公差與現場工法仍需資深技師覆核,並先經 3D 切削模擬確認無過切、干涉與行程超限。正確模式是 AI 加速草擬、專業人員做最終簽核的 human-in-the-loop 流程。

訂閱技術專欄電子報

新文章與影片導讀上線時通知你——不塞爆信箱,一鍵取消訂閱。

FROM DRAWING TO VERIFIED G-CODE

用一張真實圖面,看 AI 自動生成 G-code 走多遠

從圖面辨識、刀具庫與控制器設定到切削模擬與師傅覆核,我們協助定義適合你廠內的 AI 編程導入方式。

聯絡導入顧問 教育訓練課程

← 回 BestAI CAM 產品介紹

08參考文獻

  1. ISO 6983-1:2009. Automation systems and integration — Numerical control of machines — Program format and definitions of address words. International Organization for Standardization.
  2. Kalpakjian, S., & Schmid, S. R. (2020). Manufacturing Engineering and Technology (8th ed.). Pearson.
  3. Altintas, Y. (2012). Manufacturing Automation: Metal Cutting Mechanics, Machine Tool Vibrations, and CNC Design (2nd ed.). Cambridge University Press.
  4. Xu, X. W., & Newman, S. T. (2006). Making CNC machine tools more open, interoperable and intelligent — a review of the technologies. Computers in Industry, 57(2), 141–152.