熱門關(guān)鍵詞:上海雕塑 上海3D打印 美陳制作 廣告道具 浮雕制作 道具制作 櫥窗展示
聯(lián)系人:韋經(jīng)理
郵 箱:[email protected]
電 話:155-8880-8889
地 址:上海市青浦區(qū)紀(jì)鶴公路5348號(hào)北3層
就像學(xué)習(xí)一門新的外語一樣,如果您經(jīng)常使用3D打印機(jī)或其他CNC機(jī)器,了解G-Code的構(gòu)建方式以及某些說明的含義不僅可以解決打印問題,還可以根據(jù)需求自定義打印。
G-CODE是我們告訴機(jī)器它們需要做什么的方式。自1950年代后期以來一直流行至今,是使用最廣泛的計(jì)算機(jī)數(shù)控編程語言。不過,請(qǐng)不用擔(dān)心,因?yàn)樗悄芟氲降淖詈唵蔚恼Z言之一:在大多數(shù)3D打印機(jī)上使用的形式中,沒有循環(huán)、沒有if語句、沒有括號(hào)或任何其他花哨的東西。如果您在切片器中準(zhǔn)備一個(gè)模型并在文本編輯器中打開生成的G-CODE,您會(huì)看到它只是3D打印機(jī)固件讀取然后執(zhí)行的命令列表(按行執(zhí)行)。
△PrusaSlicer中的G-CODE可視化
本文中,將介紹3D打印機(jī)最常見的G-CODE(與Marlin固件兼容),使您能夠理解95%的3D打印G-CODE。如果你運(yùn)行帶有RepRap固件的打印機(jī)或帶有Mach 3的CNC系統(tǒng),文件的整體外觀將是相同的,盡管某些命令的執(zhí)行操作可能略有不同。
△Marlin G-CODE示例
那么讓我們來看看Marlin-G-code。正如之前所說,代碼從文件的開頭到結(jié)尾按行處理,這些文件通常由一個(gè)包含一些基礎(chǔ)信息的標(biāo)題組成。接下來是您可以在切片器中自定義的開始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)開頭。在一行的開頭有一個(gè)分號(hào)意味著這是一個(gè)注釋,所以它會(huì)被固件忽略。注釋不能占用整行,而是在常規(guī)命令后添加,提高代碼的可讀性。切片器還會(huì)經(jīng)常添加注釋,以便您更輕松地找到某個(gè)圖層或某個(gè)功能。為了完整性,根據(jù)CNCG-CODE標(biāo)準(zhǔn),一些固件支持括號(hào)中的注釋,盡管這種風(fēng)格很少使用。
△G-CODE中的注釋
句法
再來看看G-CODE的命令語法。每個(gè)命令都以字母開頭。G代表準(zhǔn)備命令,通常用于與運(yùn)動(dòng)相關(guān)的任務(wù)。M命令(Miscellaneous commands)通常用于更改設(shè)置或執(zhí)行操作。后面的數(shù)字代表了一個(gè)特定的命令。接下來是G-CODE的命令參數(shù),用一個(gè)描述性字母,然后是參數(shù)值。
△G-CODE句法
G0 & G1 - 直線運(yùn)動(dòng)
讓我們從最常見的G0和G1命令開始,它們用于軸的運(yùn)動(dòng)。XYZ參數(shù)定義了它需要移動(dòng)的位置,E定義了擠出的材料量,F(xiàn)定義了進(jìn)給量,通常以毫米/分鐘為單位。G0和G1不需要所有軸的值,而且只需設(shè)置一次,狀態(tài)會(huì)一直存在,直到被更改。在過去,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開始并發(fā)送G0 X50 Y50,打印頭將移動(dòng)到X50Y50。但是如果在這之后發(fā)送G0 X100 Y100,打印頭將執(zhí)行增量移動(dòng)并在停留在X150Y150。
△相對(duì)/增量定位
G-Code文件中的大部分移動(dòng)都將使用絕對(duì)定位來實(shí)現(xiàn)。相對(duì)定位可能有用的地方是,例如,在G-CODE最后,您希望將噴嘴從打印件上抬起并移開。因此,無論您的型號(hào)高度如何,G91和G0Z10始終都將打印頭提升10毫米。緊接著,用G90切換回絕對(duì)定位,可以將噴嘴移動(dòng)到打印床的邊緣。
△結(jié)束腳本示例以抬起噴嘴并將其移開
M82 & M83 - 擠出機(jī)定位模式
與打印移動(dòng)相關(guān)的還有命令對(duì)M82和M83。盡管看起來有點(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)格。