【Blender3.1】STLファイルを活用しよう!【CAD・3Dプリンター】

URLをコピーする
URLをコピーしました!

こんにちは!

今回は、フリーの3DCGソフト「Blender」で、「STLファイル」を通じて他の外部ソフトとデータのやり取りをしたり、編集・修正する方法を紹介します。

「STLファイル」を利用して、3D CADなどの外部ソフトで作ったデータをBlenderに取り込んだり、Blenderで作ったモデルを3Dプリントすることができたりといろんな応用ができるので、ぜひ参考にしてみてください!

目次

STLファイルとは?

まず、「STL」ファイル形式について紹介します。

STLとは「Standard(またはStereolithography) Triangulated Language」の略で、三角形要素の集合で三次元形状を表現するファイルフォーマットです(参考:Wikipediaの記事)。

コチラの図のように、1つの要素(「ファセット」(facet)と呼ぶ)は3つの頂点座標と法線ベクトルで定義されます。

STLファイルをBlenderに読み込むと、こんな風に三角形ポリゴンの集合として表示されます。

なお、STLファイル頂点座標と面法線ベクトルのみのシンプルな形式で、色やテクスチャなどの情報は含まれません

そういう点では、テクスチャやリグ情報などをもつFBXファイルなどとは対照的です。

ちなみに、「FBXファイル」のインポート/エクスポート方法についてはコチラの記事を参考にしてみてください。

CGbox
【Blender3.0】FBXインポート/エクスポート設定 完全版! | CGbox こんにちは! 複数のCGソフトを使っていたり、ゲームエンジンで自作モデルを使う場合は、作ったモデルをインポート/エクスポートする必要があります。 そんなときに、FBX形...

STLの使用用途

STLデータの構造が簡単であることから、ラピッドプロトタイピング(製品の試作)用の標準フォーマットとして使われています(参考:Wikipediaの記事)。

そのため、STLを使うことで、Fusion360のような3D CADソフトとのデータのやり取りができるほか、Blenderから出力したSTLを使って3Dプリンターで光造形することもできます。

3D CADや、3Dプリンターを活用することで、面白いことがいろいろとできるようになります!

  • 3D CADでモデリングしたパーツをBlenderに取り込んで、ハードサーフェスモデリングに使う
    • ブーリアン・面取りなどハードサーフェス的な形状は、BlenderよりもCADの方が簡単にモデリングできます!
    • 逆に、Blenderで作ったモデルをCADに取り込んで加工することもできます。
  • Blenderで作ったモデルを3Dプリンターで印刷してオリジナルフィギュアを製作する

Blenderを使った「ハードサーフェスモデリング」のやり方については、コチラの記事で紹介しているのであわせて参考にしてみてください!

CGbox
【Blender2.9】ハードサーフェスモデリングを始めよう! | CGbox こんにちは! 本記事では、3DCGソフト「Blender」を使った「ハードサーフェスモデリング」の始め方やコツについて紹介します! 「ハードサーフェスモデリング」とは? 「自...

STLのインポート

STLファイルをBlenderにインポートして表示する方法を紹介します!

今回使用したSTLは、Autodesk社の3D CADソフト「Fusion360」で作成したデータをエクスポートしたものです。

Fusion360は、非商用の個人利用に限りますが、機能限定版を無料で使えます。

UIが分かりやすくて、初心者でもすぐ使えるはずなので、ぜひ試してみてください!

あわせて読みたい
Fusion 360 | 3D CAD/CAM/CAE/PCB クラウドベースのソフトウェアAutodesk 公式 Fusion 360 は、クラウドベースの高機能 3D CAD、CAM、CAE、PCB 統合システムで、モデリング・製造・工業デザイン・電子機器・機械エンジニアリングに最適なソフトウェアで...

アドオンを有効化しよう

STLファイルをBlenderにインポートするためには、内蔵アドオン「STL format」を有効化する必要があります。

トップバーの「編集」→「プリファレンス」→「アドオン」を選択します。

画面右上の検索バーで「STL」と入力して検索すると、「Import-Export: STL format」というアドオンが表示されるので、チェックを入れて有効化してください。

これで、BlenderにSTLファイルをインポートできるようになりました。

ちなみに、アドオンの有効化・インストールする方法についてはコチラの記事にまとめていますので、参考にしてみてください!

STLをインポートしよう

アドオンを有効化したら、トップバーの「ファイル」→「インポート」を選択します。

「Stl(.stl)」という項目があるはずなので選択して、読み込むSTLファイルを選択するとコチラのように3D形状データが読み込まれます。

