Blenderで3Dプリントケースを作成する

# 0. はじめに
　3Dプリンター用のモデルの作成には、**Fusion360**の無料版がよく使われますが、販売目的に利用する場合は[スタートアップ企業向けライセンス](https://www.autodesk.co.jp/support/technical/article/caas/sfdcarticles/sfdcarticles/JPN/How-to-activate-start-up-or-educational-licensing-for-Fusion-360.html)を登録しなくてはなりません。そこで、貧者の必携ツール～ただし癖が強くて初心者泣かせの**Blender**で、3Dプリントケースを作成する手順を紹介します。(Blender 3.6)
![JSB01_caseR31s.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/9cc6054d-4d8f-523d-09c2-56c1f30b2a0f.jpeg)

:::note warn
この画像は、著者が[JLCPCB](https://3d.jlcpcb.com/)へ発注した3Dプリントケースです。本記事で作成するケースではありません。
:::
## 目次
[0.はじめに](#0-はじめに)
[1.準備](#1-準備)
[2.箱の作成](#2-箱の作成)
[3.原点の変更](#3-原点の変更)
[4.穴を開ける](#4-穴を開ける)
[5.縁を丸める](#5-縁を丸める)
[6.STL出力](#6-STL出力)
[7.オブジェクトの結合★](#7-オブジェクトの結合)
[8.オブジェクトの変形★](#8-オブジェクトの変形)
　(★ 少し高度なTips)

# 1. 準備
![blender3dp_1_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/d77ec7ea-1db3-04ea-6e0d-b1bc21eaa5b4.png)
　1. 画面右下の**プロパティ・パネル**で、単位をミリに変更します。

![blender3dp_1_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/7229f93e-b284-a0eb-98b5-f61471e70841.png)
　2. 右上の赤丸の部分をクリックするか、[**N**]キーを押して、**プロパティ・シェルフ**を開いておきます。

![blender3dp_1_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/f1455d38-5675-4fe9-0b1c-3dffa6235291.png)
　3. メニューの[**Edit**]-[**Preferences**]で**Preferences**ダイアログを開き、[**Add-ons**]を選択したあと、検索文字列で「bool」と打ち込んで**Bool Tool**をチェックします。(参考→[Bool Toolの使用方法](https://reflectorange.net/archives/115.html))

![blender3dp_1_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/8109e89d-e550-249b-610e-9a3130b02aad.png)
　4. さらに、「stl」と打ち込んで、**Import-Export STL format**をチェックします。

# 2. 箱の作成
![blender3dp_2_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/08734e60-3d97-dd85-1917-375f8dc0f472.png)
　まずは、このような内側がくり抜かれた箱を作ります。板を結合させても作れないことはないのですが、経験的にはオブジェクトの結合は問題を生じやすく、ブール演算でくり抜いた方が安定して処理できます。

![blender3dp_2_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/b0cc5151-b407-f786-d57f-493963408421.png)
　メニューの[**Add**]-[**Mesh**]-[**Cube**]で立方体を追加します。
 
![blender3dp_2_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/19cf5116-13ea-1d25-e2d0-2c014a8f9d82.png)
　X,Y,Zのサイズを入力します。

　さて、ここから箱の内側をくり抜きます。
![blender3dp_2_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/ddbd62de-1be1-921e-52f7-e21a117de2b0.png)
　右上にあるX,Y,Zの座標をクリックすると、オブジェクトが正面から表示され、目盛りも表示されて見やすくなります。
 
![blender3dp_2_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/7cbaf87c-761e-271b-f992-05d6ad72e503.png)
　箱を選択し、右ボタンメニューから[**Duplicate Objects**]をクリックして複製します。マウスを動かすと位置がずれてしまうので、[**Esc**]キーで抜けてください。この時、[**X**],[**Y**],[**Z**]キーを押すと、その軸で移動できます。

![blender3dp_2_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/3f43e573-108d-7825-e135-18cfd2e5ed92.png)
　壁の厚みは2mmとします。複製した、くり抜き用のキューブのX,Yのサイズを両側で計4mm縮めます。
 
![blender3dp_2_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/dd36d087-cc03-4060-486c-a8b3ce306a34.png)
　さらに、Z軸で上に2mm移動します。重要なポイントとして、くり抜く場合はオリジナルのオブジェクトより少し出っぱっていないと、正しく抜けません。

![blender3dp_2_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/2b7b2a7e-c45c-1609-a76b-9244c4760579.png)
　[**Shift**]を押しながら内側、外側の順でキューブをクリックして複数選択し、**プロパティ・シェルフ**の[**Edit**]タブを選択し、[**Difference**]をクリックしてくり抜きば完成です。**Boot Tool**でくり抜くと、くり抜きに使われたオブジェクトは削除されます。

# 3. 原点の変更
　本題から少しそれますが、オブジェクトの**原点**の変更方法を説明しておきます。原点はオレンジ色の点で、通常はオブジェクトの中心にあります。この箱のような場合は、箱の底が原点の方が何かと便利です。
 
![blender3dp_3_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/a6041d8c-5f97-111a-c103-0d5c3bb63329.png)
　まず、Z軸で10mm(箱の高さの半分)上に移動します。

![blender3dp_3_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/5c1b0485-442c-9be8-dc60-de4a8dff6766.png)
　座標の原点(0,0,0)に赤白の丸がありますが、これが**3Dカーソル**です。**プロパティ・シェルフ**の[**View**]タブを選ぶと、3Dカーソルの座標を変更できます。
 
![blender3dp_3_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/32ea32f3-33a4-2f5c-9516-1d7848a2cb4d.png)
　メニューの[**Object**]-[**Set Origin**]-[**Origin to 3D Cursor**]をクリックすると、現在の3Dカーソルの位置がオブジェクトの原点になります。
 
![blender3dp_3_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/61b42866-e856-233e-7d95-830f87b11f05.png)
　オレンジの点が3Dカーソルと重なり、[**Item**]タブを開くとZ座標が0に戻っています。

# 4. 穴を開ける
　箱の側面に丸い穴を開けてみます。ここでは**Booleanモディファイア**を使います。
 
![blender3dp_4_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/f4e5ad3e-e868-74ee-556c-9bdf4b986af4.png)
　メニューの[**Add**]-[**Mesh**]-[**Cylinder**]で円筒を追加し、左下の[>**Add Cylinder**]をクリックすると、頂点数やサイズを指定できます。
![blender3dp_4_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/f3a689f2-ba7a-85a5-2f1b-e6748ae9b474.png)
　半径5mm、長さ10mmにします。

![blender3dp_4_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/382f5033-b7a8-69d2-8d1f-82fe078564f2.png)
　原点に円筒が追加されました。
 
![blender3dp_4_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/143d7fe5-a20a-098b-0688-fb02bb2cb167.png)
　次に、円筒をY軸で90度回転し、箱を切り抜く位置へ移動します。

　いよいよ**Booleanモディファイア**の出番です。
 
![blender3dp_4_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/193768d3-66a1-a037-4f87-d2d3f915e647.png)
　箱をクリックして選択した後、画面右下の**プロパティ・パネル**のスパナのアイコンをクリックします。
 
![blender3dp_4_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/4e60be3c-7ca7-3c57-f1e1-450e41d06a73.png)
　[**Add Modifier**]をクリックして、**Booleanモディファイア**を選択します。
 
![blender3dp_4_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/49de3817-7e14-97c0-9178-adfc6b22ba2c.png)
　[**Object**]をクリックし、Cylinderを選択すれば完了です。
 
![blender3dp_4_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/21af55f8-f14c-7f8c-5393-7f218e1e8709.png)
　右上の**Scene Collection**で、Cylinderの目のアイコンをクリックして非表示にすると、穴が開いていることが分かります。なお、下の赤い四角のメニューをクリックして[**Apply**]を選択するとモディファイアが適用されますが、Applyする必要は最後までありません。穴の位置やサイズは後から変更する場合が多いので、このままで良いです。**STL**出力時に自動的に適用されます。

 # 5. 縁を丸める
　**Bevelモディファイア**を使って角や縁をなめらかに丸めます。が、その前に大事な修正があります。

![blender3dp_5_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/1a722987-3ee2-8288-91af-3c32316d092a.png)
　箱をクリックして選択し、**プロパティ・シェルフ**の**Scale**を見てください。追加した時点で2m四方だった立方体のサイズを変更したため、スケールが小さくなっています。このまま**ベベル**をかけても変化が小さすぎて分かりません。
 
![blender3dp_5_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/cff10e34-f656-bdf6-6f79-909d7bef9b8e.png)　![blender3dp_5_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/627e9a2d-5dd5-f92d-87fb-4c80ec21127a.png)
　メニューの[**Object**]-[**Apply**]-[**Scale**]をクリックして、スケールを1.0にします。
 
![blender3dp_5_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/c6fef104-e237-518c-f146-eeed026e6bae.png)
　画面右下の**プロパティ・パネル**で[**Add Modifier**]をクリックして、**Bevelモディファイア**を選択します。
 
![blender3dp_5_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/3a3bec8c-6eaf-d8db-a53a-2a340f4818fe.png)
　[**Width Type**]は**Offset**のままで構いません。(詳しい意味は[こちら](https://docs.blender.org/manual/ja/dev/modeling/modifiers/generate/bevel.html)を参照) [**Amount**]と[**Segments**]を設定すると、箱の縁が丸くなります。ただしこれでは全ての縁が丸くなってしまいます。そこで、[**Limit Method**]を**Weight**に変更してください。

　ここで初めて、Blenderのキモ、**Object**モードから**Edit**モードへ切り替えます！箱が選択されていることを確認し、[**Tab**]キーを押してください。
![blender3dp_5_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/4e5138a2-11b8-8ad1-c89e-6a6c3937367e.png)
　画面左上に**Edit Mode**と表示され、その右に３つのアイコンが並んでいます。それぞれ、頂点(**Vertex**)、辺(**Edge**)、面(**Face**)を選択できます。ここでは真ん中の[**辺**]をクリックします。丸めたい辺を選択し([**Shift**]キーを押しながら複数選択できます)、**Mean Bevel**に1を入力すると、選択した辺が丸くなります。もう一度[**Tab**]キーを押せば**Object**モードへ戻ります。
 
![blender3dp_5_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/59ea3cdb-265f-e098-321d-296a5773b74e.png)

　最後に１つ注意点があります。モディファイアには通常、複数の**Booleanモディファイア**が追加されますが、**Bevelモディファイア**は必ず先頭へもってきてください。**Boolean**のあとに**Bevel**を置くと、正常にベベルがかからない場合があります。右端を掴めばドラッグして移動できます。
![blender3dp_5_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/42a4b800-4490-df21-b2a6-3c8e70a2165a.png)　![blender3dp_5_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/8e1cd27c-b213-0c63-403a-14d633ea87ed.png)

# 6. STL出力
　ここでいったんSTL出力してみます。
 
![blender3dp_6_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/c76afb03-ab0c-3dfe-1813-432a83289cd9.png)
　箱を選択したあと、[**File**]-[**Export**]-[**Stl**]でファイル出力ダイアログを開きます。
 
![blender3dp_6_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/719a53e4-9a78-f503-20a3-98c5bed56c34.png)
　[**Selection Only**]をチェックして、出力先とファイル名を指定しExportします。
 
![blender3dp_6_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/afac161b-78e8-8eb6-8c78-0f6f8e106e3c.png)
　STLファイルは、Windows付属の**3Dビューアー**で表示できます。

 # 7. オブジェクトの結合
　２つのオブジェクトを結合する方法はいくつかありますが、注意点があります。
 
![blender3dp_7_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/01db6a70-d108-14c7-c29a-e81fd308d4f3.png)
　適当に２つのオブジェクトを追加し、面が接する位置へ移動したあと、[**Shift**]キーを押しながら両方を選択します。
 
![blender3dp_7_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/85bc01e6-39eb-2ec7-1139-4d82504a6013.png)
　[**Ctrl**]+[**J**]を押せば、２つのオブジェクトが結合して１つになります。
 
![blender3dp_7_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/8bda4ee0-aa90-adca-8646-dc099ecb249b.png)
　[**Tab**]キーを押して**Edit**モードに切り替え、**面**の選択アイコンをクリックして適当な面を選択し、[**Del**]キーで面(Face)を削除します。
 
![blender3dp_7_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/030e802a-f483-ac98-05e7-c3a5f7bfc18c.png)
　底の面が見えるので、選択して削除します。
 
![blender3dp_7_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/2552568a-069d-dcad-8328-e6d1379dda44.png)
　下のキューブの面が現れました。どういうことかと言うと、接している面が重複して残っていたわけです。これは3Dプリント時に問題になります。[**Ctrl**]+[**Z**]を何回か押して、結合する前の状態に戻してください。
 
![blender3dp_7_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/985c9bee-fa89-f45c-662d-52d323a9d863.png)
　今度は、プロパティ・シェルフの[**Edit**]タブを選択し、[**Union**]をクリックして結合します。
 
![blender3dp_7_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/c740f274-845f-d80f-992e-2d1c7b913f90.png)
　同じように**Edit**モードで面を１つ削除してください。内部に重複した面が無く、底まで見えます。このように、重なる面のあるオブジェクトは、必ず**Bool Tool**で結合してください。(離れているオブジェクトは[**Ctrl**]+[**J**]で構いません)

 # 8. オブジェクトの変形
　**Edit**モードを利用して、オブジェクトを簡単に変形する方法を紹介します。

![blender3dp_8_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/98912ddb-4713-586c-19ef-401edc89f145.png)
　このような斜めの面は、Cubeを回転させて**Bool Tool**でくり抜いても作れないことはないですが、もっと簡単な方法があります。
　まずは、80mm×40mmx8mmの**Cube**を追加します。**3.原点の変更**の手順どおり、4mm上に移動して底に原点を変更しておきます。

![blender3dp_8_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/53021295-bc39-cb33-fc4c-6a53e0596834.png)
　**Edit**モードに切り替え、**辺**の選択アイコンをクリックして、[**Shift**]キーを押しながら上の２つの辺を選択したあと、右ボタンメニューで[**Subdivide**]をクリックします。

![blender3dp_8_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/ed36ef5b-75d1-3086-77c9-f9fb70a889c7.png)
　分割する数を指定できますが、ここは１のままで。それぞれの辺の中央に頂点が出来て、２つに分割されます。

![blender3dp_8_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/f50d5d5f-3eec-f900-c61f-891e69bf1941.png)
　同様に、奥の２つの辺を選択して、**Subdivide**で分割します。

![blender3dp_8_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3615384/cdbe6c7e-dd5d-b7dc-4b1c-e5bbcc3efe97.png)
　画像の２つの辺を選択すると、**プロパティ・シェルフ**の**Z**座標が[**8mm**]と出るはずです。(**Local**になっている場合は**Global**を選択してください)　これを[**12mm**]に変更すると、選択した２つの辺が持ち上がります。これで変形できました。**Edit**モードで頂点を追加・移動して変形する方法は、くり抜きや結合するより問題を生じにくいのでお勧めです。