從Marlin設定看3D列印機 - G12 Clean Nozzle

G12 Clean Nozzle指令是Marlin在RC7新增的新功能
相信有使用過噴墨印表機的人都知道 機器在剛開機時都會做一個清理噴頭的動作
Marlin也為3D列印機帶來了一樣的功能 
可以應用於在列印開始前,先把噴嘴清理乾淨
原理很簡單,在列印平台上劃定一個區域,定義為Clean Nozzle的範圍
執行指令時會把噴嘴移動到這個範圍內進行設計的路線移動,目的是把噴嘴上的殘渣抹乾淨
所以,這個區域內要有相對應的設計
我個人的作法是去電料行買一塊烙鐵用的耐熱海棉黏在這個區域,讓噴嘴在海棉上磨擦
藉以清潔噴嘴




使用方法很簡單

到Configuration.h把#define NOZZLE_CLEAN_FEATURE 反註解掉即可啟用此項功能支援

因為這個功能是要下指令方會進行動作,所以就算你的機器沒有這項功能,只要沒執行G12指令就不會有任何影響




此項功能參數不多

NOZZLE_CLEAN_STROKES - 噴嘴會在這個範圍內移動幾次(清潔次數)

NOZZLE_CLEAN_START_POINT
NOZZLE_CLEAN_END_POINT
清潔範圍設定,噴嘴會移動到所設定的範圍內進行清理

NOZZLE_CLEAN_GOBACK 清潔完成後是否回到原本的位置

使用這項功能前須先對列印平台做一些規劃(機器要有辦法移動到這個位置,不然就會縮減列印空間)
以下為範例



這個範例是在熱床邊緣放一塊海棉,海棉略高於熱床
依照以上設計 我們可以設定
#define NOZZLE_CLEAN_START_POINT { 90, 220, (Z_MIN_POS + 1)}
#define NOZZLE_CLEAN_END_POINT   {130, 250, (Z_MIN_POS + 1)}
Z的數字為Z_MIN_POS + 1
Z_MIN_POS通常是0(在Configuration.h可以設定)
所以此時Z=1
因為海棉略高熱床2mm 所以噴嘴清潔時會陷進海棉2-1 = 1mm 高度可以自己視情況調整

完成規劃與參數調整後
就可以用G12指令進行清潔噴嘴
簡單的應用是在切片軟體的前置GCode加進G12
這樣在列印任務開始前就會先進行清理噴嘴

以下以Cura為例
打開你的Machine Setting
找到Start GCode



這是Cura預設給i3的Code
會加在產生的GCode檔前面
內容是做一些初始化的動作

G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z15.0 F9000 ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
G1 F9000
;Put printing message on LCD screen
M117 Printing...

這邊大概說明一下這段GCode是幹麻用
G21 - 列印單位設為mm(gcode可以用mm或inch當作單位)
G90 - 座標為絕對定位
M82 - 擠出機為相對定位
M107 - 關閉風扇
G28 X0 Y0 - XY往MIN歸零
G28 Z0 Z往MIN歸零
備註:個人建議以上兩行簡化成一行G28(後面無參數)依照軔體設定去歸零,這樣適用範圍大 這邊設定是依照原版i3去做的
G1 Z15.0 F9000 -  移動Z平台到離噴嘴15cm處 F9000是速度 單位是mm/分
G92 E0 - 將目前擠出機位置設為0
F1 F200 E3 - 擠出三公分
<解讀GCode後,G12建議可以加在這>
G92 E0 - 再次將目前擠出機位置設為0
G1 F9000 - 將電機移動速度設為9000 mm/分
M117 Printing...  - 在LCD上顯示"Printing..."

解讀完這段GCode後 可以看出在列印開始前切片軟體對機器做了哪些初始化的動作
思考一下G12指令應該放在什麼位置好
我個人建議放在 F1 F200 E3 - 擠出三公分 後面
因為這段很明顯是先擠出一小段 把噴嘴填滿
所以在擠出後噴嘴可能會掛一小段擠出料
把G12放在這段後面 可以把這段料清除
這樣噴嘴可以用最乾淨的方法進行列印

G12可以直接執行 
這樣會用預設的模式進行清潔(直線往返擦拭)
一般使用下很夠了
另外可以下額外的指令
註解理有說明如下
G12 P1 S1 T3
大約講解如下
P0/P1: 移動模示 P0是直線 P1是有點像鋸齒狀的移動
Sxx:來回幾次 S1=一次
Txx:幾個鋸齒 T3=三個鋸齒

留言

  1. 請問如果是DELTA機器,但不知道韌體裡面寫了那些功能,是否可以從原有硬體將既有的硬體內的韌體導出來成檔案來改寫參數?

    回覆刪除
    回覆
    1. 一般來說是不行的
      這種參數編譯後除非你有反組譯的技術
      不然無法讀取

      刪除

張貼留言

這個網誌中的熱門文章

從Marlin設定看3D列印機 - Configuration.h 基礎篇

如何簡單判定步進馬達的線組

自動調平的迷思 從Repetier G32/G33看平台自動校正