シェーディングの設定方法

Blender上で、曲面形状・エッジをきれいに表示する(シェーディング)方法を紹介します。

デフォルトだと「フラットシェード」が設定されているため、STLの3角形ポリゴンがそのまま表示されています。

オブジェクトモードで右クリックして「スムーズシェード」を選択します。

このままだと、エッジの部分が歪んで表示されてしまうので、「オブジェクトデータプロパティ」→「ノーマル」→「自動スムーズ」にチェックを入れます。

すると、コチラのように曲面・エッジがキレイに表示されるはずです。

「スムーズシェード」「自動スムーズ」について、詳しくはコチラの記事で紹介しているので参考にしてみてください。

CGbox
【Blender3.1】「スムーズ」を使って見た目・形状を滑らかに! | CGbox はじめに こんにちは! 今回は、フリーの3DCGソフト「Blender」で、見た目や形状を滑らかにする「スムーズ」の機能・やり方について紹介したいと思います。 「スムーズシェ...

インポートしたSTLを編集する

BlenderにインポートしたSTLファイルを、修復・分割したり、テクスチャを貼ったりなどアレンジしたりする方法を紹介します!

STLを修復する

STLファイルを読み込んだ際に、先ほど紹介した例のようにきれいに表示される場合もありますが、うまく表示されないことがあります。

そのような場合は、以下の方法で修正してみてください!

重複頂点(メッシュが繋がっていない)

コチラのように頂点が重複頂点になっていてメッシュが繋がっていない場合があります。

モデルは、ホンダのS800ウェブプラモ(配布終了)のDXFファイルをお借りしました。

コチラのように、編集モードで「A」で頂点を全選択したあと、「M」でマージ→「距離で」(基本的にデフォルトの0.0001でOKだが、必要に応じて変更)を選択すると、重複頂点がマージされて、メッシュが繋がります。

「頂点をマージ」する方法について、詳しくはコチラの記事を参考にしてみてください。

CGbox
【Blender2.9】マージの使い方:頂点の整理・重複頂点の削除に活用しよう! | CGbox こんにちは! Blenderでの3DCG制作を勉強中のUEDAです。 Blenderを勉強して、アウトプットの場としてそれぞれの機能をまとめられればと思っています。参考にもなれば嬉しい...

面がひっくり返っている(反転)

コチラのように一部メッシュの面がひっくり返っていて、きれいにスムーズシェーディングされない場合があります。

このような場合は、「A」でメッシュを全選択し、ヘッダーの「メッシュ」→「ノーマル」→「面の向きを外側に揃える(そろえる)」を選択すると、面の向きが直ります。

「ノーマル(法線)の向き」をそろえる方法については、コチラの記事にまとめていますので、参考にしてみてください。

CGbox
【Blender2.9】ノーマル(法線)の向きを揃えよう! | CGbox こんにちは! Blenderでの3DCG制作を勉強中のUEDAです。 Blenderを勉強して、アウトプットの場としてそれぞれの機能をまとめられればと思っています。参考にもなれば嬉しい...

メッシュの形状が歪んでいる

また、STLが細長いメッシュで分割されているのが原因で、シェーディング結果が歪んでしまう場合があります。

このような場合は、「リメッシュモディファイアー」を使うことで、メッシュ形状を整えて、シェーディングをきれいに表示することができます。

ただし、リメッシュモディファイアーを使うと、メッシュが多くなりすぎて動作が重くなることがありますので、ボクセルサイズを小さくしすぎないように注意してください。

「リメッシュ」「リメッシュモディファイアー」について、詳しくはコチラの記事で紹介しているので、あわせて参考にしてみてください!

CGbox
【Blender3.0】リメッシュ機能を使いこなそう! | CGbox こんにちは! 皆さんは、Blenderのリメッシュ機能を使っているでしょうか? 特にスカルプトを行う方は触れる機会が多いかもしれません。 今回は、このリメッシュ機能につい...

部品ごとに分割・分解する

読み込んだSTLファイルのメッシュを、部品ごとに分割・分解したい場合もあると思います。

やり方を簡単に紹介します!

STEP
編集モードで、分離したい頂点・面を選択します。
メッシュが細かい場合は、コチラのように「C」キーで塗りつぶし選択すると速いです。
(「Shift+C」で選択解除、「Esc」キーで選択モード解除)
STEP
ショートカット「P」→「分離」→「選択」で選択部分を別オブジェクトに分離します。
STEP
分離した部分のメッシュは穴が開いているので、穴回りのエッジを選択して「F」キーで面を張ります。

