Strecs3D入門:インストールから応力解析ベースの3Dプリントデータ作成まで
はじめに
こんにちは!
この記事では、私が開発しているソフトウェア Strecs3D
のインストール方法から、データ準備、基本的な使い方までを解説します。
Strecs3Dとは?
Strecs3D
は、応力解析の結果にもとづいて、3Dモデルのインフィル(内部充填構造)に粗密を生み出すためのスライサー前処理ソフトウェアです。
- 力のかかる領域:インフィルを密にする
- 力のかからない領域:インフィルを疎にする
これにより、モデル全体の軽量化と高い剛性の両立を目指します。
1. Strecs3Dのインストール
まずは Strecs3D
をインストールしましょう。
- Strecs3DのGitHubページ にアクセスします。
- リリースページ へ移動し、お使いのOS(macOS / Windows)に合ったインストーラーをダウンロードします。
Windowsの場合
ダウンロードしたセットアップウィザードの指示に従ってインストールを進めてください。
macOSの場合
ダウンロードした .dmg
ファイルを展開し、Strecs3D
のアイコンを「アプリケーション」フォルダにドラッグ&ドロップしてください。
インストール後、ソフトウェアを起動して以下のような画面が表示されれば成功です。
2. 準備するファイル
Strecs3D
で使用するファイルは以下の2つです。
- STLデータ:3Dプリントするパーツの形状データ
- VTUデータ:応力解析の結果データ
このチュートリアルでは、以下のソフトウェアを使ってデータを準備します。
- 3Dモデリング:Autodesk Fusion
- 応力解析(FEM):FreeCAD
補足
Strecs3D
は、Fusionに搭載されているFEM解析機能から出力された.vtu
データも使用可能です。ただし、Mac版Fusionでは解析結果をうまく出力できないバグが存在するようです。
3. データ準備①:STLデータの作成 (Fusion)
まず、Fusionで簡単な片持ち梁のモデルを作成します。今回はシンプルな直方体です。
モデルが完成したら、以下の2種類のファイルを出力します。
-
STEPファイル (
.step
)
後ほどFreeCADで応力解析を行うために使用します。 -
バイナリSTLファイル (
.stl
)
Strecs3D
本体で使用します。STLにはアスキー形式とバイナリ形式がありますが、v1.0.0では必ずバイナリ形式を選択してください。
4. データ準備②:応力解析 (FreeCAD)
次に、FreeCADで応力解析を行います。(FreeCADの説明のため、FreeCADの使用方法がわかる方は読み飛ばしていただいて構いません)
なお、FreeCADを使用した解析のわかりやすい記事を参考として置いておきます。
https://cosmosdesign2021.com/fc019fem/
環境
この記事では FreeCAD v1.0.0 を使用しています。UIを一部カスタマイズしているため、デフォルトの状態とは見た目が異なる場合があります。
STEPファイルのインポートと保存
- FreeCADで新規プロジェクトを立ち上げ、先ほどFusionからエクスポートした STEPファイル をインポートします。
- インポート後、一度プロジェクトファイルを保存しておきましょう。
FEM解析のセットアップ
- ワークベンチを
FEM
に切り替えます。 - ツールバーにある
A
のアイコン(解析コンテナーを作成)をクリックします。
① 材料の選択
丸いアイコン(材料を割り当て)をクリックし、今回は材料として PLA
を選択します。
② 境界条件の設定(拘束と荷重)
【拘束】
- 拘束アイコン(固定拘束を作成)をクリックします。
- 表示されたダイアログで
Add
をクリックし、固定したい面を選択します。今回は片持ち梁の端面を固定します。
【荷重】
- 荷重アイコン(力を加える)をクリックします。
- ダイアログで
Add
をクリックし、力を加えたい面を選択します。 - 力の方向(下向き)と値(今回は
20 N
)を設定します。
③ 解析メッシュの作成
- インポートしたSTEPモデルをツリービューで選択した状態で、メッシュ作成アイコン(
N
またはG
と書かれたアイコン)をクリックします。今回はG
(Gmsh)を使用します。 - メッシュサイズを設定します。サイズを小さくすると精度が上がりますが、計算時間が長くなります。
Strecs3D
ではそこまで高精度なメッシュは必要ないため、適度なサイズで十分です。
④ 解析の実行と結果のエクスポート
材料、拘束、荷重、メッシュの4つが準備できたので、解析を実行します。
- ツリービューで
SolverCcxTools
を選択した状態で、Run solver calculations
ボタン(再生ボタンのようなアイコン)をクリックします。
(このアイコンが見つからない場合は、ツールバーのドロップダウンメニューなどを確認してください) - 数秒待つと計算が完了します。
- STEPモデルと解析メッシュを非表示にして、結果を見やすくします。
- ツリービューで
Pipeline_CCX_Results
をクリックし、タスクパネルのColoring
->Field
でvon Mises Stress
を選択すると、応力分布が色で表示されます。
- 応力分布が正しく計算されていることを確認したら、結果をエクスポートします。
-
Pipeline_CCX_Results
を選択した状態で、ファイル
->エクスポート
を選択します。 - ファイル形式として
FEM Result VTK (*.vtu)
を選択し、保存します。
これで、Strecs3D
に必要な STLファイルとVTUファイルが揃いました!
5. Strecs3Dでの操作
いよいよ Strecs3D
を使っていきます。
-
Open stl file
をクリックし、Fusionから出力した STLファイル をインポートします。 -
Open vtu file
をクリックし、FreeCADから出力した VTUファイル をインポートします。
領域分割とインフィル設定
-
Process
ボタンをクリックすると、応力に応じてモデルが4つの領域に分割されます。これらの領域ごとに、異なるインフィル密度を割り当てることができます。 - 右側のスライダーで、各領域のプレビュー表示(表示/非表示、透明度)を調整できます。
- 左側のスライダーで、各領域を分割する応力の閾値を調整できます。「〇〇 MPa 〜 〇〇 MPaの範囲には、インフィル密度を〇〇%にする」という設定が可能です。
今回は、力がかかっていない領域から順に、インフィル密度を 8%, 20%, 30%, 50% と設定しました。
3mfファイルのエクスポート
対応スライサー
現在、Strecs3D
は Ultimaker Cura と Bambu Stadio に対応しています。(今後、対応スライサーを増やす予定です)
設定が完了したら、Export
ボタンをクリックして 3mf
ファイルを出力します。
このファイルには、モデルの形状情報に加えて、各領域のインフィル密度情報などが含まれています。
6. スライサーでの最終確認 (Bambu Studio)
Bambu Studioで、先ほど出力した 3mf
ファイルを読み込みます。
そのままスライスを実行すると、Strecs3D
で設定した通り、力のかかる部分には密なインフィル、かからない部分には疎なインフィルが自動で生成されます。
スライスプレビューでインフィルの様子を確認しやすくするために、以下の設定にしています。
- トップソリッドレイヤー:0
- ボトムソリッドレイヤー:0
- インフィルパターン:ジャイロイド (Gyroid)
スライサーでのインフィル密度微調整
余談ですが、最終的なインフィル密度はスライサー側でも調整できます。
Bambu Studioでは、オブジェクト
タブに切り替えると、Strecs3D
で分割された各パーツ(領域)が表示されます。ここで、それぞれのインフィル密度を最終的に微調整することが可能です。
ここまでできれば、あとは通常通りに3Dプリントを実行するだけです。
7. 完成!
こちらが実際に3Dプリントしたものです。設計通り、力のかかる部分に密なインフィルが生成されているのがわかります。
まとめ
今回は、Fusion, FreeCAD, Bambu Studio を用いて Strecs3D
を使う方法を解説しました。
しかし、これらのツールにこだわる必要はありません。STL, VTU, 3mf の各ファイル形式を扱えるソフトウェアであれば、他のCAD、CAE、スライサーでも同様のワークフローを実現できます。(ver1.0.0では完全に対応しきれていないソフトウェアが存在します。それらについては、今後のアップデートで対応していきます。)
バグ報告や機能要望などがありましたら、Strecs3D
のGitHubリポジトリのIssuesや、開発者のX (旧Twitter) アカウントまでお気軽にご連絡いただけると嬉しいです。
なお、Strecs3Dを使用しての感想や作例なども #Strecs3D で共有してもらえれば嬉しいです!
最後までお読みいただきありがとうございました!
X: https://x.com/tamutamu3D
GitHub: https://github.com/tomohiron907/Strecs3D