GCODE, vlastní start a end skript

 

Dobrý den, zdravím vás u dalšího článku z dílny malé továrny na velké věci. V minulých článcích jsme instalovali a nastavovali tiskový server octoprint. V tom dnešním článku se podíváme na gcode který řídí chod 3d tiskárny, vysvětlíme si některé kódy a nastavíme si start a end skript. Tyto skripty, slicovací program vloží na začátek a konec každého souboru. Můžeme je tedy na začátku využít k očištění trysky, respektive k otření kousku plastu, který byl samovolně vytlačen z extruderu při zahřívání, a na konci si můžeme posunout podložku vpřed, aby se nám hotový model snadno odebíral z podložky. Nebude to nic složitého, přesto tyto kroky mnoho uživatelů nechává nevyužité a přitom se zde dají dělat doslova divy.

Ze všeho nejdříve vám ukážu některé základní kódy s popisem, k čemu slouží:

G28 – přesun všech os do domácích pozic tedy ke koncovým spínačům

G0 – servisní pohyb, tedy pohyb bez extruze Přesun na pozici X, Y, Z = 10,10, 10 rychlostí 500mm/min by vypadal takto:

G0 X10 Y10 Z10 F500

G1 – pracovní pohyb. Přejede na pozici 10, 10 a vytlačí 0.3mm filamentu

G1 X10 Y10 E0.3 F500

G90, G91 – absolutní nebo relativní pozicování

G91 – absolutní pozicování si můžete představit jako jako jednoduchý pohyb zvoleným směrem.

G91 ; nastaví „absolutní“ pozicování

G1 X10.0 ;  jednoduchý pohyb o 10mm doprava.

G1 X10.0 ; další pohyb o 10mm doprava (nyní již 20mm vpravo).

G1 X10.0 ; další pohyb o 10mm doprava (nyní již 30mm vpravo).

Je to tedy pohyb počítán vždy z pozice, ve které se zrovna extruder nachází. U relativního pozicování je to však trochu jinak. Vychází se vždy z domácí pozice.

G90 ; nastaví „relativní“ pozicování

G1 X10.0 ;  jednoduchý pohyb o 10mm doprava.

G1 X20.0 ; další pohyb o 10mm doprava (nyní tedy 20mm vpravo).

G1 X30.0 ; další pohyb o 10mm doprava (nyní tedy 30mm vpravo).

Doufám, že tomu rozdílu dobře rozumíte, je to totiž klíčové při psaní vlastního gcode. Aby jste přesně věděli kam se bude extruder posouvat.

G20, G21 – nastavení veličin (G20 = inch, G21 = milimetry)

Tento základ G by nám pro napsání start a end gcodu mohl stačit. Máme však ještě sadu M kódů, které ovládají příslušenství 3D tiskárny. Jsou to takové rozšiřující kódy.

M104, M109 – nastaví teplotu trysky extruderu. Nastavit můžeme exaktní číslo nebo globální proměnnou. Ta se uvozuje složenými závorkami.

M104 S190 ; nastaví teplotu extruderu na 190°C avšak nečeká na dosažení teploty, ale pokračuje dalším příkazem.

M104 S{print_temperature} ; nastaví teplotu trysky na teplotu kterou jsme si nastavili při slicování modelu avšak nečeká na dosažení teploty, ale pokračuje dalším příkazem.

M109 S190 ; nastaví teplotu extruderu na 190°C a počká na její dosažení, teprve potom pokračuje dále.

M109 S{print_temperature} ; nastaví teplotu trysky na teplotu kterou jsme si nastavili při slicování modelu a počká na její dosažení, teprve potom pokračuje dále.

M140, M190 – nastaví teplotu vyhřívané podložky

M140 S60; nastaví teplotu podložky na 60°C avšak nečeká na dosažení teploty, ale pokračuje dalším příkazem.

M104 S{print_bed_temperature} ; nastaví teplotu podložky na teplotu kterou jsme si nastavili při slicování modelu avšak nečeká na dosažení teploty, ale pokračuje dalším příkazem.

M190 S60; nastaví teplotu podložky na 60°C a počká na její dosažení, teprve potom pokračuje dále.

M190 S{print_bed_temperature} ; nastaví teplotu podložky na teplotu kterou jsme si nastavili při slicování modelu a počká na její dosažení, teprve potom pokračuje dále.

M107 – ovládání větráku který ochlazuje výtisk a trysku. Zde můžeme využít osmibitovou hodnotu (0-255) síly foukání.

M107 ; spustí větrák

M107 S127 ; zapnutí větráku na poloviční výkon

M107 ; vypne větrák

M117 – vypíše zprávu na displej.

M117 Printing…

Teď se pojďme podívat, jak by mohl vypadat vlastní start gcode. V prvé řadě musíme vrátit všechny osy do výchozí pozice příkazem G28, zahřejeme podložku, trysku, pak si extruder posuneme na okraj podložky, kam vytlačíme několik milimetrů plastu a očistíme si tím trysku. Tedy:

 

