3D Slicerで出力したSTLを、そのまま3Dプリントすることも可能ですが、今回はBlenderで印刷しやすいように形を整えました。
今回のモデルは、鎖骨だけではなく胸骨や肋骨、肩甲骨なども含んだ状態です。そのままだと細い接続部が多く、折れやすそうでした。そこで、不要部を削ったり、支柱を追加したり、印刷後にバラけないように台座を作ったりしています。
前編: CTデータの骨を3Dプリント 【前編】DICOMデータからSTLの作成
後編: CTデータの骨を3Dプリント 【後編】プリント時の注意点と試し刷りの記録
この記事でやったこと
- 骨以外の不要なオブジェクトを削除
- モデルの原点を扱いやすい位置へ移動
- 折れそうな骨を一部カット
- 全体を支える台座を追加
- 骨同士をつなぐ支柱を追加
使ったソフト
- Blender
Blenderは初心者でこのモデルの修正で初めて触りました。
もっと簡単な操作方法や、より最適な修正方法があるかもしれませんがご了承ください。
STLをBlenderに読み込む
まずは File > Import > STL で、3D Slicerから出力したSTLを読み込みます。
読み込んだデータはポリゴン数が多く、自分のPCのスペックでは一部重い操作がありました。
骨以外の不要物を消す
CTから作ったモデルなので、どうしてもノイズや意図しない小片が混ざります。
自分は以下の手順で、残したい骨だけを切り出しました。
-
Tabで編集モードに切り替え - 残したい骨の面や頂点の一部を選択
-
Lでつながっている部分をまとめて選択- 自分の場合は必要な骨がすべて何らかの形で接続していたので、一度で選択できました
- 必要な骨を
Shiftを押しながら追加選択 -
P > Selectionで選択したオブジェクトを別オブジェクトに分離
右上のアウトライナーから、不要な破片のまとまりになっているオブジェクトをまとめて削除しました。
↑のgifの選択されていない(黒い点)が浮いているノイズや小片です。
原点を移動して扱いやすくする
必須ではないですが、台座を作ったり位置合わせをしたりするときに、原点がモデルの変な位置にあると扱いづらいです。
今回は「背骨の一番下に来る基準点」を原点にしました。
手順
- 骨オブジェクトを選択
-
Tabで編集モード - 基準にしたい点を選択(背骨の一番下)
Shift + S > Cursor to Selected- オブジェクトモードに戻る
- 右クリック
Set Origin > Origin to 3D Cursor -
Nキーでサイドバーを開き、Locationを0, 0, 0にする
こうしておくことで、あとで台座と重ねたり、様々なサイズを指定する際に扱いやすくなりました。
不要な骨を削る
もとのデータでは、左側の鎖骨の先端が胸骨に少しだけついていました。ただ、これは点でしかつながっておらず、印刷時に折れそうでしたので、先に削除しました。
やり方としては、削りたい部分にCubeを重ねて、Boolean の Difference で切り落としました。
このあとも Modifier、特に Boolean の処理がいくつか出てきますが、Apply を押すまでは元の図形が維持されています。今回は編集の最後にまとめて Apply を押しました。
手順
-
Shift + A > Mesh > Cubeで新しいCubeを作成 - 削除したい部分を覆うように位置・角度・サイズを調整
- 切りたい骨オブジェクトを選択(今回だと骨全体。Cubeはまだ選択しない)
- 右側のスパナ
Add Modifier > Boolean Difference-
Objectに先ほどのCubeを指定
Cubeを一時的に非表示にすると、きちんと削れているか確認できます。
台座を作る
骨自体はすべて何らかの形で接続されている状態でしたが、このまま印刷しても不安定で扱いにくいです。
そこで、骨を安定させる目的と、設置時の見栄えのためにベースとなる台座を作りました。
今回は単純なCubeベースです。重要なのは、全体をしっかり支えられる広さがあること と 骨と台座が少し食い込んで一体化していること の2点です。
手順
Shift + A > Mesh > Cube- だいたい
x: 250m, y: 200m, z: 6mくらいに調整 & いい位置に配置- 読み込み時の基準のせいなのか、単位がmになっていて巨人サイズでした
- 骨全体を選択(台座はまだ選択しない)
- 右側のスパナ
Add Modifier > Boolean -
Union(結合) -
Objectに作成した台座のCubeを指定
骨の表面を少しなめらかにする
CT由来のSTLは、どうしても表面が少しガタガタします。トゲのようなノイズが入り、骨の一部がトゲトゲしていました。そこで Smooth モディファイアも試しました。
今回の設定はこんな感じです。
Add Modifier > SmoothFactor: 10.0Repeat: 1
劇的ではないですが、気持ち程度にはなめらかになりました。
Factor は補正の強さ、Repeat は補正を繰り返す回数だと思います。
ただ、今回の操作では Repeat を増やすと、先ほどCubeで切り取った部分の形が崩れてしまったので 1 にしています。
Modifier は設定した順番で処理されるようなので、このあたりを工夫すると改善できたのかもしれません。
骨同士をつなぐ支柱を追加する
今回いちばん手間だったのがここです。
鎖骨は本来、他の骨から浮いているような関係の部分がありますし、肋骨と背骨も点で接しているだけで細くて脆いです。
2回お試しで小さめサイズにして印刷しましたが、どちらも1本目の肋骨が折れました。
また、一部の骨はCTデータを3Dデータにする際のしきい値の関係で表面に穴が空いてしまっています(胸骨や鎖骨の胸骨側)。
これも見栄えと強度が悪いので、円柱で適当に埋めることにしました。
支柱の方針
- できるだけ目立ちすぎない
- 印刷方向を意識して配置
今回は「背骨を下にした仰向けの向き」で印刷する前提だったので、支柱もできるだけ背中側から垂直気味に伸ばすようにしています。
全部で19個の支柱を入れました。
つないだ場所は主に以下です。
- 肋骨と肩甲骨
- 胸骨と鎖骨
- 鎖骨と肩甲骨
- 背骨と肋骨
- 空洞になりすぎる部分の補強
支柱追加の手順
Shift + A > Mesh > Cylinder- サイズを調整
- つなぎたい骨同士に接するように配置
- 必要な本数だけ複製して増やす
円柱をたくさん作った後は、最後にまとめて一体化しました。
- 円柱だけをすべて選択
-
Ctrl + Jで1つのオブジェクトにする - 必要に応じて円柱側に
Remesh - 骨側に
Boolean > Unionをかけて結合
Booleanで消える問題
そのまま Union すると、一部の支柱や骨が消えたように見えることがありました。表面の状態が一部おかしかったのか、オブジェクト同士の重なりが悪かったのかもしれません。
そこで、結合前に支柱オブジェクト側へ Remesh をすることで対処しました。
- 一つ前で作成して1つのオブジェクトとなった支柱の集合オブジェクトを選択
-
Remesh>Voxel Voxel Size: 0.1mAdaptivity: 0
Ctrl + J はあくまでオブジェクトをまとめるだけで、重なり方が汚い(?)ままだとうまくUnionできないことがあるそうです。Remeshで表面を作り直してからのほうが安定しました。
まとめ
モデル修正の作業でいちばん大事だったのは、強度面の強化です。
本番プリントの前に2回試作品を作成していますが、どちらも脆い部分が折れました。試作品については次回詳しく書きます。
また、CTデータでは骨の内部が空洞になっていたので、印刷時もその部分は空洞のまま出力されています。これを自然に埋めることができれば、強度を出せて支柱の作成も減らせたかもしれません。
次の記事では、このモデルを実際にBambu Studioで印刷したときの注意点や、試し刷りで気づいたことをまとめます。




