This is a tutorial, illustrating how to design a personalized plate for a mandible excision.

口腔内腫瘍が下顎に発生した場合は、治療の選択肢として下顎骨切除があります。犬で下顎骨切除をすると、舌がでてしまうことがあります。舌が出てても、本人(本犬?)は、まったく気にしてなさそうです。ただ、舌が出てよだれが口から流れ出てしまうのは、私はすこしだけ不憫に思ってしまいます。
下顎骨切除の際には骨を切除・除去する一択ですが、オーダーメイドプレートがあれば下顎骨の機能を保全することができ、舌が出る・流涎を防げるのではないでしょうか。実験していないので、実際は効果があるのかわかりませんが、とりあえず欠損部を補うプレートを設計してみます。
今回は、embodi3Dというサイト(https://www.embodi3d.com/)から犬のCTデータサンプルをダウンロードしました。
サンプルは正常の下顎を持っていましたが、下顎骨のモデルをSTLファイルで取り出し、モデルを変形させて左下顎に腫瘍のモデルを作りました。この下顎のプレートを作成します。



注意:この取組は思考実験であり、臨床利用はしていません。
- 3DSlicer
CTから頭蓋骨と下顎骨のSTLファイルを取り出す(segmentation)
- MeshMixer
ソリッドモデルの作成、Auto repair の実施
- Autodesk Fusion 360
プレートの設計
- 3Dslicer(次回)
設計したプレートがうまく下顎に収まるか確認(ボリュームレンダリング)
1.3DSlicer
まず、DICOMを読み込みます。その後、segmentationを行います。頭蓋骨と、下顎骨を別々にしてSTLファイルを出力しました。方法は過去の記事をご覧ください。
CT-MRI等のDICOMビューア3D Slicer(無料)の使い方 | 獣医 x プログラミング (jpn.org)
CTから腫瘍を3D構築して手術イメージを掴む方法 その1-3DSlicer | 獣医 x プログラミング (jpn.org)
segmentationをスピードアップする方法
骨のsegmentationの際に、thresholdで骨を浮かび上がらせuse for maskingを押してからpaintすると、thresholdで色がついたところしか色が付きません。つまり、paintの際に軟部組織との境界に神経を使いながら色を塗る必要はなく、ラフにpaintしても決められたCT値のところしか色塗りがされません。作業効率がすごく上がります。

2.MeshMixer
MeshMixerを開いて、骨の3Dモデルをインポートします。Editから、Make Solidを押します。その後、Analysisのinspectorを使って、Auto Repair Allをしておいてください。できたモデルをエクスポートします。
過去の記事を参考にしてください。
オーダーメイドプレートをCT3Dから作成する方法 | 獣医 x プログラミング (jpn.org)
3.Fusion 360
まず、解剖をチェックです。


下顎骨を頭蓋骨から分離してみます。


基本的なオーダーメイドプレートの作り方は過去記事で説明しています。
3D アーカイブ | 獣医 x プログラミング (jpn.org)
Meshmixerで作成した2つのSTL(頭蓋骨、下顎骨)をそれぞれメッシュとして挿入してください。そして、メッシュの削減をします。その後、メッシュからBrepを作成をして、ソリッドモデルを作成します。以下、下顎骨だけを表示した状態です。
なお、モデルの位置は動かさないほうがいいです。動かすと、設計したプレートの座標がずれてしまうため、3Dslicerに戻したときにとんでもない位置にプレートが浮かんでしまいます。
下顎骨の左下顎体と右下顎体の接合する下顎間軟骨結合を切断します。「ボディを分割」を使って、真ん中で切断します。分割するボディは下顎骨で、分割ツールは原点の平面です。

「ボディを分割」を使って、腫瘍より近位で切断することにします。この位置は、急に角度が立ち上がる下顎枝の根本なので、手術中にもポジションが確認しやすいと考えました。
切断する平面は、スケッチ→パッチで作成しました。

上からみると、この位置で切断します。

切断後、上から見た図です。

切断した下顎骨は、以下のような形です。

この切断した下顎と同様のプレートを作っていくわけですが、どうしたらよいでしょうか。
「ロフト」ツールを使います。ロフトは、スケッチとスケッチ間を穴埋めする機能です。
以下のように7平面作りました。この7平面に、骨の断面をスケッチしていってそのスケッチをつないで、プレートにします。


平面にスケッチしている様子です。スケッチパレットに、スライスという項目がありますので、そこにチェックマークを入れてください。断面にスケッチできます。スプラインを使って、骨の輪郭をなぞっています。

モデルは、歯も下顎骨も一緒になっているので、歯の部分はスケッチしません。左右からよく見て、下顎骨と思われるところにスケッチします。また、腫瘍で膨らんでいるところもスケッチしません。下の図は、左下のほうに腫瘍のふくらみがありますが、そのままスケッチしてしまいました。私は最初気づかなくて、そのまま続けていたら腫瘍のふくらみまで模倣したプレートが出来上がってしまいました。

それぞれの平面にスケッチを描いた様子です。これは、歯までスケッチしてしまっています。あとで修正しました。


「ロフト」という機能で、スケッチ間をつないでいきます。

切除部を模倣したプレートができました。


プレートはできましたが、固定する必要があります。2つの場所で、プレートと骨を固定します。
- 左下顎骨(切断部近位)との接着部
- 右下顎骨(反対側の下顎体)との接着部
左下顎骨との接着部
切断面の直径は、36mmだとわかりました。
7mm幅のプレートを3つくらい付けるのが妥当でしょうか。

どこにねじを打ったらよいでしょうか。ねじを打ちやすそうな平面を探します。
外側は、深いくぼみがあってまっすぐなプレートがフィットしなさそうです。せいぜいプレート1つでしょう。

内側のほうが平面が多くて、プレートがフィットしやすそうです。2つのプレートをフィットさせてみようと思います。

「構築」→「3点を通過する平面」を作成します。そのうえに、プレートをスケッチします。

プレートをスケッチ→押し出し(3mm)→プレート上に円を2つスケッチ→押し出し
これを3回繰り返して、以下のようなプレートができました。ねじの干渉はないようです。

「フィレット」を実施して、角を落とします。
「結合」を使って、プレートと下顎骨の接するところをプレートから削り出します。

右下顎骨(反対側の下顎体)との接着部
ラグスクリューのような形で、切断部を模倣したプレートに直接穴をあけます。
断面に円をスケッチしました。

「押し出し」を使って、操作を切り取りにします。


穴の断面が平面じゃないので、ねじ山が一部しかプレートを押さえつけません。立方体上の切り込みを作成します。
断面に正方形をスケッチします。

「押し出し」にて、上記スケッチを立方体にしたのち、立方体を穴の断面まで移動させます。そして、「結合」を実施して、プレートに立方体上の切り込みを入れます。


完成しました!



レンダリングを実施します。







出来上がったプレートをSTLファイルにエクスポートします。
4.3DSlicer
次回は、プレートのSTLファイルと犬のCTのボリュームレンダリングを同時に表示させてプレートがちゃんとはまるか、確認したいと思います。