DreamerDreamのブログ

夢想家の夢です。〜揚げたてのモヤっとしたものをラフレシアと共に〜

3Dプリンターの原理 ②命令の書き方

前回は3Dプリンターの動き方、動かし方を説明しました。

dreamerdream.hateblo.jp

 

今回は「では、3Dプリンターへどうやって命令しているのか?」

をまとめてみます。

 

たとえば、計算機で「11+2ー3+15=」という計算をさせる場合、計算機に

  1. 「11」
  2. 「+」
  3. 「2」
  4. 「ー」
  5. 「3」
  6. 「+」
  7. 「15」
  8. 「=」

と順番にボタンを押しますよね?

これは一種の「プログラム」です。プログラムとは、機械に指示を与える「指示書」のことです。

3Dプリンターへの命令もまた「プログラム(指示書)」を書きます。

 

実際には「Gコード」という命令書を作ります。

命令が日本語では無いので難しく見えるのですが、原理が解れば簡単です。

Gコードは命令書の中で「G」から始まるプログラムを書く事が多いです。

 

<参考>3Dプリンタ用ではないですが、例として見やすいので↓

FANUC Series 0 Gコード一覧| NCプログラム基礎知識

参考先はNCプログラムですが、3Dプリンターも「工作機械」という製造マシンの一種ですので同じようなコードで動いています。

 

このように「G」に続く数字で何を命令するか?が決まっています。

例)

G28

という命令を送ると3DプリンターのヘッドはX(左右)方向の座標0、Y(前後)方向の座標0、Z(上下)方向の座標0、の「原点」という位置に戻ります。

f:id:DreamerDream:20190508102649p:plain

 

G0は移動する命令です

例)

G0 X50

とすると、X(左右)座標50mmの位置にヘッドは移動します。

f:id:DreamerDream:20190508103220p:plain

 

上では2種類の例を挙げましたが、他にもGコードは色々な種類があります、このようにGコードを使うことで3Dプリンターへ「どこへヘッドを移動させたらいいか」や「どのぐらいの速度で動かすのか」「温度はどのぐらい」などなどいろいろな命令を出して3Dプリンタを制御することができます。

 

実際の3DプリンターのGコードの一部を見てみましょう。

例)

M107
M104 S190 
G28
G1 Z5 F5000
M140 S60
M190 S60
M109 S190
G21
G90
M82
G92 E0
G1 Z0.170 F3000.000
G1 E-2.00000 F2400.00000
G92 E0
G1 X74.659 Y50.355 F3000.000
G1 E2.00000 F2400.00000
G1 X77.008 Y47.171 E2.08489 F1800.000
G1 X77.925 Y46.072 E2.11559
G1 X80.655 Y43.207 E2.20047
G1 X81.702 Y42.232 E2.23117
G1 X84.770 Y39.732 E2.31606
G1 X85.930 Y38.896 E2.34675
G1 X89.287 Y36.800 E2.43164
G1 X90.545 Y36.115 E2.46237
G1 X94.137 Y34.458 E2.54723
G1 X95.469 Y33.936 E2.57793
G1 X99.242 Y32.741 E2.66281
G1 X100.629 Y32.390 E2.69351
G1 X104.521 Y31.678 E2.77840
G1 X105.942 Y31.504 E2.80909
G1 X109.893 Y31.285 E2.89398
G1 X111.104 Y31.287 E2.91996
G1 X111.546 Y31.300 E2.92946 F1800.000
G1 X115.271 Y31.568 E3.00957
G1 X116.910 Y31.790 E3.04504
G1 X120.571 Y32.523 E3.12515
G1 X121.744 Y32.827 E3.15113

Gだけでなく、Mという文字も出て来ました。「Mコード」と呼ばれますが、これもGコードと同じように3Dプリンターに命令する記号です。あまり気にせず「同じ物」と考えておいても良いでしょう。

また、3Dプリンターは書かれたGコードを上から順番に正確に実行します。

3Dプリンターが勝手に「このGコード嫌いだから飛ばして先にこっち!」なんてことはしません。

ですので正確なGコードを書く必用があります。

 

しかし、上の例のような数字の羅列を書くとなるととんでもない作業ですよね?

実際には何千行にも何万行になるものです。

 

そこで、「難しいGコードは機械に作らせちゃえばいいよね?」

ということで「スライサーソフト」が誕生しました。

 

スライサーソフトは、デザインした3Dの物体を水平に薄くスライスして、物体の中なのか?外なのか?を判断します。

 

3Dモデルの物体があると、

f:id:DreamerDream:20190510093126p:plain

スライスするための平面を物体に被るように作ります。(下図の場合は5段)

f:id:DreamerDream:20190510093151p:plain

物体を分けられた平面と同じ高さで切って、

f:id:DreamerDream:20190510093310p:plain

分けると、5つの物体になります。

f:id:DreamerDream:20190510093343p:plain

このスライスした物体の底面の情報を元に、スライサーソフトは材料を出力する位置を決めます。

物体の中であれば材料を出力します。

つまり、3Dの物体を2Dに置き換えているのです。

 

 

このとき、物体のスライスする量(スライス数)が多いほど細かな物体になり、少なければおおざっぱな物体になります。

これを3Dプリンターでは積層ピッチと呼びます。

 

上の5層の物体を実際に3Dプリンターで出力する場合、このように下から1層目〜5層目まで順番に出力されます。

f:id:DreamerDream:20190510094333p:plain

 

重ねると、このような物体が出来ます。

f:id:DreamerDream:20190510095001p:plain

元になった3Dモデルと比べると全然違いますよね?

f:id:DreamerDream:20190510093126p:plain

これはスライスする量が少ないからです。

もっと細かくスライスするとより綺麗な物体になりますが、やはり全く同じ物体にはなりません。

 

f:id:DreamerDream:20190510100747p:plain

このスライスの細かさ(層の薄さ=積層ピッチ)は3Dプリンター用のデザインをする上でも重要になりますので覚えておきましょう。

実際には0.2mmや0.05mmといったmm単位で設定されるものが多いようです。

積層ピッチを0.05mmに設定した場合は0.1mmの設定したものより再現度は高いですが、単純に時間は2倍になります。

 

 

 スライサーソフトは無料のもの、有料のものいろいろありますが、無料のものでは

Slic3r、Cura、Kissliser、などがあります。

過去記事ではSlic3rの使い方をまとめています↓

dreamerdream.hateblo.jp

 

 

3Dプリンターへの命令はGコード。頑張って書こうと思えば書けるだろうけど、自力で書くのは非常に難しいから是非スライサーソフトで作りましょう。

 

以上で「3Dプリンターの原理」のお話は以上です。

 

スライサーソフトへ読み込ませる3Dデータはどうやって作るのか? 

ということは過去記事を参考にしてください↓

dreamerdream.hateblo.jp

3Dモデルは人が作って公開しているデータもありますし、自分で作る事も出来ます。

dreamerdream.hateblo.jp

 

 では共に楽しい3Dプリンタライフを送りましょう。

dreamerdream.hateblo.jp

 

kampa.me