i-Vinci TechBlog
株式会社i-Vinciの技術ブログ

3Dプリンターのススメ

みなさん、こんにちは!
DIY好き上杉です。
Creality社製「Ender 3」という3Dプリンターを買って、
日々試行錯誤を行なっているのでそのことを記事にしようと思います。


目次


Creality Ender 3とは

数ある3Dプリンターの中でも格安の部類に入るがシェアが高く、関連部品やカスタマイズ性も高いので入門にはもってこいの3Dプリンターです。
ender-3
画像は公式サイトより引用

特徴

  • 価格が安い、¥20,000~¥30,000ほどです。(Amazonのセールなどでもっと安くなることも・・・)
  • 骨組み構造なので追加部品を組み込むなどのカスタマイズがしやすいです。(男心をくすぐりますね)
  • FDM(熱溶解積層方式)です。
  • シェアが高く、情報量も多いです。

プリントの流れ

3Dプリンターで何かものを作ろうとした場合の大まかな流れを説明します。

  1. 3Dデータを用意する。
    • 3Dデータを用意するには主に2つの方法があります。
      1. 誰かが用意してくれたデータを使う
        • 3Dデータ共有のためのサイトが色々と出ています。
          自分はその中でもUltiMaker Thingiverseというサイトをよく使用しています。
      2. 自分で作る
        • fusion360などの3D CADを使い自分でデータを作ります。
          自分は上記の「UltiMaker Thingiverse」にデータがない場合は結構自作することが多いです。
  2. 3DデータをG-code(3Dプリンターが実際に動かす形式)に変換する
    • これも様々なソフトがありますが、自分はUltiMaker Curaというソフトを使用しています。
      プリセットでEnder 3の情報を取得することが出来て使い勝手もよく便利です。
      このあたりは調べれば別の記事がいっぱい出てくるので割愛します。
  3. 実機でプリントする
    • いよいよプリントです。
      Ender 3のデフォルトではSDカードにてG-codeを読み込むのでSDカードに2.で作成したG-codeを保存しておく必要があります。
      ※Raspberry Piを使用してローカルネット経由でデータを渡す方法もあるようです。今後挑戦したいです。

G-codeについて

プリントの流れで出てきたG-codeについて少しだけ解説します。(ちょっとだけエンジニアっぽいです)

G-codeとは

3DプリンターやNC工作機械などの内部設定を処理するためのコードです。
例として下記のような命令を出せます。

  • ヘッド(樹脂が実際に出てくるところ)を点Aから点Bへ動かす。
  • ヘッドの温度を160°Cに設定する。
  • 位置のリセット

実際のG-code

プリント用のコード全てをご紹介するとすごい量(少ないものでも2万行ほど)になってしまうため、プリント開始前に動く設定用のコードをご紹介します。

;FLAVOR:Marlin
;TIME:8101
;Filament used: 4.5456m
;Layer height: 0.2
;MINX:6.61
;MINY:90.693
;MINZ:0.2
;MAXX:64.914
;MAXY:144.293
;MAXZ:71
;POSTPROCESSED
;Generated with Cura_SteamEngine 4.12.1
M82 ;absolute extrusion mode
; Ender 3 Custom Start G-code
G28 ; Home all axes
G92 E0 ; Reset Extruder
M140 S60.0 ; Set Heat Bed temperature
M104 S150 ; Set Extruder temperature
G29 ; ABL
M117 Auto bed leveling ended
M104 S200.0 ; Set Extruder temperature
G1 X5 Y5 F5000 ;Wipe out
M190 S60.0 ; Wait for Heat Bed temperature
M109 S200.0 ; Wait for Extruder temperature
M117 Start printing
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish
G92 E0
G92 E0
G1 F2

これを説明するだけでも1記事書けるほどの情報量なので今回は詳しく説明しませんが、少しだけ・・・

プリントを始めるまでに時間がかかる準備をしないといけません。
代表的なものとして

  • ヘッド、ベッド(プリントされる土台)の温度設定
  • ベッドの高さ調整、ABL(Auto Bed Leveling)

があります。
時間を短縮するためには温度を上げてる間にABLを行うのがベターです。

樹脂には融解温度がありまして、主流のPLAは170°C~175°Cほどです。
その温度に達すると溶けてヘッドから出てきてしまうので、その手前まで温度を上げておいてABLが終わったら融解温度まで上げる必要があります。

G-codeにはif文は存在しませんので実現するために以下のような流れにする必要がありました。

M140 S60.0 ; Set Heat Bed temperature
M104 S150 ; Set Extruder temperature
G29 ; ABL
M117 Auto bed leveling ended
M104 S200.0 ; Set Extruder temperature
G1 X5 Y5 F5000 ;Wipe out
M190 S60.0 ; Wait for Heat Bed temperature
M109 S200.0 ; Wait for Extruder temperature

コメントアウトで説明をある程度していますが、

  • M140M104は温度設定です。ヘッドの温度を150°Cにして融解しないようにまずは設定しています。
    こちらは温度を上げつつ次の動作に進むことができる命令です。
  • G29 ABLを実施します。この命令はABLが完了するまで次の動作が実行されません。
  • M117 これはEnder 3のコンソールにメッセージを出すことが出来ます。今回はAuto bed leveling endedと表示しています。
  • 次のM104でヘッドの温度を200°Cに設定しています。
  • G1はヘッドをどの座標に動かすかです。今回の場合X5 Y5で初期位置(土台の左下)に移動させます。F5000はスピードです。
  • M190M109はそれぞれの温度が指定した数値に達するまで待つ命令です。

こんな感じで命令を組み上げていく必要があります。

G-codeのリファレンスもあるので興味がある方は見てみてください。

作品紹介

ここで恐縮ではありますが、自分が作ってきた物の中から最近のものを3つほどご紹介させて頂きたいです。

洗顔ボトルホルダー

お風呂場は極力浮かせる収納にしたい派なので、洗顔ボトルを浮かせるためのホルダーを作成しました。
fusion360を使用し作成しました。
4つの穴は100均で売っている磁石を入れ込む穴です。

  • 3Dデータ

    洗顔ホルダー

    • 実際の画像

    洗顔ホルダー

電池ホルダー

充電電池を頻繁に使っているので収納ボックスが欲しくなりました。
100均で買った収納ボックスの仕切りを自作しました。
これぞまさしくシンデレラフィット。我ながらいい出来だったと思います。

  • 3Dデータ

    電池ホルダー

  • 実際の画像

    電池ホルダー

電源タップホルダー

電源タップ用のホルダーです。
クランプは別で買ってあり、クランプに合わせて設計しました。
6角形の穴はプリントする体積を少なくするための工夫です。

  • 3Dデータ

    電源タップホルダー

  • 実際の画像

    電源タップホルダー
    電源タップホルダー

Ender 3のカスタマイズ

最後に自分の現状最強のEnder 3カスタマイズを紹介します。
Ender 3用のパーツをプリント出来ちゃうのも3Dプリンターのいいところです!
多分説明しても「なんのこっちゃ」になると思いますので画像のみの紹介とさせて頂きます。

my Ender 3
my Ender 3

最後に

お値段もそこそこでサクサクっと作れる3Dプリンターをご紹介しました。
これを見たあなたも3Dプリンターが欲しくなったのではないでしょうか。

今後は「2Dお絵描きツールを作成してG-code出力できるアプリを作る」などしてみたいと思っています!

3Dプリンターの他にも色々な面白ネタを発信して行こうと思うので今後ともご期待ください。