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