目的
3Dプリンターを朝起動して、でかけている間に印刷したいですよね。
ただ、朝一番は音的に良くないかなと心配になります。
そこで、起動後一定時間あとに印刷開始するように設定する方法を説明します。
条件
Cureなどでg-codeを生成して実行していること
やり方と仕組み
g-code内のG4コマンド(ドウェル:一定時間待機)をg-code中に挟む。
中華系3Dプリンターによく使われるMarlinというfirmwareの場合は
G4 P10
は10ms待機
G4 S100
は100s待機
を意味します。
g-codeについて
g-codeは工作機械などNC装置(数値制御装置)一般で昔から使われているプログラミング言語です。
g-codeの
- G~に関してはNC装置全体で一般化された内容
- M~に関しては3dプリンター・NCフライス盤など機種ごとに自由に設定できるコードです。
ちなみに、g-codeは現行のマシニングセンターや生産設備で普通に使われています。
可読性はゴミofゴミですが、これが一般的です。ゴミポイントを上げると
- 変数名が#1~#300 みたいな番号式
- インデントなし
- 関数名(サブプログラム)も番号式
という感じでアセンブラに近いです。
どこにG4を入れるか
とりあえず、Cureで生成したg-codeの先頭の意味を調べましょう。
以下は生成したg-codeの先頭部分です。
M140 S50 //ベッド温度50度
M105 //ホストに温度センサの値を返す
M190 S50 //ベッドが50度になるまでまつ
M104 S220 //プリンタノズル温度220度
M105 //ホストに温度センサの値を返す
M109 S220 //ホットエンドの温度が220度まで待つ
M82 ;absolute extrusion mode
G28 ;Home
G1 Z15.0 F6000 ;Move the platform down 15mm
;Prime the extruder
G92 E0 //現在のエクストルーダーの位置を0とする
G1 F200 E3 //エクストルーダーを3mm出す
G92 E0
G92 E0
G92 E0
G1 F1500 E-6.5
;LAYER_COUNT:49
;LAYER:0
M107 //プリンタ fan off (1層のみ)
G0 F3600 X63.083 Y64.122 Z0.3
;TYPE:SKIRT
・
・
・
一番最初に、温度設定をしているので、一番先頭にG4を入れればいいということですね。
G4 S7200
;FLAVOR:Marlin
;TIME:8849
;Filament used: 5.30532m
;Layer height: 0.2
;MINX:55.875
;MINY:55.875
;MINZ:0.3
;MAXX:164.125
;MAXY:164.125
;MAXZ:9.9
;Generated with Cura_SteamEngine 4.7.1
M140 S50
M105
M190 S50
M104 S220
・
・
・
こんな感じ
検証
5年前ぐらい前に買ったALUNARの3Dプリンターで試したところ、無事印刷開始を遅らせることができました。