G-kod (Gerber code or Geometric Code) je standardizovani programski jezik pomoću kojeg računar upravlja radom 3D štampača.
Ako se niste do sad sreli sa G-kodom, zamislite ga kao uzastopni niz naredbi koje računar šalje 3D štampaču i govori mu šta treba da radi. Svaki red koda, odnosno blok je jedna naredba koju 3D štampač mora izvršiti. Postoji veliki broj naredbi i svaka od njih pokriva neku funkciju 3D štampača: kretanje glave štampača, uključivanje ventilatora, podešavanje temperature, regulisanje brzine, vraćanje glave u referentnu tačku...
Ovu stranicu sam napravio samo da početnicima u 3D štampanju pružim osnovne informacije o G-kodu. Više o njemu ću napisati kada budem pisao o CAM softverima i RNU mašinama.
G-kod je standardizovani programski jezik, nastao je 50-ih godina prošlog veka na Masačusetskom Institutu za Tehnologije (MTI), a njegova prvobitna uloga je bila upravljanje numerički upravljanim mašinama alatkama (RNU mašinama, CNC mašinama). Pošto 3D štampači rade na istom principu kao RNU mašine, logično je da se ovaj programski jezik koristi i za njihovo upravljanje.
Da bi početnicima bilo jasno kako nastaje G-kod nabrojaću faze koje su potrebne za 3D štampanje nekog predmeta:
Modeliranje 3D modela u 3D CAD ili softverima za 3D modeliranje.
Izvoz 3D modela iz 3D CAD softvera u nekom od odgovarajućih formata (najčešće stl, amf ili 3mf).
Uvoz 3D modela u softver za simulaciju 3D štampanja.
Definisanje parametara bitnih za 3D štampanje.
Isecanje 3D modela na horizontalne slojeve.
Generisanje putanja glave štampača na osnovu zadatih parametara i isečenih slojeva.
Pretvaranje putanja u G-kod.
Slanje G-koda ka 3D štampaču ili njegovo snimanje u datoteku.
Datoteka sa G-kodom je obična ASCII tekstualna datoteka. Ekstenzije datoteka sa G kodom su najčešće .gcode, .nc, .gc, ali u praksi ćete često sretati i veliki broj drugih ekstenzija poput: .ncc, .ngc, .cnc, .tap...
Ako ste se na početku uplašili, kada ste pročitali da se radi o programskom jeziku, možete se opustiti. G-kod je jedan od najjednostavnijih programskih jezika (nema komplikovanih sintaksi, petlji i sl.). Samo lista komandi i vrednosti koje 3D štampač jednu po jednu čita i izvršava. Nekada, dok CAD/CAM softveri nisu bili tako rasprostranjeni, programi su se ručno pisali i unosili u mašinu. Naravno, ako je bilo potrebno proizvesti na RNU mašini deo koji ima složen oblik, pisanje i unošenje programa u mašinu je bio dugotrajan i zamoran proces sa velikim brojem subjektivnih grešaka.
Ako ste početnik nemojte ručno da pišete program jer možete oštetiti Vaš štampač.
Softveri za simulaciju 3D štampanja automatski generišu G-kod program na osnovu geometrije 3D modela i u praksi uglavnom nije potrebno poznavanje komandi ovog jezika. Sa druge strane poznavanje G-koda će Vaš rad napraviti efektivnijim t.j. bolje ćete kontrolisati rad štampača i brže ćete otklanjati eventualne greške. Ako počinjete da se bavite sa 3D štampom naučite najčešće korišćene komande, videćete da će Vam to samo koristiti u radu.
Na sledećoj slici možete videti početni deo jednog programa G-kod programa namenjenog za 3D štampanje. Tekst koji se nalazi iza znaka tačka i zarez su komentari koji se obično stavljaju automatski da bi program bio jasniji.

Primer G-kod programa
Naredbe G-koda se najčešće zovu funkcijama i mogu se podeliti na opšte i pomoćne. Opšte funkcije se koriste za upravljanje glavom 3D štampača (kretanjem i ekstruzijom) i počinju sa slovom G. Pomoćne funkcije su instrukcije koje ne zahtevaju kretanje. Takve funkcije su na primer funkcije za zagrevanje plastike, kontrola ventilatora.... Pomoćne funkcije G-koda počinju sa slovom M.
Broj funkcija se vremenom povećavao, a nove takođe počinju slovima G ili M. Mogućnost raširenja t.j. povećanja broja funkcija omogućilo je G kodu da evoluira i odoli zubu vremena.
U zavisnosti koji upravljački softver 3D štampač koristi, G-kod može da se malo razlikuje.
Jedan od nedostataka G-koda su veoma veliki programi t.j. datoteke. Na ovaj problem ćete naići kada budete hteli velikom preciznošću da štampate 3D modele sa složenim površima. Da bi se bar malo smanjili programi kompanija Prusa je predložila da se za štampanje počne koristiti binarni G-kod format .bgcode.
Da bi ste stekli bolji utisak šta je to G kod, predstaviću Vam nekoliko funkcija koje ćete najčešće videti u programima za 3D štampanja.
G00 – Pozicioniranje brzim hodom – Pomeranje glave 3D štampača brzim hodom od trenutnog položaja do nekog referentnog
G01 – Linearna interpolacija, Linearno kretanje – Pomeranje glave štampača radnom brzinom po pravoj liniji do nekog položaja
G02 – Kružna interpolacija u smeru kazaljke na satu – Pomeranje glave štampača po kružnici u smeru kazaljke na satu.
G03 – kružna interpolacija u smeru suprotnom od smera kazaljke na satu - Pomeranje glave štampača po kružnici u smeru suprotnom od smera kazaljke na satu.
G17 – Izbor ravni XY kao radne
G18 – Izbor ravni XZ kao radne
G19 – Izbor ravni YZ kao radne
G20 - Program u imperijalnom sistemu mernih jedinica
G21 - Program u metričkom sistemu mernih jedinica
G28 – Odlazak u referentnu tačku
G90 - Programiranje u absolutnim koordinatama
G91 – programiranje u inkrementalim (relativnim) koordinatama
M00 – Zaustavljanje programa
M02 – Kraj programa
M104 – Uključivanje zagrevanja plastike
M106 – definisanje brtine obrtaja ventilatora
M109 – Čekanje dok se ne dostihne temperatura štampe
M140 – Uključivanje zagrevanje radnog stola 3D štampača
M149 - Zadavanje mernih jedinica za temperaturu
M190 – Čekanje dok radn sto ne dostihne radnu temperaturu
Kompletnu listu G i M funkcija (za RepRap 3D štampače) možete pronaći na strani: G-Kod funkcije