3D打印的G-Code基礎知識
時間:2021-11-24 13:31 來源:南極熊 作者:admin 閱讀:次
導讀:就像學習一門新的外語一樣,如果您經常使用3D打印機或其他CNC機器,了解G-Code的構建方式以及某些說明的含義不僅可以解決打印問題,還可以根據需求自定義打印。
G-CODE是我們告訴機器它們需要做什么的方式。自1950年代后期以來一直流行至今,是使用最廣泛的計算機數控編程語言。不過,請不用擔心,因為它是您能想到的最簡單的語言之一:在大多數3D打印機上使用的形式中,沒有循環、沒有if語句、沒有括號或任何其他花哨的東西。如果您在切片器中準備一個模型并在文本編輯器中打開生成的G-CODE,您會看到它只是3D打印機固件讀取然后執行的命令列表(按行執行)。
△PrusaSlicer中的G-CODE可視化
本文中,將介紹3D打印機最常見的G-CODE(與Marlin固件兼容),使您能夠理解95%的3D打印G-CODE。如果你運行帶有RepRap固件的打印機或帶有Mach 3的CNC系統,文件的整體外觀將是相同的,盡管某些命令的執行操作可能略有不同。

△Marlin G-CODE示例
那么讓我們來看看Marlin-G-code。正如之前所說,代碼從文件的開頭到結尾按行處理,這些文件通常由一個包含一些基礎信息的標題組成。接下來是您可以在切片器中自定義的開始G-CODE,然后是帶有結束G-CODE打印命令。通常還有一個包含所有切片器設置的文本塊。如果您忘記保存配置文件或從其他人那里收到打印非常好的G-CODE文件,這部分或許非常有用。某些切片器將允許您導入G-CODE文件并根據設置生成配置文件,但這通常是僅當G-CODE也使用相同的切片器創建才能夠實現。
注釋
如果我們查看標題或設置塊,我們已經可以看到一些重要的東西。這些行通常以分號開頭。在一行的開頭有一個分號意味著這是一個注釋,所以它會被固件忽略。注釋不能占用整行,而是在常規命令后添加,提高代碼的可讀性。切片器還會經常添加注釋,以便您更輕松地找到某個圖層或某個功能。為了完整性,根據CNCG-CODE標準,一些固件支持括號中的注釋,盡管這種風格很少使用。
△G-CODE中的注釋
句法
再來看看G-CODE的命令語法。每個命令都以字母開頭。G代表準備命令,通常用于與運動相關的任務。M命令(Miscellaneous
commands)通常用于更改設置或執行操作。后面的數字代表了一個特定的命令。接下來是G-CODE的命令參數,用一個描述性字母,然后是參數值。
△G-CODE句法
G0 & G1 - 直線運動
讓我們從最常見的G0和G1命令開始,它們用于軸的運動。XYZ參數定義了它需要移動的位置,E定義了擠出的材料量,F定義了進給量,通常以毫米/分鐘為單位。G0和G1不需要所有軸的值,而且只需設置一次,狀態會一直存在,直到被更改。在過去,G0用于不需要精度的快速移動,而G1是從一個位置到另一個位置的協調線性移動。然而在目前的3D打印機上,G0和G1幾乎相同,約定俗成的是G0用于行進運動,G1用于材料擠出的運動。
△G0 & G1 - 直線運動
G90 & G91 - 定位模式
與G0和G1相關的一個非常重要的命令對是G90和G91。這些將定位模式設置為絕對或相對。如果設置了G90,則所有運動都是到打印機坐標系中的絕對位置。所以G0X50
Y50將打印頭移動到X50 Y50,而G0 X100Y100將打印頭移動到X100 Y100。

△絕對定位
如果設置了G91,則所有運動都相對于最后一個位置。因此,如果我們從原點X0Y0開始并發送G0 X50 Y50,打印頭將移動到X50Y50。但是如果在這之后發送G0 X100 Y100,打印頭將執行增量移動并在停留在X150Y150。

△相對/增量定位
G-Code文件中的大部分移動都將使用絕對定位來實現。相對定位可能有用的地方是,例如,在G-CODE最后,您希望將噴嘴從打印件上抬起并移開。因此,無論您的型號高度如何,G91和G0Z10始終都將打印頭提升10毫米。緊接著,用G90切換回絕對定位,可以將噴嘴移動到打印床的邊緣。

△結束腳本示例以抬起噴嘴并將其移開
M82 & M83 - 擠出機定位模式
與打印移動相關的還有命令對M82和M83。盡管看起來有點奇怪,但耗材擠出機是3D打印機的第4軸,并且可以從絕對定位到相對定位分別切換,就像運動軸一樣。M82設置軸為絕對模式,M83設置為相對模式。此設置主要是您使用的切片器的偏好。CURA主要以絕對坐標進行擠壓,因此是M82命令,而PrusaSlicer默認使用M83進行相對擠壓。在這兩種命令中,累積相對誤差或哪一種命令更好這種討論并不是非常重要,更多的是您更喜歡哪種風格。

△不同切片器的示例G-CODE
(責任編輯:admin)
最新內容
熱點內容