テーブル水平だし用ゲージ
最近G-Code ばかりで、Fusion360 ほとんど触っていませんね~。
よし、ここで作ったテーブル水平だし用のゲージを作ろう!
サンプルの20mm_Box はちょっと小さくつかみ辛いので、少し大きくして、突起もつけます
高さは、20mm として、さらに紙を上面に載せたいので、紙を固定できるようにサイドに紙を挟めるようにします
20mmの精度は、正方形の20mm_Box 印刷後に測定すると、X軸方向が20.1~20.2mm
Y軸方向は、ほぼ20mm。どうも私のプリンタはY軸のほうが精度がよさそうなので、
Y軸方向に、20mmのゲージ側を持っていくことにします
モデルはこんな感じ
印刷して、紙をセット
さぁ、作成した、G-code を実行して、やってみるけど、これでもつかみ辛いなぁ~
紙を挟む機構は、紙厚が0.1mmなので、二重にする事にして、0.3mmで設計。まあまあ・・・
ただ、20mm厚さでは低すぎる。手が入らない。さらに、せっかく付けた取っ手用の突起も小さくでぜんぜん意味がなかった。
もう少し、大きくしたほうが、よさそう。
でも、使えない事はなかったので、当分はこれで、水平だしをやっていきます
手打ちのG-codeでプリントしてみる Vol 2
とりあえず、手打ちのG-code でもプリントできたけど、
どうして、プリント上面があんなに凸凹になったのか?
たぶん、移動距離とフィレメントの押し出し量とスピードの関係が悪いのか?
家庭用とは、この程度なのか?
いろいろ考えていると、そっか!積層ピッチを0.1mmにしてた。
ピッチが小さいほうが、綺麗かな~ぐらいで、あまり考えずこれにしてた。
E指令の計算では、ノズル径φ0.4mmで計算してあるので、積層ピッチも0.2mmに
しなくては、いけないのかもしれない。修正してやってみよ。
・
・
G92 E0
M106
G1 Z0.40 F40
G1 X-30.00 Y30.00 E3.0 F800
G1 X-30.00 Y-30.00 E6.0
G1 X30.00 Y-30.00 E9.0
G1 X30.00 Y30.00 E12.0
;
G92 E0
G1 Z0.60 F40
G1 X-30.00 Y30.00 E3.0 F800
G1 X-30.00 Y-30.00 E6.0
G1 X30.00 Y-30.00 E9.0
G1 X30.00 Y30.00 E12.0
;
G92 E0
G1 Z0.80 F40
G1 X-30.00 Y30.00 E3.0 F800
G1 X-30.00 Y-30.00 E6.0
G1 X30.00 Y-30.00 E9.0
G1 X30.00 Y30.00 E12.0
・
・
すると、お~正解。上面も側面も結構綺麗。
厚みを測定してみると、約0.7mm ・・
う~ん、本当なら0.4mmになってほしかったけどね!
まぁ、前回より、ぜんぜんよくなった。
やっぱり、バランスは重要なのね~
それにしても、設定値でこれだけ変わるんだから、機械の動作精度はいいと思う。
他のプリンタでも、やってみたいね。
手打ちのG-codeでプリントしてみる
せっかく、G-code 編集できるようになったので、簡単な輪郭形状をプリントさせてみよう。
円柱が簡単でいいかな?
っと思って、G-code 書いてみたけど、PlashPrint は正常に描画しない。
う~ん、どうも、G2,G3 の円弧補間には対応していないみたいだねぇ。
しょうがないので、四角柱にしてみる
60×60×5mmの四角柱。
G-codeはこんな感じ
;start gcode
M118 X50.00 Y50.00 Z10.00 T0
M140 S0
M104 S210 T0
M107
G90
G28
M132 X Y Z A B
G1 Z50.00 F400
G161 X Y F3300
M6 T0
M907 X100 Y100 Z40 A80 B20
M108 T0
G1 X20.00 Y20.00 F1800
;preExtrude:0.20
G1 Z20.0 F400
G1 Z2.0 F100
G1 Z0.20 F40
;preExtruder:0.145L
G1 X-20.00 Y20.00 E6.0 F500
G1 X-20.00 Y-20.00 E12.0 F1000
G1 X20.00 Y-20.00 E18.0 F1000
G1 X20.00 Y20.00 E24.0 F1000
;
G92 E0.
G1 X30.00 Y30.00 E2.0 F1000
G1 X-30.00 Y30.00 E10.7
G1 X-30.00 Y-30.00 E19.4
G1 X30.00 Y-30.00 E28.1
G1 X30.00 Y30.00 E36.8
;start:0.05L
G92 E0
M106
G1 Z0.30 F40
G1 X-30.00 Y30.00 E3.0 F800
G1 X-30.00 Y-30.00 E6.0
G1 X30.00 Y-30.00 E9.0
G1 X30.00 Y30.00 E12.0
;
G92 E0
G1 Z0.40 F40
G1 X-30.00 Y30.00 E3.0 F800
G1 X-30.00 Y-30.00 E6.0
G1 X30.00 Y-30.00 E9.0
G1 X30.00 Y30.00 E12.0
;
・
・
;後はひたすら、Zを0.4~Z5.0まで変更して、コピーの連続
・
・
;
G92 E0
G1 Z5.00 F40
G1 X-30.00 Y30.00 E3.0 F800
G1 X-30.00 Y-30.00 E6.0
G1 X30.00 Y-30.00 E9.0
G1 X30.00 Y30.00 E12.0
;end
M107
G92 E0
G1 E-1.3 F1800
;end gcode
M104 S0 T0
G162 Z
G28 X Y
M132 X Y Z A B
G91
M18
終了。
FlashPrint にドロップすると、正常に描画されたので、プリント実行!
約10分。ちょっと、スピードが速いのか、後半すこし凸凹に動いてる
でも、とりあえず、正常にプリントできた
とりあえず、輪郭をぐるぐる積み上げただけ・・・
どれぐらいの、厚さになってるだろう?
ノギスで測ると、1.2mmぐらい
まぁ、こんなものなのかな??
やる人はあまりいないだろうけど、手打ちのG-code でプリントしてみました
3Dプリンターのテーブルの水平を確認するG-codeを作ってみた
E指令がだいたい分かったので、テーブルの水平を確認するプログラムを作ってみる
テーブルの8割ぐらいの外周から、フィレメントを出しながら
内側に3周するようなプログラム
均一にフィレメントが載れは、水平だしは、問題ないとします
私のFinder は、角140mmのテーブルなので、100mmの四角から内側に入るような
動きにしよう。
FlashPrint が吐き出すコードと同様に、最初の外周のみは、
通常の3倍程度フィレメントを多く出すことにします。
作成したG-codeはこんな感じ
;start gcode
M118 X50.00 Y50.00 Z10.00 T0
M140 S0
M104 S210 T0
M107
G90
G28
M132 X Y Z A B
G1 Z50.00 F400
G161 X Y F3300
M6 T0
M907 X100 Y100 Z40 A80 B20
M108 T0
G1 X40.00 Y40.00 F4800
;preExtrude:0.20
G1 Z20.0 F400
G1 Z2.0 F100
G1 Z0.20 F40
;preExtruder:0.145L
G1 X50.00 Y50.00 F1800
G1 X-50.00 Y50.00 E14.5 F1200
G1 X-50.00 Y-50.00 E29.0
G1 X50.00 Y-50.00 E43.5
G1 X50.00 Y50.00 E58.0
;start:0.05L
M106
G1 E56.7 F1800
G1 X40.0 Y40.0 F1800
G1 E58.0 F1800
G1 X-40.00 Y40.00 E62.0 F800
G1 X-40.00 Y-40.00 E66.0
G1 X40.00 Y-40.00 E70.0
G1 X40.00 Y40.00 E74.0
;0.05L
G1 E72.7 F1800
G1 X20.0 Y20.0 F1800
G1 E74.0 F1800
G1 X-20.00 Y20.00 E76.0 F600
G1 X-20.00 Y-20.00 E78.0
G1 X20.00 Y-20.00 E80.0
G1 X20.00 Y20.00 E82.0
;end
M107
G1 E80.7 F1800
;end gcode
M104 S0 T0
G162 Z
G28 X Y
M132 X Y Z A B
G91
M18
これを、FlashPrint にドロップすれば、思惑通りの動きがシミュレートされます
でも本当は最初はうまくいかなかった。
実は、G-code を入力するとき、各指令のワードをくっ付けていました
そうするFlashPrint はうまく読み込めないみたい。ワードはスペースで区切ったほうがいいみたい
早速プリント。
最初の外周は、フィレメント量も3倍なので、結構いい感じで進んでいます
内側に入ると、はがれてきた。
再度、内側だけスピードを落として
ちょっとZを下げて(Z0.2 ⇒ Z0.15)みたけどあまりかわらなかった
でも、まぁ、外周がこれだけ張り付いていれば、テーブルの水平はOKじゃないかなぁ
これで、ランニング運転用と、テーブル水平だし用と、テーブル確認用のプログラム完成
Finder は一度実行すると、本体側にプログラムは保存されているので
いつでも、実行できます。
3DプリンターGコードのE指令とは?
調べると、Eはフィラメントを押し出す長さを指令するアドレスみたい
そこで、FLASHFORGE Finder に同梱されている、
20mmブロックのサンプルコードのE指令の部分を抜粋して見てみると
・
・
・
;preExtrude:0.20
G1 Z.20 F400
;preExtruder0
G1 X-15.00 Y15.00 F4800
G1 X-15.00 Y-15.00 E4.3504 F1200
G1 X15.00 Y-15.00 E8.7009
G1 X15.00 Y15.00 E13.0513
G1 X-15.00 Y15.00 E17.4017
;raft
;layer:0.28
G1 Z.28 F400
;shell
M106
G1 E16.1017 F1800
G1 X-9.40 Y-9.40 F4200
G1 E17.4017 F1800
G1 X-9.40 Y-9.40 F4200
G1 X-8.40 Y-9.40 E17.4525 F1200
G1 X-7.40 Y-9.40 E17.5032
G1 X-6.40 Y-9.40 E17.5540
・
・
G1 X-9.40 Y-9.30 E25.1971 F300
;infill
G1 E23.8971 F1800
G1 X-9.03 Y-9.06 F4200
G1 E25.1971 F1800
G1 X-9.03 Y-9.06 F4200
G1 X-9.06 Y-9.03 E25.1992 F1200
G1 X-9.06 Y-8.47 E25.2276
・
・
・
どれくらい出しているのか?
まず、「preExtrude」部から計算すると
軸移動量 30mm で、E4.35mmの押し出し
1mmで換算すると、0.145mm
次に「shell」部
1mm -> 0.05mm
「infill」部
0.0424mm -> 0.0021mm
0.56mm -> 0.0284mm
1mmで換算すると、0.05mm
ここまでで考えると、通常の印刷では
1mm の移動量に対して、押し出しは 0.05mm
最初の押し出しは、通常印刷時の約3倍
1mm で、0.05mm の関係は?
フィレメントの素材径と印刷時の径から考えてみる
フィレメントφ1.75mmが0.05mm押し出された体積からみると
1mmの長さになる時の径は、約φ0.4mm
う~ん、これは、エクストルーダの穴径と同じ
そういう事なのかな?
そうだとすれば、
φ1.75のフィレメントでエクストルーダーの穴径φ0.4の場合
移動距離×0.05 でE指令の値が算出できそう!
後気がついたのは
・
G1 X-9.80 Y-9.70 E25.1875
G1 X-9.40 Y-9.30 E25.1971 F300
;infill
G1 E23.8971 F1800
G1 X-9.03 Y-9.06 F4200
G1 E25.1971 F1800
G1 X-9.03 Y-9.06 F4200
G1 X-9.06 Y-9.03 E25.1992 F1200
・
・
印刷しない場所を移動する時には
E23.8971 - E25.1971 = -1.3mm
1.3mmバックさせてるみたい
FLASHFORGE Finder テーブル水平だし用 G-code を作成してみた
テーブル水平だしG-code 、結局途中で一時停止する方法がわからなかったので
4個のプログラムを作成しました
1.左手前、ゲージ高さ20mmで停止するプログラム
2.右手前、ゲージ高さ20mmで停止するプログラム
3.中央奥、ゲージ高さ20mmで停止するプログラム
4.ホームポジションへもどるプログラム
この4個
1.で停止したら、20mmのゲージをノズルの下側へ持って行き、
調整ネジでノズル先端を合わせます
直接だと怖いので、紙を間にはさんで、左右に動かしながら、
若干あたりを感じる場所で調整
2,3も同様に調整ネジで調整し、4で終了
確認として、20mm_BOXを印刷してみました
最初から、ほとんど問題なさそうなので、強制終了しましたが、正常に印刷できてます
なんとなくですが、本体の半自動の水平だし機能よりも水平精度はよいように思えます
作成したG-code は下記
指定Z値は、挟む紙(厚さ0.1mm)を考慮して、Z20.1mmで設定
1.
;start gcode
M140 S0
M107
G90
G28
M132 X Y Z A B
;bigin data
G161 X Y F3300
G1 Z20.100 F400
;end data
M107
M104 S0 T0
M132 X Y Z A B
G91
M18
2.
;start gcode
M140 S0
M107
G90
G28
M132 X Y Z A B
;bigin data
G162 X F3300
G161 Y F3300
G1 Z20.100 F400
;end data
M107
M104 S0 T0
M132 X Y Z A B
G91
M18
3.
;start gcode
M140 S0
M107
G90
G28
M132 X Y Z A B
;bigin data
G01X0 F3300
G162 Y F3300
G1 Z20.100 F400
;end data
M107
M104 S0 T0
M132 X Y Z A B
G91
M18
4.
;start gcode
M140 S0
M107
G90
G28
M132 X Y Z A B
;bigin data
;end data
M107
M104 S0 T0
M132 X Y Z A B
G91
M18
FLASHFORGE Finder 水平だし用 G-code検討
Finder には水平だし機能があるから、あえて作る必要はないですが、先日作成したソフトを使ってセンサーを使わずに水平だしするようなG-code を試みてみました。
どんな風に動かしたいか・・・
1.ヘッドをテーブルの左手前まで移動させ、テーブルを任意の高さまであげる
たとえば、サンプルで作った20mmブロックをゲージとして使用する場合、
指令値はZ+20mm
2.ここで停止させ、20mmブロックに、調整ネジでヘッド先端を合わせる
3.次に、右手前まで、移動して停止
4.ここでも、20mmブロックに合わせる
5.X軸センター、Y軸一番奥へ移動して停止
6.同様に、20mmブロックに合わせる
7.ホームポジションにもどり終了
こんな感じの、G-code を作りたい
G-code 的には簡単なので、すぐにできると思っていたけど、途中で停止するコードがわからない
NCコードの場合は、停止は、M0かM1なので、それでやってみたけど、それを読むと、その場所で停止しないで、ホームポジションまでもどって停止する。
う~ん、これじゃ、20mmブロックにヘッドを調整する事ができないなぁ~
ネット調べると、M25 や M226 でもいけそうだったけど、これも同様に動き
M116 もやってみたけど、このコードでは、センサーが出てきた。
ダメかぁ~
一箇所、ごとに、3個のプログラムにしなければだめかなぁ?
今日は、眠い。ここまで・・・
もし、ご存知のかたいらっしゃったら、教えてください