「メッシュの分離」については、コチラの記事で詳しく紹介していますので、あわせて参考にしてみてください。

CGbox
【Blender2.9】分割・分離・統合の使い方を解説! | CGbox こんにちは! Blenderでの3DCG制作を勉強中のUEDAです。 Blenderを勉強して、アウトプットの場としてそれぞれの機能をまとめられればと思っています。参考にもなれば嬉しい...

テクスチャマッピングする

STLファイルにはテクスチャ情報が含まれていないので、Blender上でテクスチャを貼り付ける(マッピング)必要があります。

テクスチャをマッピングすることで、コチラのようにリアルな模様・汚れ・質感を付けてレンダリングできます。

上の例は「UVマッピング」を使っていますが、簡単にやり方を紹介します。

STEP
「UV Editing」のワークスペースを選択して、UV展開用のテクスチャ(UVグリッド)を追加します。
テクスチャサイズは2048px程度が良いと思います。
STEP
「Shading」タブで、マテリアルを作成します。「画像テクスチャ」を追加して、作成したテクスチャを読み込み、コチラのようにつなぎます。

Blender標準搭載のアドオン「Node Wrangler」を有効にしておけば、「Ctrl+T」で一気にテクスチャ・テクスチャ座標・マッピングを追加できます。

Node Wranglerの使い方等は、コチラの記事を参考にしてみてください。

CGbox
【Blender2.9】Node Wrangler:ノード作業には必要不可欠!! | CGbox こんにちは! Blenderでの3DCG制作を勉強中のUEDAです。 Blenderを勉強して、アウトプットの場としてそれぞれの機能をまとめられればと思っています。参考にもなれば嬉しい...
STEP
再び、「UV Editing」のワークスペースに切り替えます。編集モードで「シーム」(UVマップの切れ目)を追加します。シームを追加する辺を選択し、「U」→「シームを追加」で追加します。

コチラのように、切り開いたときに出来るだけ平らになるように、エッジに沿って、突起に向かってシームを入れるのがコツです。

UV展開のやり方については、コチラの記事にまとめていますので、あわせて参考にしてみてください。

CGbox
【Blender2.9】UV展開の方法:オブジェクトを切って、開いて | CGbox こんにちは! Blenderでの3DCG制作を勉強中のUEDAです。 Blenderを勉強して、アウトプットの場としてそれぞれの機能をまとめられればと思っています。参考にもなれば嬉しい...

シームの入れ方など、UV展開のコツ・困ったときの対処法はコチラの記事で紹介しているので、あわせて参考にしてみてください。

CGbox
【Blender3.1】FAQ:UV展開で困ったときの対処法 | CGbox はじめに こんにちは! 今回は、「UV展開(UVマッピング)がうまくいかない」問題の解決方法を紹介していきます。 私自身も過去にUV展開で苦労した経験があるので、そちらも...
STEP
メッシュを全選択して、「U」→「展開」でUV展開されます。

UVが歪んでいる場合は、さらにシームを追加していきます。

STEP
メッシュ形状が原因でUVが歪んでいる場合は、ナイフツール(ショートカット「K」)で辺を追加してUVし直すと綺麗になります。
STEP
テクスチャを貼り付ける。

UV展開が完了したら、ふたたび「Shading」に切り替えて、マテリアルにテクスチャを貼り付けます。

今回はフリーのテクスチャを配布しているサイト「Textures.com」の、コチラのテクスチャを使用しました。

テクスチャを貼り付ける方法については、コチラの記事で紹介しているので参考にしてみてください。

CGbox
【Blender2.9】テクスチャの貼り付け方:オブジェクトをよりリアルに! | CGbox こんにちは! Blenderでの3DCG制作を勉強中のUEDAです。 Blenderを勉強して、アウトプットの場としてそれぞれの機能をまとめられればと思っています。参考にもなれば嬉しい...

標準搭載アドオンNode Wrangler(関連記事)」を使うことで、コチラのように「ベースカラー」「メタリック」「ラフネス」「ノーマルマップ」「ディスプレイスメント」を一気に設定できます。

ちなみに、UV展開の作業を楽にしてくれる無料のアドオン「TexTools」もありますので、コチラの記事を参考にぜひ使ってみてください。

CGbox
【Blender2.9】ベイク作業を効率化!アドオン:TexToolsを使ってみよう | CGbox こんにちは。 今回はBlenderのベイク作業を効率化できるアドオン「TexTools」を紹介します。 ベイク機能以外にも便利な機能満載のアドオンです。 ぜひ試してみて下さい! ▼...

