- ソフト・サービス
- Blender
- Blenderのインポートとエクスポート
- BlenderのSTLの書き出し|3Dプリンターでの模型づくり
Blender
BlenderのSTLの書き出し|3Dプリンターでの模型づくり

BlenderのSTLの書き出し|3Dプリンターでの模型づくり
Blender(ブレンダー)で作ったモデルを3Dプリンターで模型にするときは、STL(エスティーエル)の形式で書き出します。STLには単位の情報が無く、Blenderの数値がそのまま書かれます。3Dプリンターのソフトは数値をmmとして読むことが多いので、「スケール」を1000にして、mmの数値で書き出します。書き出す前に、形に穴が無い(閉じている)かを3D Print Toolboxで調べます。
この記事の画面は、Blender 5.2 LTSです。形が閉じているかを調べる3D Print Toolboxは、Blenderに機能を足すエクステンションで、この記事の画面は1.4.1です。
STLは「ファイル」→「エクスポート」→「STL (.stl)」で書き出す
5.2の公式マニュアルによると、STLはCADのソフトとのやり取りに向き、3Dプリンターのソフトへの読み込みにもよく使われる形式です。書き出しは、「ファイル」→「エクスポート」→「STL (.stl)」から選びます。

「STL (.stl)」を選ぶと、保存先を選ぶ画面(ファイルブラウザー)が開きます。画面の右には、書き出しの設定が「全般」と「ジオメトリ」に分かれて並んでいます。表の中のモディファイアーは、形を変える機能で、サブディビジョンサーフェスはその1つです。

| まとまり | 設定 | 既定 | 中身(公式マニュアル) |
|---|---|---|---|
| 全般 | フォーマット:ASCII | オフ | オンでテキストの形式、オフでバイナリの形式で書き出す |
| 全般 | バッチ | オフ | オブジェクトごとに別のSTLのファイルに書き出す |
| 全般 | 内容:選択物のみ | オフ | 選択したオブジェクトだけを書き出す |
| 全般 | スケール | 1.000 | 書き出すときに掛ける倍率(下の節) |
| 全般 | シーンの単位 | オフ | シーンの単位の設定を当てはめる(下の節) |
| 全般 | 前方・上 | Y・Z | 軸の向きの変換。Blenderは前がY、上がZ |
| ジオメトリ | モディファイアーを適用 | オン | モディファイアーを計算したあとの形で書き出す |
| ジオメトリ | プロパティ | レンダー | 作業中の表示(ビューポート)と最終のレンダーで設定が違うモディファイアーの、どちらの設定を使うか |
建物の模型だけを書き出したいときは、模型のオブジェクトを選択し、「選択物のみ」をオンにします。オフのままでは、選択していないオブジェクトも書き出されます。
STLには単位が無く、Blenderの数値がそのまま書かれる
STLのファイルには、長さの単位の情報がありません。Wikipedia「STL (file format)」の説明は “STL files contain no scale information, and the units are arbitrary.” です。STLには縮尺の情報が無く、単位は決まっていない、という意味です。Blenderから書き出すと、Blenderの数値がそのままSTLに書かれます。
STLに書かれるのは、面の頂点の座標です。長さ2m(2m×1m×1m)の箱を、ほかは既定のまま「ASCII」をオンにして書き出すと、頂点の座標は-1と1で書かれ、長さは数値で2でした。受け取った3Dプリンターのソフトがこの数値をmmとして読むと、箱は2mmの大きさになります。

3Dプリンターのソフトはmmとして読むことが多いので「スケール」を1000にする
3D Print Toolboxの書き出しの設定「単位」の説明には、「ほとんどのスライサーはミリメートルを前提としています」とあります。スライサーは、STLを3Dプリンターが動く経路に切り分ける(スライスする)ソフトです。3D Print ToolboxがBlenderに同梱されていたBlender 4.1の公式マニュアルは、スライサーの例にCuraを挙げています。
Blenderの1m(1単位)をmmの数値で書き出すには、書き出しの画面の「スケール」を1000にします。長さ2mの箱は、「スケール」1000で頂点の座標が-1000と1000になり、長さは数値で2000になりました。

