個体別歯有限要素モデル構築 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
© Copyright 2024 ExpyDoc