また、今回紹介した「UVマッピング」以外にも、「オブジェクトマッピング」など他のマッピング方法が便利な場合もあります。

詳しくはコチラの記事にまとめていますので参考にしてみてください。

CGbox
【Blender3.0】テクスチャマッピングの方法まとめ | CGbox はじめに こんにちは! 今回は、3DCGソフト「Blender」上での、「テクスチャマッピング」の方法について紹介します! 使用するマテリアルノードの設定方法や、マッピング方...

インポートしたSTLが表示されない場合

STLファイルをインポートしても「見えない・表示されない」場合は、以下の原因が考えられます。

  • インポートしたSTLファイルの座標が、(0,0,0)から遠く離れたところにある
  • インポートしたSTLファイルのスケールが大きすぎ/小さすぎて見えない

STLファイルをインポートしたら、まずはアウトライナーを見てインポートしたオブジェクトがあることを確認しましょう。

次に、「オブジェクトプロパティ」の「トランスフォーム」→「位置」を確認して、遠く離れた位置にあるようであれば[X=0,Y=0,Z=0]に設定するとコチラのように表示されるようになります。

また、「/」(スラッシュ)を押しても表示されないようであれば、オブジェクトのスケールが大きすぎてビュー範囲から外れている可能性があります。

その場合は「N」キーでサイドメニューを表示し、「ビュー」→「終了」を非常に大きな数字に設定するとコチラのように表示されるようになります。

オブジェクトが大きすぎ/小さすぎの場合は、「S」キーで拡縮することでスケールを調節できます。

BlenderからSTLをエクスポート/出力する

BlenderからSTLファイルを出力する方法を紹介します。

また、3Dプリンターでの利用を前提に、モデルのサイズ(スケール)を直したり、マクロを使ってモデルのエラーを修正する方法についても紹介していきます!

STLのエクスポート方法

STLをエクスポートするには、先ほど「STLのインポート」で紹介したのと同様に、内蔵アドオン「STL format」を有効化する必要があります。

アドオンを有効化すると、トップバーの「ファイル」→「エクスポート」→「Stl(.stl)」からSTLファイルをエクスポートできるようになります。

コチラのようなエクスポート用の設定画面が開きます。