Blenderで実寸(1m=1単位)で作った建物を1/100の模型にするときは、「スケール」を10(1000×1/100)にします。幅12mの建物は、「スケール」10で「120」(120mm)と書かれる計算です。受け取るスライサーで大きさを確かめてから印刷します。スライサーの画面は、編集部では試していません。
「シーンの単位」は単位の倍率を掛ける設定
Blenderのシーンには、単位の設定があります。プロパティの「シーン」の「単位」にある「単位系」(なし・メートル法・英単位系)と「単位の倍率」です。書き出しの画面の「シーンの単位」は、5.2の公式マニュアルによると、この「単位の倍率」を、書き出すデータに当てはめる設定です。
「単位の倍率」が初期値の1.0のままなら、「シーンの単位」をオンにしても数値は変わりません。「単位の倍率」を0.001にして「シーンの単位」をオンにすると、数値は1000倍ではなく0.001倍になりました。mmの数値で書き出したいときは、「スケール」を使います。
閉じた形状かは3D Print Toolboxで調べる
Blender 4.1の公式マニュアルによると、スライサーが正しく処理するには、形が「水も漏れない」ように、どこも閉じている必要があります。飛び出した辺や面も無いようにします。これを調べるのが、エクステンションの3D Print Toolboxです。
3D Print Toolboxは、「編集」→「プリファレンス…」→「エクステンションを入手」で探します。「3D Print Toolbox」の「インストール」をクリックすると入ります。同じ手順はBlenderのDXFの読み込み|アドオンのインストールと単位の倍率で画面つきで解説しています。インストールすると、3Dビューポートのサイドバー(Nキーで開く)に「3D Print」のタブが加わります。
サイドバーの「3D Print」タブの「解析」のパネルは、「統計」「チェック」「結果」に分かれています。チェックするのはアクティブなオブジェクト(最後に選んだオブジェクト)だけで、複数を選んでいても、ほかのオブジェクトは調べません(エクステンションの注意の文)。
| まとまり | 項目 | 調べること(公式マニュアル・エクステンションの説明) |
|---|---|---|
| 統計 | 体積・面積 | メッシュの体積と表面積を出す |
| チェック | ソリッド | 穴が無いか(辺がちょうど2枚の面につながっているか)と、面の向きがそろっているか。結果の「非多様体の辺」「不正な連続した辺」 |
| チェック | 交差 | 面どうしが突き抜けていないか。結果の「交差面」 |
| チェック | シェル | メッシュがいくつのかたまりに分かれているか。結果の「Shells」 |
| チェック | 縮退(0.0001m) | 長さが0.0001m以下の辺と、面積がほぼ0の面が無いか。結果の「ゼロ面積面」「ゼロ長の辺」 |
| チェック | 非平面(5°) | 平らでない面が無いか。結果の「非平面の面」 |
| チェック | 肉厚(0.001m) | 指定より薄い部分が無いか。結果の「薄い面」 |
| チェック | シャープ(160°) | 指定より鋭い辺が無いか。結果の「シャープな辺」 |
| チェック | オーバーハング(45°) | 指定の角度より張り出した面が無いか。結果の「オーバーハング面」 |
閉じた箱で「すべてチェック」を押すと、「非多様体の辺」は0でした。面を1枚消して穴をあけた箱では、穴の縁の4本が「非多様体の辺」になりました。

編集モードでは、結果の数字を押すと、その辺や面が選択されます(公式マニュアル)。
公式マニュアルによると、3Dプリンターは宙に浮いた部分を印刷できないので、スライサーはサポート(支え)を足すことがあります。「オーバーハング面」は、この宙に浮きやすい、下を向いた面を数えます(エクステンションのコード)。閉じた箱でも、底の1つが数えられました。
穴などの問題は、「クリーンアップ」の「多様体化」で直せます。「編集」のパネルには、形を変える機能が並んでいます。

