CNC Freze G Kodları ve M Kodları – Kapsamlı Kılavuz
10+ yıllık mühendislik kariyerimde CNC freze tezgahlarıyla çalışırken, en çok karşılaştığım sorun programcıların G kodları ve M kodlarını tam olarak anlayamaması. Özellikle farklı kontrol üniteleri (Haas, Fanuc, Siemens) arasındaki farkları bilmeyen operatörlerle çalıştığımda, bu durum üretim verimliliğimizi ciddi şekilde etkiliyordu. Bu kapsamlı rehberde, CNC freze G kodları ve M kodlarını detaylıca inceleyeceğiz.

CNC freze programlama sürecinde G kodları ve M kodları, tezgahın nasıl çalışacağını belirleyen temel komutlardır. Bu makale, başlangıç seviyesinden ileri seviyeye kadar tüm CNC freze programlama ihtiyaçlarınızı karşılayacak şekilde hazırlanmıştır. Hem teorik bilgileri hem de pratik örnekleri bulacağınız bu rehber, farklı kontrol ünitelerindeki uygulamaları da kapsamaktadır.
CNC Freze G Kodları Nedir?
G kodları (Geometric codes), CNC freze tezgahında takımın nasıl hareket edeceğini belirleyen preparatör fonksiyonlardır. Bu kodlar, tezgahın koordinat sistemini, hareket tipini, ilerleme hızını ve kesme parametrelerini kontrol eder.
Mühendislik kariyerimde gözlemlediğim en büyük hata, programcıların G kodlarını sadece ezberlemeleri ancak mantığını anlamamalarıdır. Her G kodu, belirli bir geometrik hareket veya makine fonksiyonunu tanımlar ve doğru kullanımı üretim kalitesini doğrudan etkiler.
Temel G Kodu Kategorileri
CNC freze G kodları genel olarak şu kategorilere ayrılır:
Hareket Komutları: G00, G01, G02, G03 gibi kodlar takımın nasıl hareket edeceğini belirler.
Düzlem Seçimi: G17, G18, G19 kodları çalışma düzlemini tanımlar.
Kordinat Sistemi: G54-G59 kodları farklı koordinat sistemlerini aktive eder.
İlerleme Modu: G94, G95 kodları ilerleme hızının nasıl hesaplanacağını belirler.
Temel CNC Freze G Kodları Listesi
G00 – Hızlı Pozisyonlama
G00 X50 Y25 Z5
G00 komutu, takımı maksimum hızda belirtilen koordinatlara götürür. Bu komut sırasında takım malzemeyi kesmez, sadece pozisyonlanır. X, Y, Z eksenlerinde aynı anda hareket edebilir ancak hareket doğrusal olmayabilir.
Dikkat Edilmesi Gereken Noktalar:
- Z ekseni güvenlik yüksekliğinde olmalı
- Takım ve fikstür çarpışması kontrol edilmeli
- Maksimum hız feed rate değil, rapids hızıdır
G01 – Doğrusal İnterpölasyon
G01 X100 Y50 Z-10 F500
G01 komutu, takımı belirtilen feed rate (F500 mm/dak) ile doğrusal olarak hareket ettirir. Bu komut sırasında kesme işlemi gerçekleşir.
Projelerimde G01 komutunu en çok finish (bitirme) işlemlerinde kullanıyorum. Özellikle düz yüzey frezeleme ve kontur kesme operasyonlarında kritik öneme sahiptir.
G02 – Saat Yönünde Dairesel İnterpölasyon
G02 X20 Y20 I10 J0 F300
G02 komutu, saat yönünde (clockwise) dairesel hareket yapar. I ve J parametreleri daire merkezinin koordinatlarını belirtir.
Parametre Açıklamaları:
- I: X eksenindeki merkez uzaklığı
- J: Y eksenindeki merkez uzaklığı
- F: Feed rate değeri
G03 – Saat Yönü Tersinde Dairesel İnterpölasyon
G03 X0 Y0 I-10 J0 F300
G03 komutu, saat yönü tersinde (counter-clockwise) dairesel hareket yapar. Kullanım şekli G02 ile aynıdır, sadece yön farklıdır.
Düzlem Seçimi G Kodları
G17 – XY Düzlemi (En Yaygın)
G17
G02 X30 Y30 I15 J0 F400
G17 komutu XY düzlemini aktive eder. CNC freze işlemlerinin %90’ı bu düzlemde gerçekleşir. Dairesel interpolasyonlarda Z ekseni etrafında döner.
G18 – XZ Düzlemi
G18
G02 X50 Z5 I25 K0 F300
G18 komutu XZ düzlemini seçer. Y ekseni etrafında dairesel hareket yapar. Yan yüz frezeleme işlemlerinde kullanılır.
G19 – YZ Düzlemi
G19
G02 Y40 Z10 J20 K0 F250
G19 komutu YZ düzlemini aktive eder. X ekseni etrafında döner. Özel kontur işlemlerinde tercih edilir.
Koordinat Sistemi G Kodları
G54-G59 İş Parçası Koordinat Sistemleri
G54 ; Koordinat sistemi 1
G00 X0 Y0 Z5
G01 Z-5 F100
G54-G59 kodları farklı iş parçası koordinat sistemlerini (WCS – Work Coordinate System) aktive eder. Bir setup’ta birden fazla parça işlemek için kullanılır.
Pratik Kullanım Örneği: Aynı fikstürde 4 farklı parça işlerken her biri için farklı G54-G57 koordinat sistemleri tanımlarım. Bu sayede program değiştirmeden tüm parçaları işleyebilirim.
G53 – Makine Koordinat Sistemi
G53 G00 Z0 ; Z eksenini makine sıfırına götür
G53 komutu, geçici olarak makine koordinat sistemini aktive eder. Sadece o satır için geçerlidir ve güvenlik işlemlerinde kullanılır.
İlerleme Modu G Kodları
G94 – Dakika Başına İlerleme (mm/dak)
G94
F500 ; 500 mm/dakika
G94 komutu, feed rate’in dakika başına mm cinsinden tanımlanmasını sağlar. En yaygın kullanılan ilerleme modudur.
G95 – Devir Başına İlerleme (mm/devir)
G95
F0.2 ; 0.2 mm/devir
G95 komutu, feed rate’in devir başına mm cinsinden tanımlanmasını sağlar. Vida kesme ve özel uygulamalarda kullanılır.
Takım Uzunluğu ve Yarıçap Kompanzasyonu
G43 – Takım Uzunluğu Kompanzasyonu
G43 H01 Z5 ; H01 nolu takım uzunluğu
G43 komutu, takım uzunluğu kompanzasyonunu aktive eder. H parametresi offset numarasını belirtir.
G41/G42 – Takım Yarıçapı Kompanzasyonu
G41 D01 ; Sol tarafa kompanzasyon
G42 D01 ; Sağ tarafa kompanzasyon
G41 ve G42 kodları takım yarıçapı kompanzasyonunu sağlar. D parametresi takım yarıçap değerini belirtir.
Önemli Not: Kompanzasyon kullanırken takım merkezinden değil, takım kenarından programlama yaparsınız.
CNC Freze M Kodları
M kodları (Miscellaneous codes), CNC freze tezgahının yardımcı fonksiyonlarını kontrol eder. Spindle, soğutma, takım değişimi gibi işlemleri yönetir.
Temel M Kodları
M03 – Spindle Saat Yönünde
M03 S1500 ; Spindle 1500 rpm saat yönünde
M03 komutu spindle’ı saat yönünde döndürür. S parametresi devir sayısını (RPM) belirtir.
M04 – Spindle Saat Yönü Tersinde
M04 S800 ; Spindle 800 rpm saat yönü tersinde
M04 komutu spindle’ı saat yönü tersinde döndürür. Özel takımlar ve sıkışma durumlarında kullanılır.
M05 – Spindle Durdurma
M05 ; Spindle'ı durdur
M05 komutu spindle’ı durdurur. Takım değişimi öncesi ve program sonunda mutlaka kullanılmalıdır.
M06 – Takım Değişimi
T02 M06 ; 2 numaralı takımı değiştir
M06 komutu otomatik takım değişimi yapar. T parametresi takım numarasını belirtir.
M08/M09 – Soğutma Kontrol
M08 ; Soğutmayı aç
M09 ; Soğutmayı kapat
M08 soğutmayı açar, M09 kapatır. Kesme verimi ve takım ömrü için kritiktir.
M30 – Program Sonu ve Reset
M30 ; Program bitir ve başa dön
M30 komutu programı bitirir ve makineyi başlangıç konumuna getirir.
Kontrol Ünitesi Karşılaştırması
Haas CNC Freze G Kodları
Haas kontrol üniteleri, kullanıcı dostu arayüzü ve standart G kodlarıyla tanınır. 20 yıllık sanayi deneyimimde Haas tezgahlarında çalışırken şu özelliklerini fark ettim:
Haas Özel Özellikleri:
- G103 – Blok Look-ahead limiti
- G187 – Hassas durak modu
- Makro programlama desteği güçlü
; Haas Örnek Program
O1234 (HAAS FREZE PROGRAMI)
G54 G90 G17 G94 G80
T1 M6 (6MM PARMAK FREZE)
G43 H1 Z25.
S2000 M3
G0 X10. Y10.
G1 Z-5. F500
Y50. F800
X50.
Y10.
X10.
G0 Z25.
M30
Fanuc CNC Freze Programlama
Fanuc kontrol üniteleri, endüstri standardı olarak kabul edilir. Özellikle hassas işleme gerektiren projelerimde Fanuc sistemlerini tercih ediyorum.
Fanuc Özel Komutları:
- G05 – Yüksek hızlı ve hassasiyet modu
- G05.1 Q1 – AI Contour Control
- Custom makro fonksiyonları gelişmiş
; Fanuc Örnek Program
O0001 (FANUC FREZE)
G21 G90 G17 G94 G80
T01 M06 (8MM ENDMILL)
G43 H01 Z50.
S1800 M03 M08
G00 X0 Y0
G01 Z-10. F200
G41 D01 X20. F600
G03 X40. Y20. I20. J0
G01 Y40.
G03 X20. Y60. I-20. J0
G01 X0
G40 G00 Z50.
M05 M09
M30
Siemens CNC Sistemi
Siemens 840D ve 828D sistemleri, gelişmiş interpolasyon algoritmaları ve yüksek işleme hassasiyeti sunar. Özellikle karmaşık 3D yüzey işlemelerinde üstün performans gösterir.
Siemens Özel Özellikleri:
- COMPOF – Kompanzasyon kapatma
- G642 – Yumuşak interpolasyon
- ShopMill döngüleri
; Siemens Örnek
N10 G54 G90 G17 G94
N20 T="ENDMILL_D10" M6
N30 S1500 M3 F400 M8
N40 G0 X0 Y0 Z5
N50 G1 Z-5
N60 G41 D1 X25 Y0
N70 G2 X25 Y25 I0 J12.5
N80 G1 X0 Y25
N90 G40 X0 Y0
N100 G0 Z100
N110 M30
Pratik CNC Freze Programlama Örnekleri
Örnek 1: Dikdörtgen Cep İşleme
O2001 (DIKDORTGEN CEP)
G54 G90 G17 G94 G80
T1 M6 (10MM ENDMILL)
G43 H1 Z25.
S1200 M3 M8
; Kontur işleme
G0 X5. Y5.
G1 Z-8. F150
G41 D1 X10. F500
Y40.
X70.
Y10.
X10.
G40 X5. Y5.
; Cep temizleme
G1 X15. Y15.
G41 D1 X20.
Y35.
X65.
Y20.
X20.
G40 X15.
G0 Z25.
M5 M9
M30
Bu örnekte dikdörtgen bir cebin kontur kesimi ve içinin temizlenmesi gösterilmektedir. G41 takım yarıçap kompanzasyonu kullanılarak hassas ölçü alınmıştır.
Örnek 2: Dairesel Boşluk İşleme
O2002 (DAIRESEL BOSLUK)
G54 G90 G17 G94
T2 M6 (8MM ENDMILL)
G43 H2 Z20.
S1500 M3 M8
; Merkez delik
G0 X30. Y30.
G81 Z-12. R2. F200
G80
; Kontur kesim
G1 Z-5. F100
G41 D2 X45.
G2 X45. Y30. I-15. J0 F400
G40 X30.
G0 Z20.
M5 M9
M30
Örnek 3: Kademeli Freze İşlemi
O2003 (KADEMELI FREZE)
G54 G90 G17 G94 G80
T3 M6 (12MM FACE MILL)
G43 H3 Z30.
S800 M3 M8
; 1. Kademe (Z=-5)
G0 X0 Y0
G1 Z-5. F120
X80. F600
Y60.
X0
Y0
; 2. Kademe (Z=-10)
X10. Y10.
G1 Z-10. F120
X70. F600
Y50.
X10.
Y10.
G0 Z30.
M5 M9
M30
Hata Analizi ve Çözümleri
Mühendislik kariyerimde CNC freze programlama sırasında karşılaştığım yaygın hatalar ve çözümleri:
Takım Çarpışması Hataları
Problem: G00 hızlı hareket sırasında takım iş parçasına çarpıyor.
Çözüm:
G0 Z25. ; Önce güvenli yüksekliğe çık
G0 X50. Y50. ; Sonra XY düzleminde hareket et
G1 Z-10. F200 ; Kontrollü olarak aşağı in
Takım Yarıçap Kompanzasyonu Hataları
Problem: G41/G42 kompanzasyon geçişlerinde keskin köşelerde takım izi bırakıyor.
Çözüm: Köşe radyusu eklemek ve yumuşak geçiş sağlamak:
G1 X50. Y0 F400
G3 X52. Y2. I2. J0 ; 2mm radius köşe
G1 Y50.
İleri Seviye Programlama Teknikleri
Makro Programlama
O9001 (MAKRO ORNEGI)
#1=10. (X BASLANGIC)
#2=5. (Y BASLANGIC)
#3=20. (X ADIM)
#4=4 (TEKRAR SAYISI)
N1 G0 X#1 Y#2
WHILE [#4 GT 0] DO1
G1 Z-5. F200
G0 Z5.
#1=#1+#3
G0 X#1
#4=#4-1
END1
M30
Parametrik Programlama
Değişken boyutlarda parçalar için parametrik program yazma:
O9002 (PARAMETRIK CEP)
; Parametreler
#100=50. (CEP UZUNLUK)
#101=30. (CEP GENISLIK)
#102=8. (KESME DERINLIGI)
#103=500. (FEED RATE)
G0 X[#100/2] Y[#101/2]
G1 Z-#102 F200
G41 D1 X#100 F#103
Y#101
X0
Y0
G40
Kalite Kontrol ve Ölçüm
CNC freze işlemi sonrası kalite kontrolünde dikkat edilmesi gereken parametreler:
Boyutsal Toleranslar
- Doğrusal boyutlar: ±0.1 mm standart tolerans
- Delik çapları: H7 tolerans sınıfı yaygın
- Yüzey pürüzlülüğü: Ra 1.6-3.2 μm arası normal
Ölçüm Teknikleri
Koordinat Ölçüm Makinesi (CMM): Hassas 3D ölçümler için Optik ölçüm: Küçük detaylar ve kenar kalitesi için Pnömatik ölçüm: Seri üretimde hızlı kontrol için
Güvenlik Kuralları ve Standartlar
CNC freze tezgahlarında çalışırken uyulması gereken güvenlik kuralları:
Operatör Güvenliği
- Kişisel koruyucu ekipman: Güvenlik gözlüğü, kulaklık, iş eldiveni zorunlu
- Makine çalışırken kapak açma: Kesinlikle yasak
- Takım değişimi: Sadece spindle durduktan sonra yapılmalı
Programlama Güvenliği
; Güvenli program başlangıcı
G40 G49 G80 G90 ; Tüm kompanzasyonları iptal et
G0 Z25. ; Güvenli Z yüksekliği
M5 ; Spindle durdur
M9 ; Soğutmayı kapat
İSO 14649 Standardı
NC programlama için uluslararası standartlara uygun kodlama yapılmalıdır. Bu standart, farklı kontrol üniteleri arasında uyumluluğu sağlar.
Performans Optimizasyonu
Kesme Parametreleri Optimizasyonu
Spindle Hızı Hesaplama:
N = (1000 × Vc) / (π × D)
- N: Spindle hızı (rpm)
- Vc: Kesme hızı (m/dak)
- D: Takım çapı (mm)
Feed Rate Hesaplama:
F = N × fz × Z
- F: Feed rate (mm/dak)
- N: Spindle hızı (rpm)
- fz: Diş başına ilerleme (mm/diş)
- Z: Diş sayısı
Takım Ömrü Uzatma
Projelerimde takım ömrünü uzatmak için uyguladığım yöntemler:
Kademeli Kesme: Zor malzemelerde küçük talaş derinlikleri Trochoidal Freze: Radyal kesme kuvvetini azaltma Adaptive Feed: Köşelerde feed rate’i otomatik azaltma
Sorun Giderme
Yaygın Program Hataları
Alarm 10: Koordinat sistem hatası
; Çözüm
G54 ; Koordinat sistemini aktive et
G92.1 ; Koordinat offset'lerini sıfırla
Alarm 200: Servo motor hatası
; Kontrol edilecekler
- Kablo bağlantıları
- Encoder sinyal kalitesi
- Motor sıcaklığı
Yüzey Kalitesi Problemleri
Titreşim İzleri:
- Spindle hızını değiştirin
- Takım uzantısını azaltın
- Rigid tapping modunu kullanın
Kötü Yüzey Kalitesi:
- Feed rate’i optimize edin
- Takım geometrisini kontrol edin
- Soğutma sıvısı akışını ayarlayın
Endüstri 4.0 ve Gelecek Trendleri
CNC teknolojisinin gelişimi ve endüstri 4.0 entegrasyonu:
Akıllı İmalat Sistemleri
Adaptive Control: Gerçek zamanlı kesme parametresi optimizasyonu Digital Twin: Sanal makine simülasyonu Predictive Maintenance: Öngörülü bakım sistemleri
IoT Entegrasyonu
Modern CNC sistemlerinde:
- Gerçek zamanlı veri toplama
- Bulut tabanlı analiz
- Uzaktan izleme ve kontrol
Sık Sorulan Sorular
CNC freze G kodları arasındaki fark nedir?
G kodları preparatör fonksiyonlardır ve takımın hareket şeklini belirler. G00 hızlı pozisyonlama, G01 doğrusal kesme, G02/G03 dairesel hareket sağlar. Her kod farklı bir geometrik hareketi tanımlar.
Hangi kontrol ünitesi daha İyidir: Haas, Fanuc yoksa Siemens?
Her kontrol ünitesinin kendine özgü avantajları vardır. Fanuc endüstri standardı olarak yaygındır, Haas kullanıcı dostu ve ekonomiktir, Siemens ise yüksek hassasiyet gerekli uygulamalarda üstündür. Seçim, uygulama alanına ve bütçeye bağlıdır.
CNC freze programlama öğrenmek ne kadar sürer?
Temel programlama 2-3 ayda öğrenilebilir, ancak uzman seviyeye ulaşmak 2-3 yıl sürer. Pratik deneyim ve farklı malzeme/takım kombinasyonları ile çalışmak kritiktir.
G41 ve G42 arasındaki fark nedir?
G41 takım yarıçap kompanzasyonunu sol tarafa, G42 sağ tarafa uygular. Takımın hareket yönüne ve kesilecek malzemenin hangi tarafta olduğuna göre seçilir.
M08 ve M09 kodları zorunlu mudur?
Soğutma kodları zorunlu değildir ancak takım ömrü ve yüzey kalitesi için kritiktir. Özellikle çelik ve paslanmaz çelik işlemlerinde mutlaka kullanılmalıdır.
Sonuç
CNC freze G kodları ve M kodları, modern imalat sanayinin temel taşlarıdır. 10+ yıllık mühendislik deneyimimde öğrendiğim en önemli nokta, bu kodları sadece ezberlemekle kalmamalı, mantığını anlamalı ve praktik uygulamalarla pekiştirmelisiniz.
Ana Öğrenilecek Noktalar:
- G00-G03 hareket kodları tüm programların temelidir
- Takım kompanzasyonu (G41/G42/G43) hassas işleme için zorunludur
- M kodları makine fonksiyonlarını güvenli şekilde kontrol eder
- Farklı kontrol üniteleri arasındaki farkları bilmek önemlidir
Bu kapsamlı rehber, CNC freze programlama yolculuğunuzda size rehberlik edecektir. Ancak unutmayın ki gerçek uzmanlık, teorik bilgiyi pratik deneyimle birleştirmekten geçer. Her yeni projede karşılaştığınız zorluklarla büyüyecek ve daha iyi bir programcı olacaksınız.
