CNC銑床基本介紹   CNC銑床如圖1所示。因無自動刀具交換裝置( ATC , Automatic Toos Changer )及刀具庫,故必須用手動方式換刀。圖2所示為立式綜合切削中心機。圖3所示為臥式綜合切削中心機。綜合切削中心機 ( MC , Machine Center ) 因具備ATC及刀具庫,故可將使用的刀具預先安排存放於刀具庫內,需要時再下指令,由ATC自動換刀。所以綜合切削中心機即CNC銑床加上ATC及刀具庫。     圖1 CNC銑床  圖2 立式綜合切削中心機     圖4 圖盤型刀具庫      圖3 臥式綜合切削中心機     刀具庫有二種:圓盤型,如圖4所示。鏈條型,如圖5所示。圓盤型刀具庫用於刀具數目較少者,且換刀方式大都採用無臂式的換刀,換刀速度較慢,但故障率較少。鍵條型刀具庫用於刀具數目較多者,且換刀方式大都採用有臂式的換刀,換刀速度較快。有臂式的換刀臂如圖6所示。 綜合切削中心機為了減少裝置工件的時間,大型工件常使用自動梭台交換裝置(APC,Automatic Pallete Changer);如圖7所示;小型工件可用機械手(Robot) 上下工件。如圖8所示。    圖5 鏈條型刀具庫 圖6 有臂式的換刀臂      圖7 臥式綜合切削中心機附自動梭台交換裝置 圖8 立式綜合切削中心機附機械手    綜合切削中心機為了增加加工複雜性,常在床台上加裝第四軸旋轉軸,如圖9所示,甚至增加兩旋轉軸成為5軸加工機,如圖10所示。5軸加工機主要應用於幾何外形複雜的航太零件加工及模具加工。    圖10 五軸加工機     圖9 加裝A軸的四軸加工機   CNC銑床(或加工中心機)程式製作 電腦數值控制工具機是經由程式中的指令操控電腦數值控制系統去執行以往必須由人工操作的所有加工動作。故學習程式製作必須完全了解程式中指令的功能及格式,這樣才能將傳統人工操作工具機的加工經驗及相關知識,很正常的用指令來描述加工順序。簡而言之,CNC銑床(或MC)的程式就是依據您已具有的加工知識和加工順序,用正確的指令依序描述組合而成。   故製作CNC銑床(或MC)程式時必須考慮下列幾點: 1. 依工件形狀及尺寸標示決定程式原點位置及加工順序。  2. 工件的夾持方法。用虎鉗夾持或用T槽螺栓、壓板、梯枕或製作特殊夾具。  3. 刀具的選擇:包括銑刀的直徑、刀刃長度、材質及其他刀具的選用並決定各把刀具的刀號及刀長補正號碼、刀徑補正號碼。  4. 切削條件:包括各把刀具的主軸轉速、切削深度、進給速率、精銑預留量等。  2-1 程式製作 CNC程式是由指令組成,而指令是由英文字母與數值組成(如N10,G28,G90,G91,M03,F100,S2500,T01 等)或特殊符號(如"/"選擇性單節刪除指令 , ";" 單節結束指令)。 例子:   G28 G91 Z0;   G28 X0 Y0;   G54;   M06 T01;   M03 S1000;   G90 G00 G43 Z5. H01;   G00 G41 X25. Y30. D11;   G01 Z -5. F50;   M30;      上面例子程式中每一列即稱為一個單節 ( Block ) ,每一單節是由至少一個字語 ( Word ) 所組成,字語是由一個位址 ( Address ) 和數值 ( Number ) 組成。每一單節後面加一單節結束符號";",以界定單節的範圍。如此CNC控制器即依照程式中的單節指令,依序執行程式。      位址用英文字母表示,其意義如表1所示,位址依照已設定的程式機能而有不同的意義 ,其目的在限定其後數值的意義。 表1  各位址之意義 機 能 位 址 意 義  程式號碼 : (ISO),O (EIA) 程式號碼  順序號碼 N 順序號碼  準備機能 G 動作模式(直線、圓孤等)  座標軸字語 X、Y、Z 座標軸移動指令   A、B、C、U、V、W 附加軸移動指令   R 圓弧半徑   I、J、K 圓弧中心座標  進給機能 F 進給速率  主軸轉速機能 S 主軸轉速  刀具機能 T 刀具號碼、刀具補正號碼  輔助機能 M 機械側ON/OFF控制   B 床台位置  補正號碼 H、D 補正號碼指令  暫 停 P、X 暫停時間  副程式號碼指定 P 副程式號碼指定  重覆次數 L 副程式重覆次數  參 數 P、Q、R 固定循環   2-1.1 資料輸入格式 CNC程式中的每一指定皆有一定的固定格式,使用不同的控制器其格式亦不同,故必須依據該控制器的指令格式書寫指令,若其格式有錯誤,則程式將不被執行而出現警示訊息。    其中尤以數值資料輸入時應特別小心。一般CNC銑床或MC皆可選擇用公制單位"mm" 或英制單位"英吋 " 為座標數值的單位。公制可精確到0.001mm,英制可精確到0.0001英吋, 此也是一般CNC機械的最小移動量。若輸入X1.23456時,實際輸入值是X1.234mm或X1.2345英吋,多餘的數值即被忽略不計。且字數也不能太多,一般以7個字為限,如輸入X1.2345678, 因超過7個字,會出現警示訊息,表1是位址和指令數值範圍。    表1中所列是電腦能接受之指令範圍,而CNC工具機實際使用範圍受到其機械本身的限制,故應參考CNC工具機的操作手冊而定。例如表1中X軸可移動±99999.999mm,但實際上CNC工具機X軸的行程可能只有650mm,進給速率F最大可輸入100000.0mm∕min,但實際上CNC工具機可能限制在3000mm∕min以下。故在程式製作時,要確定不超過CNC工具機規格 的實際限制,所以一定要參照CNC工具機製造廠發行的說明書。 表1  位址與指令範圍(FANUC 0M) 機 能 位 址 公制單位 英制單位  程式號碼 : (ISO) O (EIA) 1-9999 1-9999  順序號碼 N 1-9999 1-9999  準備機能 G 0-99 0-99  坐標軸字語 X、Y、Z、Q、R、 I、J、K  ±99999.999mm ±9999.9999inch   A、B、C ±99999.999deg ±9999.9999deg  進給機能 F 1-100000.0mm/min 0.01-400.0inch/min  主軸轉速機能 S 0-9999 0-9999  刀具機能 T 0-99 0-99  輔助機能 M 0-99 0-99  暫 留 X、P 0-99999.999sec 0-99999.999sec  副程式號碼指定 P 1-9999 1-9999  重覆次數 L 1-9999 1-9999  補正號碼 D、H 0-32 0-32   2-1.2 CNC工具機座標系統 CNC銑床或MC是依據座標系統來確定其刀具運動的路徑,因此座標系統對CNC程式設計極為重要。    CNC工具機各軸的標註,CNS是採用右手直角座標系統。如圖1所示,大姆指表示X軸 ,食指表示Y軸,中指表示Z軸,且手指頭所指的方向為正方向。X、Y、Z軸向是用於標註線性移動軸;另外定義三個旋轉軸,繞X軸旋轉者稱為A軸,繞Y軸旋轉者稱為B軸,繞Z軸旋轉者稱為C軸。三旋轉軸的正方向皆定義為順著移動軸正方向看,順時針迴轉為正,逆時針迴轉為負,如圖2所示。    (a)右手直角座標系統 (b)X、Y、Z移動軸 A、B、C旋轉軸  圖1 圖2    CNC工具機先定義Z軸,以工具機的主軸線為Z軸,再以刀具遠離工件的方向為正,故以 立式CNC銑床為例,主軸向上為"+Z"方向,向下為 "-Z" 方向,如圖3所示。接著定 義X軸,以操作者面向床柱,其刀具沿左右方向移動者為X軸,且規定向右為正方向;最後依 右手直角座標系統決定Y軸,故其刀具沿前後方向移動者為Y軸,向前為正Y方向,向後為負Y方向。以上定義者稱為程式座標系(或稱為工件座標系),其三軸的交點即1-4節所述的程式原點。圖3的右側所示即為程式座標系。程式設計人員是依據程式座標系來指述刀具動路,且必須假設工件固定不動,刀具沿著工件輪廓移動加工。    圖3所示,標示於CNC工具機上的座標軸所形成的座標系稱為機械座標系,一般CNC 銑床或MC在機械上會貼上機械座標系的軸向。機械的移動是根據機械座標系,因為CNC銑床 或MC在X、Y軸上實際是工件移動而非刀具移動,所以為了符合程式設計人員假設工件固定不動,其機械座標系的X、Y軸正、負方向與程式座標系相反。故程式設計人員指令刀具向程式 座標系的X軸正方向移動,而實際上是工件向機械座標系的X軸正方向移動,使兩者一致。    圖3 程式座標系與機械座標系  2-1.3 座標位置的表示方式:絕對值和增量值   CNC程式除了一些基本設定,如程式原點,刀具號碼,主軸轉速,進給速率等外,最主要的是命令刀具移動或切削至某一座標位置。而座標位置的表示有絕對值和增量值兩種。絕對值是以"程式原點"為依據來表示座標位置。增量值是以"前一點"為依據來表示兩點間實際的向量值(包括距離和方向)。    CNC銑床或MC大都以G90指令設定X、Y、Z數值為絕對值;用G91指令設定X、Y、Z數值為增量值。    在同一程式中可以增量值與絕對值混合使用。使用原則是依據工件圖上尺寸的標示,用何種方式表示較方便,則使用之。茲以圖1、圖2及圖3說明之。 絕對值指令格式:G90 X__Y__Z__;  增量值指令格式:G91 X__Y__Z__;  在使用上,大都以絕對值和增量值混合使用較多。簡而言之,不用加減計算即可得到座標 位置,則以那種方式表示之,因比較方便也。茲以圖3所示之工件圖說明之。  假設銑刀已定位至H點,接著沿A→B→C→D→E→F→G→程式原點→A點,完成輪廓切削的程式如下: : : ? ?  G90 G01 X18. F100; => H → B,用絕對值表示較方便。  G91 X35. Y -20.; => B → C,用增量值表示較方便。  G90 X92.; => C → D,用絕對值表示較方便。  Y15.; => D → E,用絕對值表示較方便。  G91 X -60.; => E → F,用增量值表示較方便。  Y -15.; => F → G,增量值或絕對值皆方便,但沿用上單節增量指令, 可不必再用G90設定為絕對值,故用增量值表示 之。  X -32.; => G→程式原點,理由同上。  Y60.; => 程式原點→A,理由同上。  : : ?   2-1.4 座標位置數值的表示方式 CNC程式即控制刀具移動到某座標位置,其座標位置數值的表示方式有2種: 1. 用小數點表示法:即數值的表示用小數點"."明確的標示個位在那裏。如"X25.36",其中5為個位,故數值大小很明確。  2. 不用小數點表示法:即數值中無小數點者。則CNC控制器會將此數值乘以最小移動量(公制 :0.001mm,英制0.0001英吋)做為輸入數值。如"X25",則CNC控制器會將 25 × 0.001mm = 0.025mm做為輸入數值。     所以要表示"貳拾伍公厘",可用"25."或"25000"表示,一般用小數點表示法較方便, 並可節省系統之記憶空間,故常被使用。    以下之位址均可選擇使用小數點表示法或不使用小數點表示法:X、Y、Z、I、J、K、F、 R等。    但也有一些位址不允許使用小數點表示法,如P、Q、D等。例如暫停指令,如指令程式暫 停5秒,必須如下書寫:   G04 X5.;或G04 X5000;或G04 U5.;或G04 U5000;或G04 P4000;皆可。   一般皆採用小數點表示方式來描述座標位置數值,故在鍵入CNC程式,尤其是座標數值是 整數時,常常會遺漏小數點。如欲輸入"貳拾伍公厘",但鍵入"Z25",其實際的數值是0.025mm,相差1000倍,可能會撞機或大量銑削,不可不謹慎。    程式中用小數點表示與不用小數點表示的數值,可以混合使用。 如下面例1:例1. G00 X25. Y3000 Z5.;   G01 Z -5. F100.;   X36000 Y50.;   某些專用的G機能指令必須置於特定的數值之前。    例2. G20; => 設定英制單位。   X2.0 G04; => 其暫停時間是20sec。因為現處於英制單位 (G20) 故X2.0先被以 距離解碼為20000吋,接著執行G04暫停指令,則20000會被轉換成20sec。  故例2若寫成如例3,則暫停時間為2sec。   例3. G20; ? ?   G04 X2.0; => 其暫停時間為2sec。因為X2.0在 G04之後,直接被解讀為時間,以 sec 為 單位,故X2.0是2sec。     例4. F100. G98; (錯誤)  ? G98 F100.; (正確),表示進給速率是100 mm / min。   2-1.5 程式號碼:O □ □ □ □ 早期的數值控制 ( NC ) 機械,因無記憶體,故程式是儲存在紙帶上,執行時,常以光學 式讀帶機將紙帶上的程式讀入控制器內,再依指令控制機械運作。圖1是EIA編碼的NC紙帶 。目前電腦數值控制 ( CNC , Comput Number Contral ) 機械,都具有記憶程式的功能。將CNC 程式儲存在記憶體內,為了區別不同的程式,故在程式的最前端用程式號碼以區分之,方便日後欲執行那一程式時,只需呼叫出來,即可進行編輯或執行程式。  图1 目前CNC程式的編碼有二種:EIA編碼或ISO編碼,在台灣大多使用EIA編碼。在CNC控制器內,一般皆可接受這二種編碼,故為了區別起見,程式號碼以位址 "O" 表示者是EIA編碼;以位址":"表示者是ISO編碼,如表所示。 位址與指令範圍(FANUC 0M) 機 能 位 址 公制單位 英制單位  程式號碼 : (ISO) O (EIA) 1-9999 1-9999  順序號碼 N 1-9999 1-9999  準備機能 G 0-99 0-99  坐標軸字語 X、Y、Z、Q、R、 I、J、K  ±99999.999mm ±9999.9999inch   A、B、C ±99999.999deg ±9999.9999deg  進給機能 F 1-100000.0mm/min 0.01-400.0inch/min  主軸轉速機能 S 0-9999 0-9999  刀具機能 T 0-99 0-99  輔助機能 M 0-99 0-99  暫 留 X、P 0-99999.999sec 0-99999.999sec  副程式號碼指定 P 1-9999 1-9999  重覆次數 L 1-9999 1-9999  補正號碼 D、H 0-32 0-32  程式號碼以位址O及4位數字組成,一般控制器大多從1~9999之範內任意選擇使用。 例如: O3838 =>表示程式號碼為3838的CNC程式。(EIA)  ? :4949 =>表示程式號碼為4949的CNC程式。(ISO)   2-1.6 順序號碼:N □ □ □ □ CNC程式的每一單節之前可以加一順序號碼,以位址N後面加上1~9999數字表示之。   順序號碼與CNC程式的加工順序無關,它只是那一單節的代號,故可任意的編號。但最好以由小到大的順序編號,較符合人類的一般思路。   為了節省記憶體空間,故一般CNC程式常不使用順序號碼於每一單節前面。但常用於標示加工種類如下列例子: N1; =>粗銑外形  : ?  N2; =>粗銑凹槽  : ?  N3; =>精銑外形及凹槽  : ?  N4; =>鑽中心孔  : ?  N5; =>鑽φ7.8鑽頭  : ?  N6; =>鑽φ6.8鑽頭  : ?  N7; =>鉸孔φ8H7  : ?  N8; =>攻螺紋M8×1.25  2-1.7 選擇性單節刪除:”/” 在單節的最前端加一斜線"/"(選擇性單節刪除指令)時,該單節是否被執行,是由執 行操作面板上的選擇性單節刪除開關來決定。當此開關處於"ON"(燈亮),則該單節會被忽 略而不被執行;當此開關處於 "OFF" (燈熄),則該單節會被執行。所以程式中有"/"指令 之單節可由操作者視情況選擇該單節是否被執行。     例子:   N1;   =>粗銑外形   :   /M00;   N2;   =>粗銑凹槽   :   /M00;   N3;   =>精銑外形   :   /M00;   N4;   =>精銑凹槽      以上例子,當單節刪除開關處於"ON"時,則所有的M00(程式停止指令)皆不被執行。反之設於 "OFF" ,則全部執行。   "/"指令常置於單節的最前端,若是置於單節中的任何位置,則從 "/" 至";"(單 節結束)間之所有指令皆被忽略不執行。   若含有"/"指令的單節被讀入緩衝暫存區後,再將單節刪除開關 "ON" ,則此單節因已被辨認正確無誤,故會被執行。 2-1.8 主軸轉速機能:S □ □ □ □ 主軸轉速機能又稱為S機能,係用於指令主軸的迴轉速數值 (rpm) 。S機能以位址S後面接 4位數字組成 。 如其指令的數值大於或小於製造廠商所設定之最高或最低轉速時,將以廠商所 設定的最高或最低轉速為實際轉速。一般MC的轉速0~6000rpm。   在操作中為了實際加工條件之需要,亦可由執行操作面板之"主軸轉速調整率"旋鈕來調整主軸實際轉速。   S指令只是設定主軸轉數大小,並不會使主軸迴轉,需待有M03(主軸正轉)或M04(主 軸逆轉)指令時,主軸才開始旋轉。 例子:   S1000 M03;=>主軸以順時針方向轉1000rpm。   主轉轉速可由下列公式計算而得   S=1000 V / πD   S:主軸轉速 rpm   V:切削速度 m / min   D:刀具直徑 mm   π:圓周率 3.14 例題:已知用φ10 mm高速鋼端銑刀,V=22 m / min,求S。 解答:S = 1000 × 22 / 3.14 × 10 = 700 rpm。 2-1.9 進給速率機能:又稱為F機能 F機能用於控制刀具移動時的速率,如圖1所示。F後面所接數值代表每分鐘刀具進給量 ,單位為mm / min。      F機能指令值如超過製造廠商所設定之範圍時,則以廠商所設定之最高或最低進給率為實際進給率。   在操作中為了實際加工條件之需要,亦可由執行操作面板上之"切削進給率"旋鈕來調整實際進給率。 F機能一經設定後如未被重新指定,則表示先前所設定之進給率繼續有效。  F機能的數值可由下列公式計算而得。  F = F t × T × S  F t:銑刀每刃的進給量 mm / tooth  T :銑刀的刀刃數  S :刀具的轉數 rpm  例題: 使用φ75mm,6刃的面銑刀,銑削碳鋼表面,V=100m/min,Ft=0.08mm/刃,求S及F。  解答: S = 1000 V / π D = 1000 * 100 / = 425 rpm  ? F = F t × T × S = 0.08 × 6 × 425 = 204 mm / min      刀具材質及被切削材料不同,則切削速度,每刃的進給量亦不相同。 2-1.10 刀具機能:T □ □ 刀具機能又稱為 T 機能,CNC銑床無ATC,必須用手換刀,所以T機能是用於MC。T 機能 以位址T後面接2位數字組成。   MC的刀具庫有二種:一種是圓盤型(如第1章圖4所示),另一種為鍵條型(如第1章圖5所示)。換刀的方式分無臂式(如第1章圖4所示)及有臂式(如第1章圖6所示)兩種。   無臂式換刀方式是刀具庫靠向主軸,先卸下主軸上的刀具,再旋轉至欲換的刀具,上升裝 上主軸。此種刀具庫大都用於圓盤型較多,且是固定刀號式(即1號刀必須插回1號刀具庫內), 故換刀指令的書寫方式如下:   M06 T02;=>M06(換刀指令),執行時,主軸上的刀具先裝回刀具庫,再旋轉至2號刀, 將2號刀裝上主軸孔內。   有臂式換刀大都配合鏈條型刀具庫且是無固定刀號式【即1號刀不一定插回1號刀具庫內, 其刀具庫上的刀號與設定的刀號由控制器的PLC(可程式控制器)管理】。此種換刀方式的T指 令後面所接數字代表欲呼叫刀具的號碼。當T機能被執行時,被呼叫的刀具會轉至準備換刀位置,但無換刀動作,因此T指令可在換刀指令M06之前即以設定,以節省換刀時等待刀具之時間。故有換刀臂式的換刀程式指令書寫如下 T01; => 1號刀就換刀位置。  : ? ?  M06 T03; => M06換刀指令,將1號刀換到主軸孔內,3號刀就換刀位置。  : ? ?  M06 T04; => M06換刀指令,將3號刀換到主軸孔內,4號刀就換刀位置。  : ? ?  M06 T05; => M06換刀指令,將4號刀換到主軸孔內,5號刀就換刀位置。  執行刀具交換時,並非刀具在任何位置均可交換,各製造廠商依其設計不同,均在一安全位置,實施刀具交換動作,以避免與床台、工件發生碰撞。Z軸的機械原點位置是遠離工件最 遠的安全位置,故一般以Z軸先回歸機械原點後,才能執行換刀指令。(但有些製造廠商,如 台中精機的MC除了Z軸先回歸HOME點外,也必須做第二參考點復歸,即G30指令)。故MC的換刀程式應如下書寫: 1. 只需Z軸回HOME點,(無臂式的換刀)  G91 G28 Z0; => Z軸回歸HOME點。  M06 T03; => 主軸更換為3號刀。  : ?  G91 G28 Z0; ?  M06 T04; => 主軸更換為4號刀。  : ?  G91 G28 Z0; ?  M06 T05; => 主軸更換為5號刀。  : ?   2. Z軸先回歸HOME點且必須Y軸做第二參考點復歸G30 Y0;(有臂式的換刀)  T01; => 1號刀就換刀位置。  G91 G28 Z0; => Z軸回歸HOME點。  G30 Y0; => Y軸第二參考點復歸。  M06 T03; => 將1號刀換到主軸孔內,3號刀就換刀位置。  : ?  G91 G28 Z0; ?  G30 Y0; ?  M06 T04; =>將3號刀換到主軸孔內,4號刀就換刀位置。  : ?  G91 G28 Z0; ?  G30 Y0; ?  M06 T05; =>將4號刀換到主軸孔內,5號刀就換刀位置。  : ?  2-1.11 輔助機能(又稱為M機能)M □ □ 在數值控制機械上,有些單純的開(ON)或關(OFF)的動作,如主軸正轉、主軸停止、切削劑開、切削劑關等,用位址M後面接2位數字組成指令,稱為輔助機能。   通常M機能除某些有通用性的標準碼外(如M03,M05,M08,M09,M30等),亦可由製 造廠商依其機械之動作要求,設計出不同的M指令,以為控制不同之開/關動作,或預留I/O(輸入/輸出)接點,作為操作者自行聯結其他週邊設備使用。   在同一單節中若有兩個M機能出現時,雖其動作不相衝突,但以排列在最後面的M機能有效,前面的M機能皆被忽略而不執行。   例如:S600 M03 M08;=>執行此單節時,主軸不會正轉,只有噴出切削劑。   一般CNC機械M機能的前導零可省略,如M01可用M1表示,M03可用M3來表示,餘者類推,如此可節省記憶體空間及鍵入的字數。   M機能的範圍由M00至M99,不同的M機能代表不同的動作,較常用者如表1所示。現分述如下: 表1 輔助機能之字語及其功能 字語 功 能  M00 程式停止  M01 選擇性程式停止  M02 程式結束  M03 主軸正轉  M04 主軸反轉  M05 主軸停止  M06 自動換刀  M07 切削劑開(霧狀)  M08 切削劑開  M09 切削劑關  M19 主軸定向停止  M30 程式結束(記憶回原)  M98 主程式呼叫副程式  M99 副程式結束,並跳回主程式  1. M00:程式停止 程式中若使用M00指令,於執行至M00指令時,程式即停止執行,且主軸停止轉動、切削 劑關閉。若欲再繼續執行下一單節,只要按下CYCLE START程式啟動鍵,則主軸轉動、切削 劑開啟,繼續執行M00後面的程式。M00指令一般均單獨成為一個單節使用。  2. M01:選擇性程式停止 此一指令的功能和M00相同,但選擇停止或不停止,可由執行操作面板上的"選擇停止"按鈕來控制。當按鈕置於ON(燈亮)時則M01有效,其功能等於M00,若按鈕置於OFF(燈熄)時,則M01將不被執行,即程式不會停止。 M00和M01常用在CNC銑床於粗銑後執行M00或M01,此時,則可用手動方式更換精銑刀 ,再按CYCLE START程式執行鍵,續繼執行精銑程式,其他加工,以此類推,如下面例子說明 例子:  N1; => 粗銑  : ? ?  G00 G90 Z100.; => 手動換刀安全點。  M00; => 程式停止。將"模式選擇"旋鈕轉至MPG微調操作,用手動更換精銑刀,再將旋鈕轉回AUTO自動執行,再按CYCLE START程式啟動鍵,繼續往下執行程式。  N2; => 精銑  : ? ?  G00 G90 Z100; ? ?  M00; => 程式停止,同上M00說明更換中心鑽頭。  N3; => 鑽中心孔  : ? ?  G00 G90 Z00.; ? ?  M00; => 程式停止,同上M00說明更換φ7.8鑽頭。  N4; => 鑽φ7.8mm孔  : ? ?  G00 G90 Z100.; ? ?  M00; => 程式停止,同上M00說明更換φ8H7鉸刀。  N5; => 鉸孔  : ? ?  M30; => 程式結束。  3. M02:程式結束 此指令應置於程式最後單節,表示程式到此結束。此指令會自動將主軸停止(M05)及關閉切削劑(M09),但程式執行指標(CURSOR)不會自動回到程式的第一單節,而停在M02 此單節上。如欲使程式執行指標回到程式開頭,必須先將"模式選擇"鈕轉至EDIT編輯上, 再按RESET鍵,使程式執行指標回到程式開頭。  4.M03:主軸正轉 程式執行至M03,主軸即正方向旋轉(由主軸上方,向床台方向看,順時針方向旋轉)。參考圖1(a)。一般銑刀大都用主軸正轉M03。  5.M04:主軸反轉 程式執行至M04,主軸即反方向旋轉(由主軸上方,向床台方向看,逆時針方向旋轉)。參考 圖1(b)。   6.M05:主軸停止    程式執行至M05,主軸即瞬間停止,此指令用於下列情況:  ( 1 ) 程式結束前( 但一般常可省略,因為M02,M30指令皆包含 M05 )。  ( 2 ) 若CNC機械有主軸高速檔(M42)、主軸低速檔(M41)指令 時,在換檔之間,必須使用 M05,使主軸停止再換檔,以免損壞換檔機構。  ( 3 ) 主軸正、反轉之間的轉換,也須加入此指令,使主軸停止後,再變換轉向指令,以免伺服馬達受損。  7.M06:自動換刀 程式執行至M06,控制器即命令ATC(自動刀具交換裝置)執行換刀的動作。其換刀動作及程式寫法請參考2-1.10T機能說明。 8. M07:開啟霧狀切削劑 有噴霧裝置之機械,令其開啟噴霧泵浦,噴出霧狀切削劑。 9. M08:切削劑噴出 程式執行至M08,即啟動切削劑泵浦,但必須配合執行操作面板上的 CLNT AUTO鍵,處於"ON" ( 燈亮 ) 狀態。 ( 切削液程式鍵,處於ON ) 否則泵浦不會啟動。 一般CNC機械主軸附近有一閥門可以手動調節切削劑流量大小。 10.M09:噴霧及切削劑關閉 令命噴霧及冷卻劑泵浦關閉,停止切削劑噴出。常用於程式執行完畢之前。(但常可省略, 因為一般M02、M30指令皆包含M09)。 11.M19:主軸定向停止 令主軸旋轉至一固定之方向而後停止旋轉,於裝置精搪孔刀及背搪孔刀使用G76或G87指 令時,因其包含M19指令,且刀具會平移一小段距離。故必須先以MDI方式執行19指令,以確定偏位方向,以便提供給G76或G87指令使用。 12.M30:程式結束 此指令應置於程式最後單節,表示程式到此結束。此指令會自動將主軸停止(M05)及關 閉切削劑(M09),且程式執行指標會自動回到程式的第一單,以方便此程式再次被執行。此即是與M02指令不同之處,故程式結束大多使用M30較方便。 13.M98:主程式呼叫副程式 此指令置於主程式之某一單節,當執行至M98時,控制器,即從記憶體內呼叫M98後面所指定之副程式出來執行。執行次數大多由1~99。指令格式:  此指令的用法,可參考 2-1.20節的例1。 14.M99:副程式結束並跳回主程式 此指令用於副程式最後單節,表示副程式結束,且命令程式執行指標跳回主程式中M98的下一單節繼續執行程式。 M99指令也可用於主程式最後單節,此時程式執行指標會跳回主程式的第一單節繼續執行此程式,所以此程式將一直重覆執行,除非按下RESET鍵才能中斷執行。此種方法常用於CNC銑床或MC開機後的暖機程式,如下面例子可供參考。(也常用於展覽會場展示用)。 CNC銑床或MC暖機程式:(此程式適合無臂式ATC)  O8888; G91 G28 Z0; => Z軸回歸機械原點。  G28 X0 Y0; => X、Y軸回歸機械原點。  M06 T01; => 將1號刀裝上主軸孔內。  M03 S100; => 主軸正轉100 rpm。  G01 G91 X500. Y -350. F50.; => 以50mm/min進給速率移動到 X500. Y-350.。  Z -400.; => Z軸向下移動。  X -450. Y300.; => X、Y軸移動。  G28 Z0; => Z軸歸HOME點。  M06 T07; => 將7號刀裝上主軸。  Z -400.; => Z軸向下移動。  X500. Y -350.; => X、Y軸移動。  Z200.; => Z軸向上移動。  X -250. Y170.; => X、Y軸移動。  G28 Z0; => Z軸歸HOME點。  M06 T14; => 將14號刀裝上主軸。  Z -400.; => Z軸向上移動。  M99; => 將程式執行指標跳回第一單節繼續執行此程式。   準備機能(又稱為G機能):G □ □ G機能是命令機械準備以何種方式切削加工或移動。以位址G後面接2位數字組成,其範圍由G00~G99,不同的G機能代表不同的意義與不同的動作方式,如表1是常用的G機能。 表1 準備機能之字語及其機能(FANUC 0M) 字語 機 能 組群 分類  ★G00 快速定位 01 B  G01 直線切削  B  G02 順時針圓弧切削  B  G03 反時針圓弧切削  B  G04 暫停 00 B  G09 確實停止檢驗  B  G10 自動程式原點補正,刀具補正設定  B  ★G17 XY平面選擇 02 B  G18 ZX平面選擇  B  G19 YZ平面選擇  B  G20 英制單位輸入選擇 06 O  G21 公制單位輸入選擇  O  ★G27 機械原點復歸核對 00 B  G28 自動機械原點復歸  B  G29 由機械原點自動定位  B  G30 第2、3、4參考點自動復歸  B  G33 螺紋切削 01 B  ★G40 刀具徑補正取消 07 O  G41 刀具徑補正向左  O  G42 刀具徑補正向右  O  G43 刀具長度正向(+)補正 08 B  G44 刀具長度負向(-)補正  B  ★G49 刀具長度補正取消  B  G52 局部坐標系統 00 B  ★G54 選擇第1程式坐標系統 12 B  G55 選擇第2程式坐標系統  B  G56 選擇第3程式坐標系統  B  G57 選擇第4程式坐標系統  B  G58 選擇第5程式坐標系統  B  G59 選擇第6程式坐標系統  B  G61 確實停止檢驗格式 13 B  G62 自動轉角調整  B  G63 攻螺紋模式  B  ★G64 切削模式  B  G73 快速深孔啄鑽循環 09 O  G74 左螺紋攻牙循環  O  G76 精搪孔固定循環(主軸定向)  O  ★G80 固定循環切削取消  O  G81 鑽孔固定循環  O  G82 沈頭鑽孔固定循環  O  G83 深孔啄鑽循環  O  G84 右螺紋攻牙循環  O  G85 鉸孔固定循環  <f   2-1.13 英制/公制單位指令:G20/G21 G20:設定程式以"吋"為單位。最小數值0.0001吋。   G21:設定程式以"mm"為單位。最小數值0.001mm。 CNS是採用公制單位,故CNC銑床或MC一開機即自動設定為公制單位"公厘"。故程式中不須再指令G21。但若欲加工以"吋"為單位的工件,則於程式的第一單節必須先指令G20, 如此以下所指令的座標值、進給速率、螺紋導程、刀具半徑補正值、刀具長度補正值、手動脈波產生器(MPG)手輪每格之單位值等皆被設定成英制單位。   G20或G21通常單獨使用不和其它指令一起出現在同一單節,且應位於程式的第一單節。   同一程式中,只能使用一種單位,不可公、英制混合使用。   刀具補正值及其他有關數值均須隨單位系統改變而重新設定。 2-1.14 設定座標系指令:G92 ,G54~G59,G52 由2-1.2 CNC工具機座標系統說明,可知撰寫CNC程式時必須依據程式座標系來描述工件輪廓尺寸,此程式座標系的零點即程式原點。 1. 設定程式原點的指令在CNC銑床或MC上,可用G92指令其指令格式為G92 X?Y?;其中X、 Y值是指程式原點到機械原點的向量值,於使用時,必須將X、Y值表示出來。  2. 但當工件外形複雜時,為了撰寫CNC程式的方便常須設定2個以上的程式原點,故也可用G54 ~G59指令設定程式原點,其指令格式: G54;其後面不須書寫X、Y值,其定義是指機械原點到程式原點的向量值。  一般使用G54~G59指令後,就不再使用G92指令。但如果使用時,則原來由G54~G59設 定的程式原點將被移動G92後面X、Y值,如圖 1 所示說明。故此時G92 X?Y?;的X、Y 值是指原來的程式原點到新的程式原點之向量值。  程式寫法如下: ?    : ?    G54;  =>設定程式原點(1)。    : ?    G92 X92. Y60.; =>將程式原點(1)移動至程式原點(2)。    : ?   3. 局部座標系:G52 局部座標系統(local coordinate system setting)是用於將原座標系中分離出數個子座標系統。 其指令格式: G52 X?Y?;其X、Y的定義是原座標系的程式原點到子座標系的程式原點之向量值。如圖 2說明    G52 X0 Y0;=>表示回復到原座標系。 範例1: 有一工件系統,配合副程式呼叫指令M98及鑽孔固定循環指令G81,則可簡化程式的撰寫。如圖3所示。使用G54設程式座標系,再用G52指令設定子座標系。   O2001; =>主程式  G91 G28 Z0;  G28 X0 Y0;  G80 G54 G90 G00 X25. Y25.;  G43 Z5. H01 M03 S500;  M08;  G98 G81 R3. Z -25. F80;  G52 X0 Y0 M98 P2011;  G52 X100. M98 P2011;  G52 X200. M98 P2011;  G52 X300. M98 P2011;  G52 X300. Y100. M98 P2011;  G52 X200. Y100. M98 P2011;  G52 X100. Y100. M98 P2011;  G52 X0. Y100. M98 P2011;  G91 G28 Z0. M9;  M30;  ?  O2011; =>副程式  X25. Y25.;  X -25.;  Y -25.;  X25.;  G52 X0 Y0;  M99;   2-1.15 快速定位指令:G00 指令格式:X__Y__Z__;(格式中可三軸同動或二軸同動或單軸移動) G00指令的功能即命令刀具中心的刀端點快速移動到X、Y、Z所指定的座標位置。其移動 之速率可由執行操作面板上的"快速進給率"旋鈕調整。並非由F機能指定。 若X、Y、Z軸最快移動速率為15m /min,而"快速進給率"鈕調整在: 1. 100 %,則以最快速率15m /min移動。  2. 50 %,則以7.5m /min移動。  3. 25 %,則以3.75m /min移動。  4. 0 % ,此時由參數設定之(大都設定為400mm /min)。  只要非切削的移動,通常使用G00指令,如由機械原點快速定位至切削起點,切削完成後 的Z軸退刀及X、Y軸的定位等,以節省加工時間。 現以圖1為例說明其用法。刀具由A點快速定位至B點,用絕對值表示:G90 G00 X92. Y35.;用增量值表示:G91 G00 X62. Y -25.; G00快速定位的路徑一般皆設定成斜進45°(又稱為非直線型定位)方式,而不以直線型 定位方式移動。斜進45°方式移動時,X、Y軸皆以相同的速率同時移動,再檢測已定位至那 一軸座標位置後,只移動另一軸至座標點為止。如圖1所示。若採用直線型定位方式移動 ,則每次都要計算其斜率後,再命令X軸及Y軸移動,如此增加電腦的負荷,反應速度也較慢,故一般CNC機械一開機大都自動設定G00以斜進45°方式移動。  2-1.16 直線切削指令:G01 指令格式:G01 X_Y_Z_F_; 工件的輪廓為直線時,皆以G01指令切削之。X、Y、Z座標位置為切削之終點,可三軸同 動或二軸同動或單軸移動,而由F值指定切削時的進給速率,單位一般設定為mm / min。 現以圖1說明G01用法。假設刀具由程式原點往上銑削輪廓外形。 :   G90 G01 Y17. F80;   X -10. Y30.;   G91 X -40.;   Y -18.;   G90 X -22. Y0;   X0.;   : F機能是持續有效指令,故切削速率相同時,下一單節可省略,如上面程式所示。  2-1.17 圓弧切削指令:G02,G03 G02:順時針方向(CW)圓弧切削。   G03:逆時針方向(CCW)圓弧切削。 工件上有圓弧輪廓皆以G02或G03切削,因銑床工件是立體的,故在不同平面上其圓弧切削方向(G02或G03)如圖1所示。其定義方式:依右手座標系統,視線朝向平面垂直軸的正方向往負方向看,順時針為G02,逆時針為G03。  指令格式: 一、X-Y平面上的圓弧  二、Z-X平面上的圓弧  三、Y-Z平面上的圓弧  指令各位址的意義: X、Y、Z: 終點座標位置,可用絕對值(G90)或增量值(G91)表示。  R:圓弧半徑,以半徑值表示。(以R表示者又稱為半徑法)。  I、J、K: 從圓弧起點到圓心位置,在X、Y、Z軸上的分向量。 (以I、J、K表示者又稱為圓心法)。 X軸的分向量用位址I表示。 Y軸的分向量用位址J表示。 Z軸的分向量用位址K表示。  F:切削進給速率,單位mm / min。  圓弧的表示有圓心法及半徑法兩種,茲分述如下: 1.半徑法: 以R表示圓弧半徑,以半徑值表示。此法以起點及終點和圓弧半徑來表示一圓弧,在圓上會有二段弧出現,如圖2所示。故以R是正值時,表示圓心角≦180°者之弧;R 是負值時,表示圓心角>180°者之弧。   假設圖2中,R = 50mm,終點座標絕對值為(100.,80.)則 (1) 圓心角>180°之圓弧(即路徑B) G90 G03 X100. Y80. R -50. F80;  (2) 圓心角≦180°之圓弧(即路徑A) G90 G03 X100. Y80. R50. F80;  2.圓心法: I、 J、K後面的數值是定義為從圓弧起點到圓心位置,在X、Y、Z軸上之分向量值。茲以圖3、圖4說明。    CNC銑床上使用半徑法或圓心法來表示一圓弧,端看工作圖上的尺寸標示而定,以使用較方便者(即不用計算,即可看出數值者)為取捨。  但若要銑削一全圓時,只能用圓心法表示,半徑法無法執行。若用半徑法以二個半圓相接 ,其真圓度誤差會太大。 如圖5銑削一全圓的指令寫法:   G02 I -50.;    現以圖6為例,說明G01、G02、G03指令的用法。假設刀具由程式原點向上沿輪廓銑削。 : ?  G90 G01 Y12. F80; =>程式原點 → A  G02 X38.158 Y40. I38. 158 J -12.; => A → B  G91 G01 X11.; => B → C  G03 X24. R12.; => C → D  G01 X8.; => D → E  G02 X10. Y -10. R10.; => E → F  G01 G90 Y10.; => F → G  G91 X -15. Y -10.; => G → H  X -20.; => H → I  G90 G03 X20.158 R18.; => I → J  G01 X0.; => J → 程式原點  :   使用G02、G03圓弧切削指令時應注意下列幾點: (1) 一般CNC銑床或MC開機後,即設定為G17(X-Y平面),故在X-Y平面上銑削圓弧,可省略G17指令。  (2) 當一單節中同時出現I、J和R時,以R為優先(即有效),I、J無效。  (3) I0或J0或K0時,可省略不寫,如圖2所示。  (4) 省略X、Y、Z終點座標指述時,表示起點和終點為同一點,是切削全圓,如圖2-19所示 。若用半徑法則刀具無運動產生。  (5) 當終點座標與指定的半徑值非交於同一點時,會顯示警示訊息。  (6) 直線切削後面接圖弧切削,其G指令必須轉換為G02或G03,若再行直線切削時,則必須再轉換為G01指令,這些是很容易被疏忽的。  (7) 使用切削指令(G01,G02,G03)須先指令主軸轉動,且須指令進給速率F。   2-1.18 刀具半徑補正指令:G40,G41,G42 指令格式: 本節以前所舉例書寫的程式皆以刀具端面中心點為刀尖點,以此點沿工件輪廓銑削。但實際情形,銑刀有一定的直徑,故以此方式實際銑削的結果,外形尺寸會減少一銑刀直徑值;內形尺寸會增加一銑刀直徑值,如圖1所示。  由以上得知若刀具沿工件輪廓銑削,因刀具有一定的直徑,故銑削的結果會增加或減少一刀具直徑值。   若以圖2(b)銑刀的刀尖點向內偏一半徑值,如虛線所示,則可銑出正確的尺寸,但如此寫法,每次皆要加、減一半徑值才能找到真正的刀具中心動路,於撰寫程式時甚不方便。  故為了撰寫程式的方便性,最好能以工件圖上的尺寸為程式路徑再利用補正指令,命令刀具向右或向左補正一刀具半徑值,如圖3,4所示。如此就不必每次皆要計算銑刀中心之座標值。 刀具半徑補正指令:   G40:取消刀徑補正(cutter compensation cancel)。   G41:刀徑左向補正(cutter compensation Left)。   G42:刀徑右向補正(cutter compensation right)。 刀徑補正左、右方向的判斷依據以下定義:站在程式路徑上,向銑削前進方向看,銑刀應向右補正者(如圖3所示),以G42指令之;反之,銑刀應向左補正者(如圖4所示), 以G41 指令之。 刀徑補正指令格式: α、β: 為X、Y、Z三軸中配合平面選擇(G17、G18、G19)之任二軸。    D: 為刀徑補正號碼,以2位數字表示。此號碼即指刀具補正號碼中的刀徑補正號碼。  例如D11,表示刀徑補正號碼為11號,11號的數據是4.0,表示銑刀半徑為4.0mm。執行G41或G42指令時,控制器會到D所指定的刀徑補正號碼內擷取刀具半徑值,以 做為補正值的依據。 使用刀徑補正時應注意下列事項: 1. 不能和G02、G03一起使用,只能與G00或G01一起使用,且刀具必須要移動(即啟動刀徑補正指令,必須在前一單節啟動)。如圖3及圖4說明。   由A點向C點移動並啟動刀徑右向補正指令之程式如下: : ?  G90 G00 X110. Y -20.; =>快速定位至A點  G01 G42 X92. Y0 D11 F80; => A → C  Y52.; => C → D  G03 X84. Y60. R8.; => D → E  G01 X0; => E → F  Y0; => F → G  X92.; => G → C  : ?  由B點向F點移動並啟動刀徑右向補正指令之程式如下:  : ?  G90 G00 X -20. Y80.; =>快速定位至B點。  G01 G42 X0 Y60. D11 F80; => B → F  Y0; => F → G  X92.; => G → C  Y52.; => C → D  G03 X84. Y60. R8.; => D → E  G01 X0; => E → F  :   G42右向補正,即是銑削時,銑刀在程式路徑之右側而言,對於工件它將產生逆銑效果, 故常用於粗銑削。  由A點向C點移動並啟動刀徑左向補正指令之程式如下:  : ?  G90 G00 X110. Y -20.; =>快速定位至A點  G01 G41 X92. Y0 D11 F80; => A → C  X0; => C → G  Y60.; => G → F  X84.; => F → E  G02 X92. Y52. R8.; => E →D  G01 Y0; => D →C  :   由B點向F點移動並啟動刀徑左向補正指令之程式如下  : ?  G90 G00 X -20. Y80.; =>快速定位至B點  G01 G41 X0 Y60. D11 F80; => B → F  X84.; => F → E  G02 X92. Y52. R8.; => E → D  G01 Y0; => D → C  X0.; => C → G  Y60.; => G → F  : ?  G41左向補正,即是銑削時,銑刀在程式路徑之左側而言。對於工件它將產生順銑效果, 故常用於精銑削。   2. 程式製作時,程式中只給予刀徑補正號碼,如D11、D12…每一個刀徑補正號碼均代表一個 補正值,此補正值可由參數設定為銑刀的直徑或半徑值(使用上,一般皆設定成銑刀的半徑值),而此銑刀半徑值是加工時,預先由操作者鍵入控制系統之刀具補正號碼畫面之相對應 號碼內。  3.   補正值的正負號改變時,G41及G42的補正方向會改變。如G41指令給予正值時,其補正向左;若給予負值時,其補正會向右。同理G42給予正值時,其補正向右;若給予負值時,其補正會向左。由此可見,當補正值符號改變時,G41與G42的功能剛好互換。故一般鍵入補  正值(即銑刀半徑值)皆採用正值較合理。  4. 當刀徑補正機能(屬於持續有效機能)在補正狀態中,若加入G28, G29,G92指令,當這 些指令被執行時,補正狀態將暫時被取消,但是控制系統仍記憶著此補正狀態,因此於執行 下一單節時,又自動恢復補正狀態。  5. 當實施刀徑補正,於加工完成後須以G40將補正狀態予以取消,使銑刀的中心點回復至實際之座標點上。亦即執行G40指令時,系統會將向左或向右的補正值,往相反的方向釋放,故 銑刀會移動一銑刀半徑值。所以使用G40的時機,最好是銑刀已遠離工件。如圖5之程 式例 1。  6. 補正向量:圖5中的"→"稱為補正向量,此向量於啟動補正指令時必與下一程式路徑 垂直。之後可能由程式路徑的交點指向補正後銑刀中心路徑之交點。參考圖5中"→" 所示。   例1. 本例中使用φ10端銑刀銑削,故加工後,會於D、E、F、G、J點處產生R5mm的小圓弧。  : ?  G90 G00 X -20. Y -20.; => 快速定位至A點  G01 G41 X0 Y0 D12 F80; => A → B啟動左向補正G41  Y35.; => B → C  X20.; => C → D  G03 X25. Y60. R65.; => D → E  G02 X65. R -25.; => E → F  G03 X70. Y35. R65.; => F → G  G01 X90.; => G → H  Y0.; => H → I  X45. Y10.; => I → J  X0 Y0; => J → B  X -20. Y -20.; => B → A  G40; => 銑刀遠離工伴後再取消補正。  : ?  7. 在補正狀態下,銑刀的直線移動量及內側圓弧切削的半徑值要≧銑刀半徑,否則補正向量產生干涉,會有過度切削發生,故控制器命令停止執行,且顯示警示號碼。如圖6,7 ,8 所示。             2-1.19 刀具長度補正指令:G43,G44,G49 刀長補正指令格式: CNC銑床或MC所使用的刀具,因每把刀具的長度皆不相同,故使用每一把刀具時都必須作刀長補正,使每一把刀加工出來的深度皆正確。     格式中各字語的意義如下: G43: 刀具長度正向補正。  G44: 刀具長度負向補正。  Z: 指令欲定位至Z軸的座標位置。  H: 為刀長補正號碼,以2位數字表示。此號碼即指刀具補正號碼中的刀長補正號碼。例如H01,表示刀長補號碼為01號,01號的數據 -412.867,即表示該把刀的刀長補正值 -412.867mm。 執行G43或G44指令時,控制器會到H所指定的刀長補正號碼內擷取刀長補正值,以做為刀具補正的依據。    使用刀長補正時應注意下列事項: 1. 使用G43或G44指令刀長補正時,只能有Z軸的移動量,若有其他軸向的移動,則會出現警示畫面。  2. G43、G44為持續有效機能,如欲取消刀長補正機能,則以G49或H00指令之。(G49:刀長補正取消。H00表示補正值為零)  3. G43 Z?H?;補正號碼內的數據為正值時,刀具向上補正,若為負值時,刀具向下補正。 G44 Z?H?;補正號碼內的數據為正值時,刀具向下補正,若為負值時,刀具向上補正。    茲以圖1說明,實際機台上,刀長補正設定及程式範例:  (一)G43 Z5. H01; (二)G44 Z5. H01;  工具補正  番號 數據 番號 數據  001 -386. 009 0  002 0 010 0  003 0 011 0  004 0 012 0  005 0 013 0  006 0 014 0  007 0 015 0  008 0 016 0  現在位置  X 0.000 ? Y 0.000 ?  Z 0.000 ? ? ?  [補正] ? [座標系] ?     工具補正  番號 數據 番號 數據  001 386. 009 0  002 0 010 0  003 0 011 0  004 0 012 0  005 0 013 0  006 0 014 0  007 0 015 0  008 0 016 0  現在位置  X 0.000 ? Y 0.000 ?  Z 0.000 ? ? ?  [補正] ? [座標系] ?       例1. 如圖2所示工件,利用φ10mm端銑刀銑削外形,深度5mm。刀徑補正號碼用11號,刀 長補正號碼用01號。    工具補正  番號 數據 番號 數據  001 -395.452 009 0  002 0 010 0  003 0 011 5.0  004 0 012 0  005 0 013 0  006 0 014 0  007 0 015 0  008 0 016 0  現在位置  X 0.000 ? Y 0.000 ?  Z 0.000 ? ? ?  [補正] ? [座標系] ?       O2127; ? ?  G40 G49; ? ?  G28 G91 Z0; ? ?  G28 X0 Y0; ? ?  G54 G90; ? ?  M03 S800; ? ?  G00 X -20. Y -20. M08; ? ?  G43 Z5. H01; => 啟動刀長補正 ,命令刀具定 位至工件表面 上方5mm處。  G01 Z -5. F60; ? ?  G42 X12. Y12. D11 F100; => 啟動刀徑補正銑 削至(12,12) 處。  X52.; ? ?  G03 X72. Y32. R20.; ? ?  G91 X -30. R15.; ? ?  G02 X -24. R12.; ? ?  G01 X -6.; ? ?  G90 Y0; ? ?  G00 Z20.; => 快速定位至工件表 面上面20mm處。  G40; => 取消刀徑補正。  G28 G91 Z0; ? ?  G28 X0 Y0; ? ?  M30; ? ?   2-1.20 資料設定指令:G10 G10是資料設定指令,其功能是可以在程式執行中自動設定刀具補正數值及程式座標系資料。 指令格式:  例1. 如圖1所示工件,利用G10搬移程式座標系,及M98呼叫副程式指令,可縮短程式長度 。工件胚料為鑄件,用φ10 mm端銑刀,銑削φ30 mm的孔5個,深10 mm。   主程式: O2128; ?  G10 L2 P0 X0 Y0 Z0; ?  G91 G28 Z0; ?  G28 X0 Y0; ?  G54 G90; ?  M03 S600; ?  G54 G90 G00 X0 Y0; ?  G43 Z5. H01 M08; ?  G98 P54949; =>呼叫副程式O4949共執行5次。  G10 L2 P0 X0 Y0 Z0; ?  G91 G28 Z0; ?  M30;   副程式: O4949; ?  G90 G00 X0 Y0; ?  Z -15.; ?  G01 G42 X15. D11 F100; ?  G02 I -15.; ?  G00 G40 X0 Y0; ?  Z20.; ?  G91 G10 L2 P0 X -50.; ?  M99;   2-1.21 機械原點復歸核對指令:G27 CNC機械本體上皆有一固定點稱為機械原點,程式設計師即利用此點來設定程式原點之 位置。CNC機械通常是24小時運轉做切削加工,為了提高加工的 可靠性及工件尺寸的正確性,可用此指令來核對程式原點的正確性。   用法如下:當執行加工完成一循環,於程式終止前,執行G27 X?Y?Z?;(其X、Y、Z值必須是目前使用刀具之程式原點到機械原點的向量值)。則刀具將以快速定位(G00)移動 方式自動回歸機械原點,此時可檢查執行操作面板上的機械原點復歸燈是否被"點亮"。若X、Y、Z 燈皆亮,則表示程式原點位置正確;若某燈不亮,則表示該軸向的程式原點位置有誤差 不正確,將自動中斷執行,且出現警示訊息(PS 092 - FANUC OM)。   使用G27指令時,若先前有使用G41或G42,G43或G44做刀具補正則必須先用G40或G49將 刀具補正取消後,才可使用G27指令。 例1. (麗偉公司的綜合切削中心機) : ? ?  M06 T01; => 將1號刀換裝於主軸上。  : ? ?  G40 G49; => 將刀具補正取消。  G27 X -385.612 Y210.812 Z421.226; => 其中X、Y、Z值是指1號刀之程式原點到機械原點 之向量值。  :  ? ?  2-1.22 自動機械原點復歸指令:G28 指令格式:G28 X__Y__Z__; 其中X、Y、Z是指中途點座標位置。 此指令的功能使刀具以快速定位(G00)移動回到機械原點。其目的是指出一條安全通路 回到機械原點,再執行換刀指令。例1.  M06 T01; ? ?  : ? ?  G90 G28 Z50.; => 由A點經中間點B回到機械原點(Z軸)。  M06 T02; => 換2號刀。  G29 X35. Y30. Z5.; => 2號刀由機械原點經中途點B快速定位至C點。  :    2-1.23 由機械原點經中途點至目的點指令:G29 指令格式:G29 X__Y__Z__;其中X、Y、Z後面的數值是指刀具欲到達之目的點座標位置。 此指令的功能是使刀具由機械原點經過中途點到達目的點。其中途點就是G28指令所指定 的中途點,故刀具可經由此安全通路到達欲切削加工之目的點位置。所以用G29指令之前,必 須先用G28指令,否則G29不知道中途點位置,而發生錯誤。   G29的使用方法,請參考2-1.22圖1。 2-1.24 第2、3、4參考點復歸指令:G30 指令格式: 其中P2、P3、P4即選擇第2、第3、第4參考點。其中選擇第2參考點時可省略不寫P2。 X、Y、Z後面的座標值是指中途點位置。 此指令的功能是由刀具所在位置經過中途點回到參考點。故與G28很類似,差別在於G28 是回歸機械原點,而G30是回歸參考點。   第2、3、4參考點之座標位置於參數中設定(FANUC 0M控制器參數號碼735~737設P2,780~782設P3,784~786設P4)其值為機械原點到參考點的向量值。   G30指令通常使用在自動換刀時,如台中精機有臂式的ATC於換刀時,除了Z軸須回歸機 械原點外並須指令第2參考點的Y軸復歸。如下例子: :   T01; =>1號刀就換刀位置  : ?  G28 G91 Z0; =>Z軸回HOME點  G30 Y0; =>第二參考點的Y軸復歸  M06 T02; =>將1號刀換上主軸,第2號刀就換刀位置。  :   當用G28或G30指令,在刀具經由中途點到達機械原點(G28)或參考點(G30)後,變更程式座標系時,中途點也轉換至新座標系。如果隨後指令G29,則刀具會經由新座標系的中途 點移到目的點位置。   在使用G28、G30之前應將刀具補正取消(即指令G40,G49)。 2-1.25 暫停指令:G04  指令格式:G04 X?;或 G04 P?;  例如欲暫停2 sec,則應寫成:  G04 X2.G04 X2000;或G04 P2000;  由以上可知X後面可用小數點或不用小數點來表示;但P後面的數值不可用小數點方式表示。      暫停指令應用於下列情況: 1. 用於主軸有高速、低速檔切換時,以M05指令後,用G04指令暫停幾妙,使主軸真正停止時 ,再行換檔,以避免損傷主軸的伺服馬達。  2. 用於孔底加工時暫停幾秒,使孔的深度正確及增加孔底面的光度,如鑽柱坑、錐坑,切魚眼等。  3. 用於鐵削大直徑螺紋時,暫停幾秒使轉速穩定後再行切削螺紋,使螺距正確。如 2-1.26 節例 1。 2-1.26 大孔徑螺紋切削指令:G33    小直徑的內螺紋大都用螺絲攻配合攻牙指令G74,G84(參考固定循環指令)加工。大孔 徑螺紋因刀具成本太高,故使用可調式的搪孔刀配合G33指令加工,可節省成本。 指令格式:G33 Z?F?;  Z: 螺紋切削之終點座標值(絕對值)或切削螺紋的長度(增量值)。  F: 螺紋的導程。   例1. 如圖1所示,孔徑已加工完成,使可調式搪孔刀,配合G33指令切削M60×1.5的內螺紋。      O1212; ? ?  G28 G91 Z0; ? ?  G28 G0 Z0; ? ?  G54; ? ?  M03 S400; ? ?  G00 G90 X0 Y0; ? ?  G43 Z10. H01; => 做刀長補正,使刀具定位 至工件上方10 mm處,準 備切削螺紋。  G33 Z -45. F1.5; => 第一次切削螺紋。  M19; => 主軸定向停止。  G00 X -5.; => 主軸中心偏移,防止提升 刀具時碰撞工件。  Z10.; => 提升刀具。  X0 M00; => 刀具移至孔中心後,程式 停止。調整搪孔刀的螺紋 切削深度。  M03; => 使主軸正轉。  G04 X2.; => 暫停2sec,使主軸轉速 400 rpm穩定。  G33 Z -45. F1.5; => 第二次切削螺紋。  M19; ? ?  G00 X -5.; ? ?  Z10.; ? ?  X0 M00; ? ?  M03; ? ?  G04 X2.; ? ?  G33 Z -45. F1.5; => 第三次切削螺紋。  : ? ?  M19; ? ?  G00 X -5.; ? ?  Z10. ? ?  G28 G91 Z0; ? ?  M30; ? ?   2-1.27 轉角的速度控制 CNC工具機是以伺服馬達旋轉後,帶動滾珠螺桿,再驅動螺帽上的床台 ,使刀具移動。當CNC控制器執行移動指令時(如G00、G01、G02、G03 及用手動脈衝產生器MPG移動),伺服馬達於移動開始及結束時會自動 加減速,使起動及停止平滑以避免工具機震動。各軸加減速之時間定 數由參數設定之(FANUC 0M的G00是參數號碼0522~0525。G01及MPG是參數號碼0529~0530)。故於撰寫程式時,不需要改慮加減速。    因為自動加減速的關係,如果在一單節刀具僅沿Y軸切削及在下一單節 沿X軸切削,當進給速率沿X軸加速時,Y軸在減速,則在轉角處會形成 一小圓角如圖1所示之虛線。   圖1 自動加減速使轉角處形成小圓角     G64指令稱為切削模式。一般CNC工具機一開機即自動設定處於G64切削 模式,此指令功能即具有自動加減速,使切削工件時於轉角處形成一 小圓角,具有去除毛邊的效果。 但若是要求於轉角處加工成尖銳時(即轉角處實際刀具路徑與程式路 徑相同時,如圖1實線部份),則可使用G09或G61確實停止檢驗指 令,命令刀具定位於程式所指定的位置,並執行定位檢查。兩者之差別在於G09為單節有效機能,而G61為持續有效機能。 例1. 如圖1所示。O1313程式,使刀具動路於全部轉角處會沿虛線部份。  ? O1313;  ? G28 G91 Z0;  ? G28 X0 Y0;  ? G54 G00 G90 X -20. Y -20.;   S800 M03;   G43 Z5. H01;  ? G01 Z -10. F80;  ? G41 X0 Y0 D11 F100;  ? Y100.;  ? X110.;  ? Y0;  ? X0;  ? G00 G40 X -20. Y -20.;  ? Z20.;  ? G28 G91 Z0;  ? M30;   例2. 如圖1所示。O1414程式,使刀具動路於左上轉角處沿實線部份,其餘轉角處沿虛線部份。   O1414;     G28 G91 Z0;     G28 X0 Y0;     G54 G90 G00 X -20. Y -20.;     M03 S800;     G43 Z5. H01;     G01 Z -10. F80;     G41 X0 Y0 D11 F100;     Y100.;     G09; => 確實停止檢驗G09指令,只使左上角沿實線切削。因G09為單 節有效機能,故其他轉角仍沿虛線切削。   X110.;     Y0;     X0;     G00 G40 X -20. Y -20.;     Z20.     G28 G91 Z0;     M30;     例3. 如圖1所示。O1515程鄉,使刀具動路於全部轉角處會沿實線部份。   O1515;     G28 G91 Z0;     G28 X0 Y0;     G54 G90 G00 X -20. Y -20.;     M03 S800;     G43 Z5. H01;     G01 Z -10. F80;     G41 X0 Y0 D11 F100;     Y100.;     G61; => 確實停止檢驗G61,因G61是持續有效機能,所以使刀具動路 於全部轉角處沿實線部份切削。   X110.;     Y0;     X0;     G64; => 恢復切削模式指令,具自動加減速功能。   G00 G40 X -20. Y -20.;     Z20.     G28 G91 Z0;     M30;       G62稱為自動轉角進給速率調整指令。當啟動刀徑補正指令(G41或G42 )時,控制器會自動執行G62指令,使切削內圓孤的轉角處,自動降低 進給速率,以減輕刀具的負荷,因此能切削出一個較好的表面。   在一般切削模式(G01、G02、G03)時,其進率速率可由操作面板上的 ”進給速率調整鈕”隨時依實際情況調整。但只要使用切削螺紋指令( 如G33、G74、G84指令),則控制器會自動執行G63指令(稱為攻螺紋模 式),使”進給速率調整鈕”無效(即銷定於100%),以避免切削螺 紋時,因誤轉”進給速率調整鈕”而改變切削螺紋的進給速率使刀具 斷裂,或切削出螺距不等的螺紋。 2-1.28 自動切削循環指令:G73~G76,G80~G89    在CNC銑床或MC上常做鑽孔、鉸孔、攻螺紋、搪孔等加工,本節自動切 削循環指令,即是針對這些孔的加工,用一個單節的G機能指令來完成 ,以簡化程式之撰寫。這些指令的動作及用途如表1表示。 表1 自動切削循環指令之動作 指令 動作3-Z方向之進刀 動作4孔底位置的動作 動作5+Z方向之退回動作 用途  G73 間歇進給   快速移動 啄式鑽孔循環  G74 切削進給 主軸停止→主軸正轉 切削進給 攻左螺紋循環  G76 切削進給 主軸定向停止 快速移動 精密搪孔循環  G80        自動切削循環取消  G81 切削進給   快速移動 鑽孔循環  G82 切削進給 暫留 快速移動 錐柱坑鑽孔循環  G83 間歇進給   快速移動 啄式鑽深孔循環  G84 切削進給 主軸停止→主軸反轉 切削進給 攻右螺紋循環  G85 切削進給   切削進給 鉸孔循環  G86 切削進給 主軸停止 快速移動 搪孔循環  G87 切削進給 主軸停止 快速移動 背搪孔循環  G88 切削進給 暫留→主軸停止 手動操作 搪孔循環  G89 切削進給 暫留 切削進給 搪孔循環     每一個自動切削循環指令最多由6個動作依序組成,如圖1所示。   圖1 自動切削循環的刀具動路   動作1 => 刀具快速定位至欲加工位置之座標點,稱為起始點 (Initial point)。  動作2 => 快速定位至R點,稱為參考點(Referance point)。  動作3 => 切削加工(如鑽孔、鉸孔、攻螺紋、搪孔等)。  動作4 => 孔底位置的動作。  動作5 => 退回至R點。  動作6 => 退回至起始點。    每一指令的動作1~動作6有些許的差異,請參閱表1所示及下面各 指令的詳細說明。    上述之動作是在X-Y平面上以快速定位方式到達起始點,在Z軸方向執 行加動作。在這個平面及軸向以外的組合不能執行快速定位及加工動 作,所以自動切削循環指令與平面選擇無關。   自動切削循環指令格式可分為4部份,茲說明如下:    1. 加工模式指令:此部份含三項,每一項均由G機能指定之。如下說明。   (1) 座標位置是用G90(絕對值)或用G91(增量值)方式表示。   (2) 退回點的選擇,G98表示退回至起始點;G99表示退回至R點。若 程式中未指定,則視控制系統一開機時設定何者而定(一般皆設定在 G98)。   (3) 加工型態的選擇:依加工需要,選擇正確的指令G73、G74、G76、G80~G89。  2. 孔在X、Y軸的座標位置:配合上述G90或G91指定孔座標位置。  3. 孔加工資料   Z: 用絕對值或增量值表示孔在Z軸的座標位置。增量值時是指從R點到 孔底部的向量值;絕對值時是指孔底之Z軸座標值。   R: 增量值時是指從起始點到R點的向量值;絕對值時是指R點之Z軸坐標值。   Q: G73與G83加工型態時所指定的每次切削深度及G76與G87的偏移量, 不可用小數點方式表示數值。   P: 指定在孔底位置暫停時間,不可用小數點方式表示數值,以秒為單位。   F: 進給速率。  4. 重覆次數K:指定動作1~動作6的重覆次數。如省略時,視為執行1 次。若寫”K0”,則只記憶自動切削循環指令資料而不執行孔加工。 (FANUC OM系列重覆次數以K指定)。    自動切削循環指令皆為持續有效機能,所以執相同的加工模式時,不 需要在每個單節皆指令之。   自動切削循環指令執行完畢,不再繼續使用時,應使用G80指令或01組 群的G機能取消,否則不能回歸機械原點。  2-1.29 啄式鑽孔循環:G73 自動切削循環的加工型態茲分述如下: G73:啄式鑽孔循環(peck drilling cycle)     圖1 啄式鑽孔循環     執此指令時,如圖1所示鑽頭先快速定位至X、Y所指定的座標位置 ,再快速定位到R點,接著以F所指定的進給速率向Z軸下鑽Q所指定的距離(Q必為正值,用增量值表示),再快速退回 d 距離(FAUNC 0M由參數 0531設定之,一般設定為1000,表示0.1mm),依此方式一直鑽孔到Z所指定的孔底位置。此種間歇進給的加工方式可使切屑裂斷且切削劑易到達切邊進而使排屑容易且冷卻、潤滑效果佳。    此指令之應用請參考程式O1616。 程式O1616 O1616; => 本程式適合無臂式換刀機構。  G40 G80 G49;    G28 G91 Z0;    G28 X0 Y0;    G54;    M06 T01; => 換1號刀?6.8鑽頭。  M03 S800;    G90 G00 X0 Y0;    G43 Z10. G01; => 啟動刀長補正,並快速定位至工件表面上方10 mm (起始點高度)。  G99 G73 X20. Y28. R3. Z -15. Q5000 F60; => R點在工件表面上方 3 mm,鑽孔深度15 = 12 + 0.3 ╳ 8 = 15。  X85. Y38.; => 繼續執行G73指令。  G80; => 取消自動切削循環。  G28 G91 Z0;    M05 G49;    M06 T02; => 換2號刀,LM8╳1.25螺絲攻。  M04 S100; => 主轉反轉100 rpm。  G90 G43 G00 Z10. H02; => 快速定位至起始點,工件表面上方10 mm處。  G98 G74 X85. Y38. R3. Z -15. F125; => 攻螺紋。  X20. Y28.; => 繼續執行G74指令。  G80 G49; => 取消自動切削循環狀態及刀長補正。  G28 G91 Z0;    M30;     2-1.30 攻左螺紋循環:G74 指令格式:G74 X__ Y__ R__ Z__ F__;    圖1 左螺紋循環 此指令用於攻左手螺紋,故需先使主軸反轉,再執行G74指令,則左螺 絲攻先快速定位至X、Y所指定的座標位置,再快速定位到R點,接著以 F所指定的進給速率攻螺紋至Z所指定的孔座位置後,主軸轉換為正轉且同時向Z軸正方向退回至R點,退至R點後主軸恢復原來的反轉。如圖1所示。   攻螺紋的進給速率(mm / min)= 導程(mm / rev)╳ 主軸轉速(rev / min)。 例1. 如圖2所示工件,利用G73鑽孔後,再使用G74攻LM8 ╳ 1.25螺 紋。鑽孔轉速800 rpm,進給速率60 mm / min;攻螺紋轉速100 rpm,進給速率 = 1.25 ╳ 100 = 125 mm / min。工件材質是鋁合金。      圖2    O1616; => 本程式適合無臂式換刀機構。  G40 G80 G49;    G28 G91 Z0;    G28 X0 Y0;    G54;    M06 T01; => 換1號刀?6.8鑽頭。  M03 S800;    G90 G00 X0 Y0;    G43 Z10. G01; => 啟動刀長補正,並快速定位至工件表面上方10mm (起始點高度)。  G99 G73 X20. Y28. R3. Z -15. Q5000 F60; => R點在工件表面上方 3mm,鑽孔深度15 = 12 + 0.3 ╳ 8 = 15。  X85. Y38.; => 繼續執行G73指令。  G80; => 取消自動切削循環。  G28 G91 Z0;    M05 G49;    M06 T02; => 換2號刀,LM8╳1.25螺絲攻。  M04 S100; => 主轉反轉100rpm。  G90 G43 G00 Z10. H02; => 快速定位至起始點,工件表面上方10mm處。  G98 G74 X85. Y38. R3. Z -15. F125; => 攻螺紋。  X20. Y28.; => 繼續執行G74指令。  G80 G49; => 取消自動切削循環狀態及刀長補正。  G28 G91 Z0;    M30;    2-1.31 精搪孔循環:G76 指令格式:G76 X__ Y__ R__ Z__ Q__ F__;     圖1 精搪孔循環  執行G76指令時,如圖1所示,搪孔刀即快速定位至X、Y座標點, 再快速定位到R點,接著以F指定的進給速率搪孔至Z指定的深度後,主軸定向停止,使刀尖指向一固定的方向後,搪孔刀中心偏移使刀尖離開加工孔面(如圖2),如此搪孔刀以快速定位退出孔外時,才不 致於刮傷孔面。當搪孔刀退回到R點或起啟點時,刀具中心即回復原來位置,且主軸恢復轉動。   圖2所示的偏移量用Q指定。Q值一定是正值(Q不可用小數點方式 表示數值,如欲偏移1.0 mm應寫成Q1000),偏移方向可用參數設定選擇 +X ,+Y,-X及-Y的任何一個(FANUC 0M參數號碼0002)。指定 Q值時不能太大,以避免碰撞工件。   在自動切削循環之Q值是狀態值, 且Q值也用於G73與G83的切入量及G87的偏移量,所以最好使用G73、 G76、G83、G87等指令時皆要指定適當的Q值,以避免產生刀具與工件 碰撞(G76、G87)或切入量不適當(G73、G83)。    圖2 精搪孔循環的偏移量     此指令之應用請參考程式O1717。 2-1.32 自動切削循環取消:G80  指令格式:G80   當自動切削循環指令不再使用時,應指令G80取消自動切削循環,而回復到一般基本指令狀態(如G00、G01、G02、G03等),此時自動切削 循環指令中的孔加工資料也取消。其應用可參考程式 O1717 。  附:程式O1717 O1717; => 本程式適用無臂式的ATC。  G28 G91 Z0;    G28 X0 Y0;    G54 M6 T01;    M3 S2000;    G90 G0 X0 Y0;    G43 Z10. H01; => 起始點高度Z10.。  G99 G81 X15. Y45. R -15. Z -26. F200; => G81鑽孔循環,G99退回至R點。  G98 X40. Y15.; => G98退回至起始點。  X90. Y30. R5. Z -6.; => G98退回至起始點。  G80 M05;    G28 G91 Z0;    M06 T02;    M03 S1800;    G43 G90 G0 Z10. H02;    G99 G81 X15. Y45. R -15. Z -45. F150; => G99退回至R點。  G98 X40. Y15.; => G98退回至起始點。  G83 X90. Y30. R5. Z -45.; => G83啄式鑽深孔,退回至起始點。  G80 M05;    G28 G91 Z0;    M06 T03;    M03 S500;    G43 G90 G0 Z10. H03;    G98 G83 X90. Y30. R5. Z -45. F120;    G80 M05;    G28 G91 Z0;    M06 T04;    M03 S800;    G43 G90 G0 Z10. H04;    G98 G82 X15. Y45. R -15. Z -10. P500 F100; => G82鑽柱坑,G98 退回至起始點。  G80 M05;    G28 G91 Z0;    M6 T05;    M03 S100;    G43 G90 G0 Z10. H05;    G98 G84 X40. Y15. R -15. Z -45. F100; => G84攻右螺紋,G98退回至起始點。  G80 M05;    G28 G91 Z0;    M06 T06;    N2 M03 S1800;    G43 G90 G0 Z10. H06;    G76 X90. Y30. R5. Z -45. Q1000 F100; => G76精搪孔。  G80 M05;    G0 Z200.;    M00;     2-1.33 鑽孔循環:G81 指令格式:G81 X__ Y__ R__ Z__ F__; 執行此指令時,如圖1所示,鑽頭先快速定位至X、Y所指定的座標 位置,再快速定位至R點,接著以F所指定的進給速率向下鑽削至Z所指定的孔底位置,最後快速退刀至R點或起始點完成循環。    圖1 鑽孔循環     此指令之應用請參考程式O1717。 2-1.34 鑽柱坑、錐坑循環:G82 指令格式:G82 X__ Y__ R__ Z__ P__ F__; 如圖1所示,G82指令除了在孔底會暫停P後面所指定的時間外,其 餘加工動作均與G81相同。刀具切削到孔底後暫停幾秒,可改善鑽盲孔 、柱坑、錐坑的孔底精度。P不可用小數點方式表示數值,如欲暫停 0.5 sec應寫成P500。 此指令的應用請參考程式O1717。    圖1 鑽柱坑、錐坑循環   2-1.35 啄式鑽深孔循環:G83 指令格式:G83 X__Y__R__ Z__ Q__ F__;   圖1 啄式鑽深孔循環 如圖1所示,鑽頭先快速定位至X、Y所指定的座標位置,再快速定位至R點,接著以F所指定的進給速率向下鑽削Q所指定距離後(Q必 為正值,用增量值表示),快速退刀回R點,再向下快速定位於前一切 削深度上方距離d處(FANUC OM由參數0532設定之,一般設定為1000 ,表示1.0 mm),再向下鑽削Q所指定的距離後,再快速退回R點,以後依此方式一直鑽孔到Z所指定的孔底位置。    G83與G73不同處是退刀時,每次皆退回到R點,可把切屑帶出孔外,以免切削將鑽槽塞滿而增加鑽削阻力及切削劑無法到達切邊,故適於深孔鑽削。    此指令之應用請參考程式O1717。 2-1.36 攻右螺紋循環:G84 指令格式:G84 X__ Y__ R__ Z__ F__; 此指令用於攻右手螺紋,故需先使主軸正轉,再執行G84指令,則右螺 絲攻先快速定位至X、Y所指定的座標位置,再快速定位到R點,接著以 F所指定的進給速率攻螺紋至Z所指定的孔底位置後,主軸轉換為反轉且同時向Z軸正方向退回至R點,退至R點後主軸恢復原來的正轉。 如圖1所示。    攻螺紋的進給速率(mm / min)= 導程(mm / rev)╳ 主軸轉速(rev / min) 在G74、G84攻牙循環指令執行中,進給速率調整鈕無效,及即使按下進給暫停鍵,循環在回復動作結束之前也不會停止。    圖1 攻右螺紋循環   例1. 如圖2所示鋁合金工件,利用G81、G83鑽孔,G82鑽柱坑,G76 搪孔,G84攻右螺紋。使用刀具如下:  T01: ?3 mm中心鑽頭,2000 rpm,200 mm / min。  T02: ?5 mm鑽頭,1800 rpm,150 mm / min。  T03: ?29 mm鑽頭,500 rpm,120 mm / min。  T04: M5沉頭銑刀,800 rpm,100 mm / min。  T05: M6 ╳ 1螺紋攻,100 rpm,F = 1 ╳ 100 mm / min。  T06: 可調式搪孔刀,1800 rpm,100 mm / min。      圖2   O1717; => 本程式適用無臂式的ATC。  G28 G91 Z0;    G28 X0 Y0;    G54 M6 T01;    M3 S2000;    G90 G0 X0 Y0;    G43 Z10. H01; => 起始點高度Z10.。  G99 G81 X15. Y45. R -15. Z -26. F200; => G81鑽孔循環,G99退回至R點。  G98 X40. Y15.; => G98退回至起始點。  X90. Y30. R5. Z -6.; => G98退回至起始點。  G80 M05;    G28 G91 Z0;    M06 T02;    M03 S1800;    G43 G90 G0 Z10. H02;    G99 G81 X15. Y45. R -15. Z -45. F150; => G99退回至R點。  G98 X40. Y15.; => G98退回至起始點。  G83 X90. Y30. R5. Z -45.; => G83啄式鑽深孔,退回至起始點。  G80 M05;    G28 G91 Z0;    M06 T03;    M03 S500;    G43 G90 G0 Z10. H03;    G98 G83 X90. Y30. R5. Z -45. F120;    G80 M05;    G28 G91 Z0;    M06 T04;    M03 S800;    G43 G90 G0 Z10. H04;    G98 G82 X15. Y45. R -15. Z -10. P500 F100; => G82鑽柱坑,G98 退回至起始點。  G80 M05;    G28 G91 Z0;    M6 T05;    M03 S100;    G43 G90 G0 Z10. H05;    G98 G84 X40. Y15. R -15. Z -45. F100; => G84攻右螺紋,G98退回至起始點。  G80 M05;    G28 G91 Z0;    M06 T06;    N2 M03 S1800;    G43 G90 G0 Z10. H06;    G76 X90. Y30. R5. Z -45. Q1000 F100; => G76精搪孔。  G80 M05;    G0 Z200.;    M00;     2-1.37 鉸孔循環:G85 指令格式:G85 X__Y__ R__ Z__ F__; 執行指令時,如圖1所示。鉸刀先快速定位至X、Y所指定的座標位 置,再快速定位至R點,接著以F所指定的進給速率向下鉸削至Z所指定的孔座位置後仍以切削進給方式向上提升。故此指令適宜鉸孔。   圖1 鉸孔循環    此指令之應用請參考程式O1818。 例. 如圖1所示工件(S45C),利用G81鑽孔,G82鑽柱坑,G85鉸孔,G86搪孔,G87背搪孔循環指令加工。使用刀具如下:   T01: 3 mm中心鑽頭,1500 rpm,125 mm / min。  T02: 6 mm鑽頭,1200 rpm,120 mm / min。  T03: 7.8 mm鑽頭,1200 rpm,120 mm / min。  T04: 8H7螺旋刃鉸刀,300 rpm,300 mm / min。  T05: M6沉頭銑刀,400 rpm,80 mm / min。  T06: 30 mm鑽頭,200 rpm,50mm / min。  T07: 可調式搪孔刀,800 rpm,30mm / min。  T08: 可調式背搪孔刀,500 rpm,30mm / min。      圖1   程式O1818 01818; => 本程式適用於有臂式的ATC。  G28 G91 Z0; ? ?  G28 X0 Y0; ? ?  G54 T01; => 1號刀就換刀位置。  M06 T02; => 將1號刀裝上主軸孔內,2號刀就換刀位置。  M03 S1500; ? ?  G90 G0 X0 Y0; ? ?  G43 Z5. H01; => 起始點Z5.。  G99 G81 X15. Y55. R3 Z -6. F125; => 鑽中心孔。  X30. Y35.; ? ?  X50. Y15.; ? ?  X85. Y35.; ? ?  G80 G28 G91 Z0; ? ?  M06 T03; => 將2號刀裝上主軸孔內,3號刀就換刀位置。  M03 S1200; ? ?  G43 G90 G0 Z5. H02; ? ?  G81 Z -24. F120; => 鑽?6 mm孔。  X50. Y15.; ? ?  X15. Y55.; ? ?  G80 G28 G91 Z0; ? ?  M06 T04; => 將3號刀裝上主軸孔內,4號刀就換刀位置。  M03; ? ?  G43 G90 G0 Z5. H03; ? ?  G81 X30. Y35. Z -24.; => 鑽7.8 mm孔。  G80 G28 G91 Z0; ? ?  M06 T05; => 將4號刀裝上主軸孔內,5號刀就換刀位置。  M03 S300; ? ?  G43 G90 G0 Z5. H04; ? ?  G85 Z -24. F300; => 鉸孔。  G80 G28 G91 Z0; ? ?  M06 T06; => 將5號刀裝上主軸孔內,6號刀就換刀位置。  M03 S400; ? ?  G43 G90 G0 Z5. H05; ? ?  G82 X15. Y55. Z -12. F80; => 鑽柱坑。  X50. Y15.; ? ?  G80 G28 G91 Z0; ? ?  M06 T07; => 將6號刀裝上主軸孔內,7號刀就換刀位置。  M03 S200; ? ?  G43 G90 G0 Z5. H06; ? ?  G81 X85. Y35. Z -31. F50; => 鑽?30 mm孔。  G80 M05; ? ?  G28 G91 Z0; ? ?  M06 T08; => 將7號刀裝上主軸孔內,8號刀就換刀位置。  N2 M03 S800; ? ?  G43 G90 G0 Z5. H07; ? ?  G86 Z -22. F30; => 搪?32 + 0.03 + 0.01孔。  G80 G0 Z200. M05; ? ?  M00; ? ?  G28 G91 Z0; ? ?  M06; => 將8號刀裝上主軸孔內。  N3 M03 S500; ? ?  G43 G90 G0 Z5. H08; ? ?  G87 R -25. Z -15. Q3000 F30; => 搪?36 mm孔。  G80 G0 Z200. M05; ? ?  M00; ? ?   2-1.38 搪孔循環:G86 指令格式:G86 X__ Y__ R__ Z__ F__;  執行此指令的刀具動路如圖2-47所示,除了在孔底位置主軸停止並以 快速進給向上提升外,其餘與G81相同。    圖1 搪孔循環     此指令之應用,請參考程式O1818。 2-1.39 背搪孔循環:G87 指令格式:G87 X__ Y__ R__ Z__ Q__ F__;    執行此指令的刀具動路如圖1所示,背搪孔刀先快速定位至X、Y所 指定的座標位置後主軸定向停止,使刀尖指向一固定的方向,背搪孔刀中心偏移Q所指定的偏移量使刀尖離開加工孔面,如圖2所示,接著快速定位至R所指定的位置後主軸定向停止並偏移Q的量使刀尖離開孔面 ,接著快速定位至起始點後刀具中心移回原位置,主軸正轉完成循環。   偏移量Q的大小與方向和G76的Q相同,請參考G76指令說明。    圖1 背搪孔循環     圖2 背搪孔循環的偏移量    此指令之應用請參考程式01818。    2-1.40 搪孔循環:G88 指令格式:G88 X__ Y__ R__ Z__ P__ F__; 如圖1所示,執行此指令時,除了在孔底暫停P所指定的時間且主 軸停止轉動,操作者可用手動微調方式(操作模式要設於”MPG”)將刀具偏移後往上提升。欲恢復程式控制時,則將操作模式設於”自動執行”再按下”程式執行”鍵即可,但此時只有Z軸提升至R點(G99) 或起始點(G98),X、Y座標並不會回復到G88 所指定的X、Y位置。其 餘與G82相同。   圖1 搪孔循環   2-1.41 搪孔循環:G89 指令格式:   G89 X__ Y__ R__ Z__ P__ F__;     如圖1所示,執行G89指令時,除了在孔底位置暫停P所指定的時間 外,其餘與G85相同。    圖1 搪孔循環