導(dǎo)讀:就像學(xué)習(xí)一門新的外語(yǔ)一樣,如果您經(jīng)常使用3D打印機(jī)或其他CNC機(jī)器,了解G-Code的構(gòu)建方式以及某些說(shuō)明的含義不僅可以解決打印問(wèn)題,還可以根據(jù)需求自定義打印。
G-CODE是我們告訴機(jī)器它們需要做什么的方式。自1950年代后期以來(lái)一直流行至今,是使用最廣泛的計(jì)算機(jī)數(shù)控編程語(yǔ)言。不過(guò),請(qǐng)不用擔(dān)心,因?yàn)樗悄芟氲降淖詈?jiǎn)單的語(yǔ)言之一:在大多數(shù)3D打印機(jī)上使用的形式中,沒(méi)有循環(huán)、沒(méi)有if語(yǔ)句、沒(méi)有括號(hào)或任何其他花哨的東西。如果您在切片器中準(zhǔn)備一個(gè)模型并在文本編輯器中打開(kāi)生成的G-CODE,您會(huì)看到它只是3D打印機(jī)固件讀取然后執(zhí)行的命令列表(按行執(zhí)行)。 △PrusaSlicer中的G-CODE可視化
本文中,南極熊將介紹3D打印機(jī)最常見(jiàn)的G-CODE(與Marlin固件兼容),使您能夠理解95%的3D打印G-CODE。如果你運(yùn)行帶有RepRap固件的打印機(jī)或帶有Mach 3的CNC系統(tǒng),文件的整體外觀將是相同的,盡管某些命令的執(zhí)行操作可能略有不同。 △Marlin G-CODE示例
那么讓我們來(lái)看看Marlin-G-code。正如之前所說(shuō),代碼從文件的開(kāi)頭到結(jié)尾按行處理,這些文件通常由一個(gè)包含一些基礎(chǔ)信息的標(biāo)題組成。接下來(lái)是您可以在切片器中自定義的開(kāi)始G-CODE,然后是帶有結(jié)束G-CODE打印命令。通常還有一個(gè)包含所有切片器設(shè)置的文本塊。如果您忘記保存配置文件或從其他人那里收到打印非常好的G-CODE文件,這部分或許非常有用。某些切片器將允許您導(dǎo)入G-CODE文件并根據(jù)設(shè)置生成配置文件,但這通常是僅當(dāng)G-CODE也使用相同的切片器創(chuàng)建才能夠?qū)崿F(xiàn)。
注釋
如果我們查看標(biāo)題或設(shè)置塊,我們已經(jīng)可以看到一些重要的東西。這些行通常以分號(hào)開(kāi)頭。在一行的開(kāi)頭有一個(gè)分號(hào)意味著這是一個(gè)注釋,所以它會(huì)被固件忽略。注釋不能占用整行,而是在常規(guī)命令后添加,提高代碼的可讀性。切片器還會(huì)經(jīng)常添加注釋,以便您更輕松地找到某個(gè)圖層或某個(gè)功能。為了完整性,根據(jù)CNCG-CODE標(biāo)準(zhǔn),一些固件支持括號(hào)中的注釋,盡管這種風(fēng)格很少使用。 △G-CODE中的注釋
句法
再來(lái)看看G-CODE的命令語(yǔ)法。每個(gè)命令都以字母開(kāi)頭。G代表準(zhǔn)備命令,通常用于與運(yùn)動(dòng)相關(guān)的任務(wù)。M命令(Miscellaneous commands)通常用于更改設(shè)置或執(zhí)行操作。后面的數(shù)字代表了一個(gè)特定的命令。接下來(lái)是G-CODE的命令參數(shù),用一個(gè)描述性字母,然后是參數(shù)值。 △G-CODE句法
G0 & G1 - 直線運(yùn)動(dòng)
讓我們從最常見(jiàn)的G0和G1命令開(kāi)始,它們用于軸的運(yùn)動(dòng)。XYZ參數(shù)定義了它需要移動(dòng)的位置,E定義了擠出的材料量,F(xiàn)定義了進(jìn)給量,通常以毫米/分鐘為單位。G0和G1不需要所有軸的值,而且只需設(shè)置一次,狀態(tài)會(huì)一直存在,直到被更改。在過(guò)去,G0用于不需要精度的快速移動(dòng),而G1是從一個(gè)位置到另一個(gè)位置的協(xié)調(diào)線性移動(dòng)。然而在目前的3D打印機(jī)上,G0和G1幾乎相同,約定俗成的是G0用于行進(jìn)運(yùn)動(dòng),G1用于材料擠出的運(yùn)動(dòng)。 △G0 & G1 - 直線運(yùn)動(dòng)
G90 & G91 - 定位模式
與G0和G1相關(guān)的一個(gè)非常重要的命令對(duì)是G90和G91。這些將定位模式設(shè)置為絕對(duì)或相對(duì)。如果設(shè)置了G90,則所有運(yùn)動(dòng)都是到打印機(jī)坐標(biāo)系中的絕對(duì)位置。所以G0X50 Y50將打印頭移動(dòng)到X50 Y50,而G0 X100Y100將打印頭移動(dòng)到X100 Y100。 △絕對(duì)定位
如果設(shè)置了G91,則所有運(yùn)動(dòng)都相對(duì)于最后一個(gè)位置。因此,如果我們從原點(diǎn)X0Y0開(kāi)始并發(fā)送G0 X50 Y50,打印頭將移動(dòng)到X50Y50。但是如果在這之后發(fā)送G0 X100 Y100,打印頭將執(zhí)行增量移動(dòng)并在停留在X150Y150。 △相對(duì)/增量定位
G-Code文件中的大部分移動(dòng)都將使用絕對(duì)定位來(lái)實(shí)現(xiàn)。相對(duì)定位可能有用的地方是,例如,在G-CODE最后,您希望將噴嘴從打印件上抬起并移開(kāi)。因此,無(wú)論您的型號(hào)高度如何,G91和G0Z10始終都將打印頭提升10毫米。緊接著,用G90切換回絕對(duì)定位,可以將噴嘴移動(dòng)到打印床的邊緣。 △結(jié)束腳本示例以抬起噴嘴并將其移開(kāi)
M82 & M83 - 擠出機(jī)定位模式
與打印移動(dòng)相關(guān)的還有命令對(duì)M82和M83。盡管看起來(lái)有點(diǎn)奇怪,但耗材擠出機(jī)是3D打印機(jī)的第4軸,并且可以從絕對(duì)定位到相對(duì)定位分別切換,就像運(yùn)動(dòng)軸一樣。M82設(shè)置軸為絕對(duì)模式,M83設(shè)置為相對(duì)模式。此設(shè)置主要是您使用的切片器的偏好。CURA主要以絕對(duì)坐標(biāo)進(jìn)行擠壓,因此是M82命令,而PrusaSlicer默認(rèn)使用M83進(jìn)行相對(duì)擠壓。在這兩種命令中,累積相對(duì)誤差或哪一種命令更好這種討論并不是非常重要,更多的是您更喜歡哪種風(fēng)格。 △不同切片器的示例G-CODE
G28 - 歸位
大多數(shù)3D打印機(jī)為軸使用簡(jiǎn)單步進(jìn)電機(jī),沒(méi)有任何位置反饋。這意味著當(dāng)你打開(kāi)你的機(jī)器時(shí),它不知道它的位置。這就是為什么我們?cè)诖蛴C(jī)上運(yùn)行的每個(gè)G-CODE文件基本上一開(kāi)始就包含G28。G28啟動(dòng)歸位程序,機(jī)器移動(dòng)到已知位置的終點(diǎn),所有軸一個(gè)接一個(gè)地歸位。通過(guò)添加X(jué)、Y或Z參數(shù)或它們的組合,我們可以告訴固件僅歸位一個(gè)或兩個(gè)軸。 △軸歸位的不同方法
G29 - 床面平整
越來(lái)越多的3D打印機(jī)開(kāi)始配備床面調(diào)平探頭,其中G29用于開(kāi)始調(diào)平過(guò)程。G28和G29通常按連續(xù)順序出現(xiàn),因?yàn)樵陂_(kāi)始床身探測(cè)之前需要將軸歸位。
G92 - 設(shè)置當(dāng)前位置
與歸位類似,使用命令G92可以讓我們將當(dāng)前位置設(shè)置為特定值。因此,無(wú)論打印頭在何處,發(fā)送G92 X0 Y0 Z0都會(huì)告訴打印機(jī)當(dāng)前位置是坐標(biāo)系的新原點(diǎn)。在3D打印中,G-CODEG92在使用絕對(duì)擠壓時(shí)最常見(jiàn),并且擠壓機(jī)軸被重置以獲得更好的可讀性。 △G92示例
M104 & M109 + M140 & M190 - 溫度
現(xiàn)在讓我們看看溫度,特別是噴嘴和床的溫度。使用M104和M109加上參數(shù)S,即可設(shè)置噴嘴溫度。但是這對(duì)命令有什么區(qū)別呢?M104只是簡(jiǎn)單地設(shè)置噴嘴溫度,然后G-CODE的執(zhí)行將照常繼續(xù)。另一方面,M109設(shè)置溫度,然后暫停G-CODE執(zhí)行,直到達(dá)到溫度。 △設(shè)置噴嘴溫度
這在設(shè)置床溫時(shí)完全相同。M140將簡(jiǎn)單地設(shè)置預(yù)期溫度,M190設(shè)置溫度并暫停直到達(dá)到溫度。 △設(shè)置熱床溫度
順便說(shuō)一下,這兩對(duì)命令容易混淆,因?yàn)閿?shù)字4和9只相差了一位。 △相似的命令
基本上,您可以在任何腳本中找到它們。設(shè)置之后,打印機(jī)要等到達(dá)到適當(dāng)?shù)臏囟龋缓蟛砰_(kāi)始打印。如果您的打印機(jī)需要同時(shí)開(kāi)始加熱床和噴嘴,您會(huì)發(fā)現(xiàn)這些命令:M104、M140、M109、M190。 △同時(shí)加熱噴嘴和床
有些機(jī)器先加熱床,然后加熱噴嘴,以避免材料滲出。在這種情況下,您通常會(huì)在腳本中找到這樣的順序:M140、M190、M104和M109。 △先加熱床,然后加熱噴嘴
因此,如果您不想等待床和噴嘴一個(gè)接一個(gè)地加熱,現(xiàn)在知道要在腳本中更改什么了吧!另外,有些人會(huì)在特定高度手動(dòng)將M104命令添加到G-CODE中,自定義溫度塔。這種情況下,不建議使用M109,因?yàn)樾聹囟韧ǔ?huì)在一層內(nèi)達(dá)到,因此暫停打印會(huì)導(dǎo)致更多問(wèn)題。
M106 - 設(shè)置風(fēng)扇速度
另一個(gè)重要的命令是M106,用于控制冷卻風(fēng)扇。參數(shù)S的范圍可以從0到255,可讓您調(diào)整其速度。例如,全功率為255,半功率為128。如果要完全關(guān)閉,則使用M106 S0或?qū)S妹頜107。 △風(fēng)扇設(shè)置示例
M84 - 禁用步進(jìn)器
最后一個(gè)命令是M84。使用打印機(jī)控制移動(dòng)軸后,步進(jìn)電機(jī)將保持通電狀態(tài),以避免丟失其位置。如果您想禁用電機(jī)以便手動(dòng)移動(dòng)軸,您可以對(duì)所有軸使用M84,或者使用帶有X、Y、Z和E參數(shù)的M84來(lái)關(guān)閉單個(gè)軸。 △禁用步進(jìn)電機(jī)
如果您記住這10個(gè)命令或命令對(duì),就會(huì)理解切片機(jī)生成的大部分G-CODE并根據(jù)自己的喜好自定義打印例程。 來(lái)源:南極熊
|
你可能喜歡
變廢為寶:通過(guò)固相制造將鋁廢料轉(zhuǎn)化為3D打
新突破:基于聲波的3D打印技術(shù)——全息直聲
一篇帶你讀懂:金屬3D打印在航空航天領(lǐng)域的
全新的“高級(jí)補(bǔ)償”技術(shù)提高金屬3D打印的精
推薦課程
神奇的3D打印
SLA3D打印工藝全套培訓(xùn)課程 - 軟件篇
3D打印月球燈視頻教程 包括完整貼圖建模流
【原創(chuàng)發(fā)布】Cura軟件修改二次開(kāi)發(fā)定制視頻