設定メニューの内容はコチラになります。

  • Ascii:チェックをONにすると、プレーンテキスト形式で出力します。
    (チェックOFFの場合はバイナリ形式
  • バッチモード「オフ」の場合はすべてを1つのファイル「オブジェクト」に設定するとオブジェクト毎に個別のファイルに出力します。
  • 内容「選択物のみ」にチェックを入れると、選択されたオブジェクトのみエクスポートします。
  • トランスフォーム
    • スケール各頂点の座標値に倍率をかけます。
    • シーンの単位:現在のシーンに適用している「単位の倍率」を、出力データに適用します。
      「単位の倍率」は、「シーンプロパティ」→「単位」→「単位の倍率」で設定できます。
    • 「前方」「上」出力する座標系の向きを設定します。
      出力先のソフトの座標系によって、「Yが上」などに設定する必要があります。
  • ジオメトリチェックをONにすることで、「モディファイアーを適用」した状態でエクスポートされます。

Blender上の単位デフォルトでは「メートル」なので、出力先のソフトの単位系に合わせて、コチラの表のように「スケール」または「シーンの単位」を設定する必要があります。

出力スケール倍率の設定
Blender単位系出力先ソフトの単位系スケール or シーンの単位
メートルメートルx 1
メートルセンチメートルx 100
メートルミリメートルx 1000
メートルインチx 39.37 (=1000÷25.4)

Blender上の単位を変更する

上に書いたとおりBlenderのデフォルトの単位系はメートルで、3Dプリンターで扱うセンチやミリとは単位が異なるため、サイズ感が把握しにくい場合があります。

出力先ソフトと単位系を統一するために、Blenderの単位系をセンチやミリなどに変更することもできます。

単位系をミリに変更するには、コチラのように「シーンプロパティ」→「単位(Units)」の「単位系(Unit System)」「単位の倍率(Unit Scale)」「長さ(Length)」を変更します。

  • 単位系(Unit System):メートル法(Metric)
  • 単位の倍率(Unit System):0.001
  • 長さ(Length):ミリメーター(Millimeters)

出典:DTPやってみる!~ (75) 【Blender 2.9】 TIPS : mm単位でオブジェクトを編集する。
https://www.dogrow.net/dtp/blog75/

グリッドを1mm単位で表示するには、ヘッダー「ビューポートオーバーレイ」→「ガイド」→「スケール」を「0.001」に設定します。

出典:DTPやってみる!~ (75) 【Blender 2.9】 TIPS : mm単位でオブジェクトを編集する。
https://www.dogrow.net/dtp/blog75/

単位系を「センチ」に変更する場合は、「単位の倍率」「スケール」を0.01、「長さ」を「Centimeters」に変更することで設定できます。

詳しい方法についてはコチラの記事で紹介されていますので、あわせて参考にしてみてください。

あわせて読みたい

ちなみに、上で紹介した単位系の設定をスタートアップシーンに反映するには、「ファイル→デフォルト→スタートアップファイルを保存」を選択をする必要があります。

Blender UI「スタートアップシーンのカスタマイズ」については、コチラの記事で紹介していますので、あわせて参考にしてみてください。

ソリッド化する方法

3Dプリンターの仕様によっては、メッシュに厚みを持たせてソリッド化する必要があるそうです。

ソリッド化モディファイアー」を使用することで、コチラのようにメッシュに厚みを持たせることができます。

元のメッシュ

ソリッド化モディファイアー追加後

元画像:code-440 ~ Blenderのモデルを3Dプリンター向けに修正する 
https://code440.github.io/blender-model-to-3dprinter.html

「ソリッド化モディファイアー」について、詳しくはコチラの記事を参考にしてみてください。

CGbox
【Blender2.9】ソリッド化モディファイアー:厚み付けはこれで! | CGbox こんにちは! Blenderでの3DCG制作を勉強中のUEDAです。 Blenderを勉強して、アウトプットの場としてそれぞれの機能をまとめられればと思っています。参考にもなれば嬉しい...

3Dプリント用アドオンを紹介!

Blender標準搭載アドオンの「3D-Print Toolbox」を使うことで、簡単に3Dプリンター用のデータのチェックおよび修正ができます。

トップバーの「編集」→「プリファレンス」→「アドオン」から、「Mesh: 3D-Print Toolbox」を有効化します。

アドオンを有効化した後、「N」キーでサイドメニューを表示し、「3Dプリント」のタブを選択すると設定メニューが表示されます。

モデルのチェック

「分析」→「チェック」から「全チェック」を選択すると、穴が開いていないか、面が交差していないかなどのチェック結果が表示されます。

モデルのクリーンアップ

「クリーンアップ」→「多様体化」を選択すると、モデルの穴をふさいだり、面の向きを統一、重複頂点をまとめるといった修正をしてくれます。

ただし、すべてのエラーが解消されるとは限らないので、その場合は手作業で辺ループをブリッジ(関連記事)したりなどの修正が必要です。

「3D-Print Toolbox」の使用方法について、詳しい説明はコチラの記事を参考にしてみてください。

あわせて読みたい
[Tips]3DプリントTipsその3〜3Dプリントプラグイン〜[3Dプリント] Blenderには3Dプリント用のデータ作成をサポートするプラグインが標準で付いていまが、デフォルトではオフになっています。 ・プラグインをオンにする ファイル→ユ...

まとめ

「STLファイル」を通じて他の外部ソフトとデータのやり取りをしたり、編集・修正する方法を色々と紹介してみました。

STLファイルをBlender上で扱うことに慣れておけば、3D CAD・3Dプリンターとうまく連携できるようになるので、ぜひコチラの記事をしていただければと思います。

最後に、今回のまとめです。

  • STLファイルとは?:三角形要素の集合で三次元形状を表現するファイルフォーマット
    • STLの使用用途:3DCADソフト・3Dプリンターとデータをやり取りできる
  • STLのインポート
    • アドオンを有効化しよう:内蔵アドオン「STL format」
    • STLをインポートしよう
    • シェーディングの設定方法:スムーズシェード&自動スムーズ
  • インポートしたSTLを編集する
    • STLを修復する:重複頂点・ノーマル・リメッシュ
    • 部品ごとに分割・分解する:「P」で分離して「F」で面を張る
    • テクスチャマッピングする:UVマッピングなど
    • インポートしたSTLが表示されない場合:トランスフォーム座標・スケールを確認
  • BlenderからSTLをエクスポート/出力する
    • STLのエクスポート方法:内蔵アドオン「STL format」
    • Blender上の単位を変更する:シーンプロパティ&ビューポートオーバーレイ
    • ソリッド化する方法:ソリッド化モディファイアー
    • 3Dプリント用アドオンを紹介!:内蔵アドオン「3D-Print Toolbox」
よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次
閉じる