G28; všechny osy na koncové spínače

G21 ; metrické veličiny

 

G91; nastaví relativní pozicování

G1 X30.0 Y15.0 Z-10 F1000; nyní posuneme trysku nad podložku rychlostí 1000mm/min

G1 X80.0 E10; nyní posuneme trysku o 50mm doprava a vytlačíme přitom 10mm struny

G90; nastaví zpět absolutní pozicování

M117 Tisknu…; sem si občas nastavuji program ve kterém jsem model slicoval

 

Dále již bude pokračovat tisk standardně, jak jsme zvyklí. End kód, který se vloží na konec souboru, by tedy mohl vypadat takto:

 

M104 S0; vypne zahřívání trysky

M140 S0; vypne zahřívání podložky

G91; relativní pozicování

G1 E-1 F300; motor extruderu vytáhne tiskovou strunu 2mm z trysky aby poklesl vnitřní tlak

G1 Z+2.0 E-5.0 F500; zvedne trysku o 2mm a posune strunu ještě o 5mm ven z trysky

G28 X0 Y0; osy X a Y se vrátí na koncové spínače, osa Z zůstává beze změny

G1 Y200.0 F1000; posune podložku dopředu o 200mm abychom měli výtisk snadno přístupný

M84; odblokuje krokové motory

G90; absolutní pozicování

 

Kompletní seznam všech možných G a M kódů najdete v anglickém jazyce na stránkách projektu RepRap. Zde jsem také čerpal informace pro mé první skripty a také pro tento článek. Ještě se rychle podívejme, kam tyto skripty zadat v různých programech.

Slic3r:

Simplify3d:

 

V dnešním článku jsme se dostali na samý závěr. Jestli použijete start nebo end skript z tohoto článku, nebo si vytvoříte svůj vlastní nechám čistě na vás. Už nyní se ale můžete těšit na další článek z dílny malé továrny na velké věci, ve kterém si opět ukážeme něco zajímavého.

7 thoughts on “GCODE, vlastní start a end skript

  1. rollfree says:

    Tyhle příklady jsou asi naopak, tiskařský šotek si zřejmě zařádil a přehodil je.

    G90 ; nastaví „absolutní“ pozicování
    G1 X10.0 ; jednoduchý pohyb o 10mm doprava.
    G1 X10.0 ; další pohyb o 10mm doprava (nyní již 20mm vpravo).
    G1 X10.0 ; další pohyb o 10mm doprava (nyní již 30mm vpravo).

    G91 ; nastaví „relativní“ pozicování
    G1 X10.0 ; jednoduchý pohyb o 10mm doprava.
    G1 X20.0 ; další pohyb o 10mm doprava (nyní tedy 20mm vpravo).
    G1 X30.0 ; další pohyb o 10mm doprava (nyní tedy 30mm vpravo).

    • Miroslav Kováčik says:

      Dobrý den “rollfree” děkuji za upozornění, opravdu jsou příkazy G90 a G91 prohozené. Ihned to v článku opravím ať čtenáře neuvádím v omyl.

  2. mars29 says:

    G90 je absolut a G91 je relativ ……….. takže povodne bolo dobre a teraz je to zle
    ..
    A na základe tejto chyby sú tam potom aj ďalšie chyby. Ale na pochopenie G-kódu dobrý článok. Mne to pomohlo.

  3. rollfree says:

    Původně bylo dobře popsáno G90 a G91, ale byly u nich přehozené příklady.
    Teď sice technicky sedí G9x a jejich příklady, ale zase je u nich naopak popis.

    Pokud by to autor opravoval, tak by mohl spravit ještě jeden překlep:
    G1 E-1 F300; motor extruderu vytáhne tiskovou strunu 2mm z trysky aby poklesl vnitřní tlak
    Tady patří, že vytáhne strunu o 1mm a ne 2mm.

  4. lubo1 says:

    Chyba ja v popise…..
    Absulutna pozicia je chod NA konkrétnu súradnicu…..
    Relatívna je posun O x mm v zadanom smere
    napr
    G90 ….. prepni na absolútne poziciovanie
    G1 Y0 – presuň hlavu na poziciu Y0
    G1 Y10 – presuň hlavu NA poziciu Y10
    G1 Y10 – presuň hlavu NA poziciu Y10 – keďže tam je – neurobí nič
    G1 Y10 – presuň hlavu NA poziciu Y10 – keďže tam je – neurobí nič

    G90 – absolutne poziciovanie
    G1 Y0 presuň hlavu na poziciu Y0
    G91 – prepni na relativne poziciovanie
    G1 Y10 – presunie hlavu O 10 doprava
    G1 Y10 – presunie hlavu O 10 doprava – je na pozícii Y20
    G1 Y10 – presunie hlavu O 10 doprava – je na pozícii Y30

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *