ABSでスマホスタンドを自作する

今回やること

スマホスタンドをモデリングして3Dプリンタで印刷します。材料はABS樹脂を使います。ABSは魅力的な機能性を持った材料ですが、印刷するのが難しいという難点があります。今回の挑戦ではこの難点を克服してABSで自由に印刷できるようになるコツを掴めたらいいなというのが、ねらいです。

まあ、100%完璧に印刷できたとはいかなかったんですが、、、(苦笑)
失敗の過程も楽しんでいただけたらなと思います。

どうして、ABSなのか?

それは、「基板の発熱や、落下に強い、筐体が作れる」からです。家庭用3Dプリンタ(FDM)で一般に使用される(樹脂)材料はおおよそPLAかABSです。そして、ABSはPLAに比べると耐熱性、耐衝撃性に優れています。耐熱温度はPLAは60℃付近ですが、ABSは100℃付近です。また、衝撃耐性は4倍程あるようです。ただ、PLAもプリントしやすく、常温であれば強度も十分です、使い分けが重要ですね。

3Dモデル作成!さあ、印刷!

という訳で、簡単なスマホスタンドをモデリングしてみました。1パーツで80×100×100(mm)程の大きさです。これを3Dプリンタで印刷していきます。

f:id:Nao6165:20220101183129p:plain


失敗

で、何も考えず、普段通りに印刷を実行したところ、無残な姿になってしまいました(T_T)

印刷物が積層面に沿って割れています。割れていないところにも”ひび”が入っていたり、”もじゃもじゃ”が入っていたりと、材料がうまく積層できていない感じがします。
やはり、ABSはPLAで印刷するより難しいッ!

f:id:Nao6165:20220101174335p:plain

原因

印刷物が割れた原因を調べたのですが、どうやらABSのある特性が大きく関係しているようです。それは、熱収縮性です。熱収縮性とは熱を加えることによって物体が収縮する性質のことです。材料は熱せられてその温度がガラス転移点を超えると溶けて自由に形状が変化します。そして、冷えて温度がガラス転移点を下回ると固まります。この時に十分熱収縮できずに固まると、印刷物内部に縮もうとする力と既に冷え固まって動かない部分の間で応力が残ります。これが積み重なって、反り方向に大きな力が生まれ、積層面に沿って亀裂が入り、さらには、割れてしまいます。

f:id:Nao6165:20220102120342p:plain

そして、今回の場合は反り返った部分とノズルが接触して、造形物が壊れてしまったようです。なので、次のような対策を行いました。

対策①ーファンを止める

PLAで印刷するときは無意識で冷却ファンをオンにしていました。冷却ファンは溶けた材料が垂れるのを防ぐためのものですが、上記の原因考察を踏まえ、オフにすることにしました。溶けたABSがゆっくり冷え固まることで熱収縮による反りの力を和らげる効果を期待できます。

ということで、冷却ファンを止めてリベンジです。

リベンジ!

おおっ!きれいにできてるー。

f:id:Nao6165:20220101173819p:plain

と思ったら、まだ、ヒビが入ってますねー。対策が足りないようです。

f:id:Nao6165:20220101181945p:plain

対策②ー3Dモデルを分割する

さらに、上記の”ひび”を無くすため、今度は1つの3Dモデルをいくつかのパーツに分解しました。平らなパーツをプラットフォームに寝かせて印刷するので、積層部分とそうでない部分の温度差が小さくなり、熱収縮中に冷え固まって発生する内部応力を更に和らげることができるはずです。

f:id:Nao6165:20220102122040p:plain

 

再リベンジ

という訳で、印刷してみました。

f:id:Nao6165:20220219113907j:plain

何とか印刷はできました。が、問題も残ってしまいました(汗)。

  • 寝かせて印刷すると、テーブルに接している面が荒れる。
    平べったいせいか、剥がすとき材料がテーブルにこびり付いてしまいました。
  • 立てて印刷すると、やっぱり、ひびが入る。
    面が荒れるののを嫌って立てて印刷してみました。パーツに分けても、やはり、縦に印刷すると”ひび”が入ってしまいました(T_T)。
  • パーツに分けると、寸法の微調整が必要。
    寸法精度や熱収縮の関係で、ヤスリで材料を削らないと嵌らない部分ができてしまいました。

f:id:Nao6165:20220220123511j:plain  f:id:Nao6165:20220220123542j:plain


まあ、部品に分けると、こんな点は良かったんですけどね。

  • 小分けに印刷できるので印刷時間の調整がしやすい。
  • 改造(再利用)がしやすい。

まとめ

ABSで上手く印刷するコツを挙げてみると、こんな感じでしょうか。

  • 熱収縮による応力を逃がすため、印刷物はゆっくり冷ます。
    高熱で溶けた材料が急激に冷え固まると、収縮しきれずに応力が残留して反りや割れにつながります。上手に温度調節をしましょう。
  • 反りの発生しにくい印刷形状で印刷する。
    小さくて、丈の低い物の方が、印刷中の印刷物内の温度差が発生しにくいです。熱収縮による割れのリスクが下がります。

