個体別歯有限要素モデル構築 Java アプリケーションの開発

個体別歯有限要素モデル構築 Java アプリケーションの開発
旭川工業高等専門学校 制御情報工学科 本多 周平
1 . 緒言
歯科矯正治療における歯槽骨の力学的適応変形
シミュレーションにおいて,解析対象となる有限要素
モデルとしては,ヒトの標準歯を用いることが多い.し
かし,個人毎の歯の形状と異なるため,解析結果に
差異を含んでしまう.また,個別の有限要素モデル
を作ることは困難であり,解析点がずれるため比較
が難しい.そのため,標準歯を編集しての個体別歯
有限要素モデルの作成が考えられる.本研究では,
GUI(Graphic User Interface)を活用して,3D グラフ
ィックスで表現した有限要素モデルの,個体別歯に
応じたモデル編集プログラム作成を目的とした.有
限要素解析ソフトウェアとしては, ANSYS の使用を
前提として,標準歯の有限要素モデルを編集するプ
ログラムを Java により作成する.
4 .1 描画点の抽出
3D 表示に必要となる表面部の節点を NList から以
下の手順で抽出した(図 4-2).
(手順 1) Z 断面毎に節点を抽出.
(手順 2) XY 平面上で角度 0.5 度毎に節点を抽出.
(手順 3) 角度毎の節点のベクトルの大きい順でソー
トし,角度毎の最大値の節点だけを抽出.
(a) 節点の表示例
(b) 要素の表示例
図 4-1 歯の有限要素モデルの ANSYS での表示例
2 . ANSYS の形状データ
ANSYS から出力される NList は,表 2-1に示すよう
に各節点毎のノード番号,節点座標(X , Y , Z) の順
で記録されている.表 2-1 の節点番号(NODE)502
のデータは,編集後のデータと比較するのに用いる.
Y
断面毎の抽出
X
表 2-1 Nlist の例
NODE
501
502
503
X
-1.1133
-2.1410
-3.1319
Y
0.5度
Z
2.8548
2.2838
1.3957
角度毎の抽出
1.0000
1.0000
1.0000
3 . Java
Java は,マルチプラットフォーム対応であり[1],様々
な OS 上で動作している ANSYS との連携にも対応
できる.Java アプリケーションプログラムの開発環境
としては,統合開発環境である Eclipse を使用した.
また,グラフィカルな編集のために,Java の標準拡
張インターフェースである Java3D を使用する[2].
4 . 有限要素モデルの 3D 表示
本研究では,歯の 3 次元モデルの描画において
ANSYS から出力される NList の節点データを描画
節点として使用する.しかし,ANSYS の有限要素モ
デルの解析点には,図 4-1(a)に示すように内部を含
めて膨大な節点が存在する.これは,図 4-1(b)のよ
うな形状の表面部だけでなく,内面部分の立体形状
も表しているためである.描画点として,表面の節点
だけを抽出して,3D 形状を表現する.
抽出節点の決定
図 4-2 描画点抽出の手順
4 .2 面の形成
抽出した節点を頂点とする微小三角形要素で面を
作成する.面は,頂点が見る側から反時計回りに配
置されていなければ,見えなくなるため,図 4-3 のよ
うな順番で入力しなくてはならない.また,表面上の
高さ(Z)が異なる三角形要素を組み合わせて表面を
ひとつずつ形成していき立体を表現する(図 4-4).
頂点1
頂点2
見える
頂点1
頂点3
頂点3
見えない
図 4-3 節点の配置
頂点2
頂点0
頂点1
頂点2
頂点3
Z=5
Z=4
頂点16
頂点17
頂点18
頂点19
図 4-4 面の形成
図 6-1 3D 表示例
5 . 個体別歯有限要素モデルの構築
5 .1 節点の GUI 編集
歯の 3D モデルを構成している節点部分に編集用
の節点ポリゴンを描画してマウス操作で個別に移動
し(図 5-1 中○印),移動値を節点データに反映した.
ノード番号502.0
変更された内部の節点番号 502
変更された内部の節点番号 503
変更された内部の節点番号 504
変更された内部の節点番号 522
変更された内部の節点番号 523
変更された内部の節点番号 524
図 6-2 内部節点の編集例
表 6-1 編集後の NList の例
N,501,-1.1133,2.8548,1.0
N,502,-3.601, 0.8237, 1.0
N,503,-5.4319,-0.9043,1.0
図 5-1 マウスによる節点移動の例
5 .2 内部節点の編集
前節で述べた方法で描画した表面の節点を GUI
編集することは可能となったが,描画していない内
部節点のデータも同時に編集しなければならない.
そのため,GUI 編集した移動値を内部節点に反映さ
せた.具体的には,移動させた節点のノード番号を
抽出し,同じ断面上の同じ角度内の全節点を距離
毎に比率を変えて加減算した.
6 . 結果及び考察
本研究で作成したプログラムを実行し,NList を読
み込むと図 6-1 のようにウィンドウ内に小さい 4 つの
子ウィンドウが表示される.各ウィンドウはそれぞれ
個別に操作可能で,異なる反応を示す.
前節で述べたようにマウスで節点を移動させると,
選択されたノード番号と変更された内部点がコンソ ー
ル画面に表示される(図 6-2).編集後,節点データ
を ANSYS にエクスポートできる形式でファイルに保
存すると表 6-1 に示すような形式で記録される.編
集前の表 2-1 のデータと比較すると節点の座標が
変化していることが確認できる.
7 . 結言
本研究では,有限要素モデルの 3D 描画と,有限
要素モデルの節点を GUI 編集する機能を開発した.
その結果,これまでの研究[3]に比べ様々な形態の編
集が可能となった.しかし,個体別歯有限要素モデ
ルを構築し,解析するまでには至らなかった.以下
に今後の課題となる事項を挙げる.
● マウス操作における座標変換の拡張
●
リアルタイムの形状変形
●
GUI 操作向上と編集方法の改善
●
編集範囲の拡大と節点情報抽出の改善
●
個体別歯有限要素モデルの実用性の検証
今後,これらの課題を解決することで,患者個別の
有限要素モデルを構築できる完成度の高いプログラ
ムになることを期待する.
参考文献
[1] 高橋麻奈 :やさしい Java,ソフトバンク パブリッシング(東京),
2002
[2] 広内哲夫 :Java3D グラフィックス,セレンディップ(東京),2004
[3] 林祥希,長谷川陽一,森川一:歯科矯正時の個体別歯対応を目
的とした有限要素モデルの編集と解析,日本機械学会北海道学生
会第 35 回学生員卒業研究発表講演会論文集,272-273, 2006