| パネル | ボタン | 働き(公式マニュアル・エクステンションの説明) |
|---|---|---|
| クリーンアップ | 多様体化 | 孤立した頂点・辺・面と内部の面を消し、近い頂点を結合し、穴をふさいで、面の向き(法線)を外向きにそろえる |
| 編集 | 中空化 | 形の内側(既定)か外側に、厚みをそろえた面を作る |
| 編集 | 二分割 | 平面で形を切り分ける |
| 編集 | XYに整列 | 選択した面が、平均してXY平面に平行になるように回す |
| 編集 | スケール:体積 | 指定した体積になるように大きさを変える |
| 編集 | スケール:境界 | 外形の一番長い寸法(X・Y・Zのどれか)が指定した長さになるように大きさを変える |
面を1枚消した箱を選んで「多様体化」を押すと、穴がふさがって面が6枚になり、「非多様体の辺」は0になりました。
3D Print Toolboxの「エクスポート」は「単位」をミリメートルにして書き出せる
3D Print Toolboxの「エクスポート」のパネルからも、STLを書き出せます。「オプション」の「単位」を「ミリメートル」にすると、Blenderの1mが1000の数値で書き出されます。「単位」は、単位の設定の「単位系」が「なし」以外のときに選べます(「なし」では灰色になります)。この倍率は「単位の倍率」も計算に入れます(エクステンションのコード)。

| 設定 | 既定 | 中身 |
|---|---|---|
| エクスポート先ディレクトリ | // | 書き出すフォルダ。「//」は.blend(Blenderで保存したファイル)と同じフォルダ |
| フォーマット | STL | OBJ・PLY・STLから選ぶ |
| 単位 | なし | なし・センチメートル・ミリメートル・マイクロメートル |
| ASCII | オフ | テキストの形式で書き出す |
| UV・ノーマル・色 | オフ | OBJ・PLYのときの設定。STLでは灰色で使えない |
| テクスチャをコピー | オフ | 書き出すときに、テクスチャの画像も保存先へコピーする |
2mの箱(頂点の座標が±1m)を書き出すと、頂点の数値は「単位」が「なし」で1、「センチメートル」で100でした。「ミリメートル」では999.99994、「マイクロメートル」では1000000でした。ミリメートルの999.99994は、小数の計算で出た誤差で、ほぼ1000です。
書き出されるのは、選択したオブジェクトです。複数を選ぶと、1つのファイルにまとまります。ファイル名は「.blendのファイル名-アクティブオブジェクトの名前.stl」になります。.blendを保存してあれば、エクスポート先ディレクトリへそのまま書き出されます。保存していないとき(エクスポート先ディレクトリが「//」のまま)は、保存する場所を選ぶ画面が開きます(エクステンションのコード)。モディファイアーは、ビューポートの設定で計算して書き出されます。STLの書き出しの画面の「プロパティ」の既定(レンダー)とは違うので、サブディビジョンサーフェスの細かさが変わることがあります。
mmの数値のSTLを読み込むときは「スケール」を0.001にする
ほかのソフトで作ったSTLを読み込むときは、「ファイル」→「インポート」→「STL (.stl)」を選びます。Blenderの2mの箱を「スケール」1000で書き出したSTLを、既定のまま読み込むと、2000mの大きさになりました。読み込みの画面の「スケール」を0.001にすると、2mで読み込まれました。

| まとまり | 設定 | 既定 | 中身(公式マニュアル) |
|---|---|---|---|
| 全般 | スケール | 1.000 | 読み込むときに掛ける倍率 |
| 全般 | シーンの単位 | オフ | シーンの単位の設定を、読み込むデータに当てはめる |
| 全般 | 前方の軸・上向きの軸 | Y・Z | 軸の向きの変換。上がYのソフトから読み込むときは、前方を-Z、上をYにする |
| オプション | ファセットの法線 | オフ | ファイルに書かれた面の法線を使う(平らな陰影のまま) |
| オプション | メッシュを検証 | オン | 読み込んだメッシュの壊れたデータを調べて直す。読み込みは遅くなるが、公式マニュアルはオンを勧めている |
Blenderで建築パースを作る方法は、建築3DCGコース(Blender)で学べます。
会員登録(無料)
記事やテーマのお気に入り・学習履歴・フォローが使えます。
この記事について
PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。