自分は実践していませんでしたが、このような対策もあるようです。

  • 反りの小さい材料を使用する。
  • 印刷速度を下げる。

今回は何とかスマホスタンドを作ることはできましたが、印刷の仕上がりに課題が残ってしまいました。これにめげずに、また、もっと上手く何か作りたいと思います。

では、また、会いましょう!

参考

 

プログラムで作る3Dモデル

今回やること。

今回は、
プログラミングで卓上ゴミ箱を作る!
に挑戦しようと思います。

今まで私は3Dプリント用のデータをfusion360のようなマウスで線を引くタイプの3DCADで作成していましたが、今回はプログラミングでデータを作成して、3Dプリントしたいと思います。

ねらい

今回の取り組みで私が確認したかったことは、以下の通りです。

  • 簡単かつ効率的にモデリング可能か?
    関数やループを利用して、感覚的な作業や面倒な繰り返し作業を省きたい。
  • 3D_CADデータを資産化できないか?
    作って終わりではなく、過去のソースを再利用して、手軽かつスピーディーに新しい物を作りたい。
  • どんな感じ?
    その他、メリットや新たな発見を得て、視野を広げたい。

こんなのを作ります。

以下のような、シンプルな卓上ゴミ箱です。

本体部

f:id:Nao6165:20211016002214p:plain

蓋部

f:id:Nao6165:20211016002249p:plain

開発環境

手順

ざっくりと言うと、次の手順で作っていきます。以下でもう少し詳しく説明します。

  1. Solid Pythonでコーディング
  2. OpenSCAD用モデル生成コード出力
  3. OpenSCADにてstlファイル作成
  4. 3Dプリンタで印刷

1. Solid Pythonでコーディング

3Dモデル出力するためのソースコードを、Pythonの文法に従って、プログラミングしていきます。私はインターフェース2021年10月号を参考にしましたが、SolidPythonの文法については次のリンクが参考になります。

Welcome to SolidPython’s documentation! — SolidPython 0.1.2 documentation

VisualStudioCodeでもりもり書いていき、

f:id:Nao6165:20211017114254p:plain

Git/GitHubで管理します。バックアップを行方不明にせず、一瞬で簡単に過去のソースコードに戻れるので便利です。

f:id:Nao6165:20211017114504p:plain

f:id:Nao6165:20211017114916p:plain

今回使用したリポジトリのリンクになります。

GitHub - Nao6165/3D_Print_Data-MiniTrashCan: 3D Print data of a MniTrashCan

2. OpenSCAD用モデル生成コード出力

作成したソースコードをビルドして、OpenSCAD用の3Dモデル生成コードを出力します。

Google Colaboratoryにて、SolidPythonをインストールしてビルドを実行しました。

使い方は次のリンクが参考になります。

Google Colabの使い方 | Interface – CQ出版

Google Colaboratoryに新しいプロジェクトを作り、

!pip install SolidPython

でインストールして、作成したソースコードをコピペして実行するとOpenSCAD用の3Dモデル生成コードが出力されます。

f:id:Nao6165:20211024133400p:plain

3. OpenSCADにてstlファイル作成

自PCにてOpenSCADを開き、Google Colaboratoryにて出力されたコードをEditor画面にペーストします。Editorの1行目にfn=36;[1]を追加した上で、STLファイルを作成します。

[1]: OpenSCADが円弧を36分割して演算してくれ、カクカクな円弧が滑らかになります。数値を大きくするほど滑らかになりますが、演算に時間がかかります。 

f:id:Nao6165:20211017125748p:plain

4. 3Dプリンタで印刷

OpenSCADによって出力されたSTLデータを3Dプリンタで印刷します。

f:id:Nao6165:20211017171035j:plain

出来上がり!

f:id:Nao6165:20211017110602j:plain

ここまでやってみて

思ったことを、挙げていきます。

  • ソースコードから完成図(寸法・形)へのイメージが難しい。
  • 不規則で複雑な形状をモデリングするのは手間がかかる。
  • ソースコードをきれいに纏める手間が必要。
  • 一度、ソースコードをきれいに纏めてしまえば、何度でも再利用できる。
  • プログラミングに慣れれば、模様などの幾何学的な形状を簡単に作れる。
  • ソースコード(テキスト)なので、軽量かつGit使用可で、管理が楽。

まとめ

初心者(私)がモデリングする場合はコーディングが完成するまでが大変ですね。自分の頭の中に図面がないと作れませんし、プログラムの組み方も考えないといけません。

ですが、一旦、ソースコードをきれいに纏めてしまえば、資産として活用できます。後からパーツを付け足してバージョンアップしたり、関数や処理の一部を流用して別のものを作ったりと。また、SolidPythonやOpenSCADには便利な関数やライブラリが用意されているようなので、これらを活用できるのも良いと思います。

また、その他に思ったことは、幾何学的な形状を作る場合は便利ですが、フィギュアのような不規則で複雑な一点ものを作る場合には向かないことですね。言うまでもないことかもしれませんが (^-^;

利用シーンによりますが、使い方に慣れ、資産化することによって、効率的な開発を実現できるのではないかと思いました。

参考