MATLABデータをSTLファイルに変換したい

今,膝のDICOMデータ(2次元)を用いて一枚一枚重ねてエディターで膝形状モデル(3次元)を作りました(mファイル).作った形状モデルのデータをansysに読み込みたいのですが,直接ansysに読み込めなさそうです.色々調べたら先ず,STLファイルに変換してSOLIDWORKSを通してANSYSに読み込む方法が良いそうなのですが,現在のモデル(mファイル)をSTLファイルに変換する方法はありませんか?あるいはほかに方法があれば教えて頂きたいです.

1 Commento

michio
michio il 4 Dic 2017
Modificato: michio il 4 Dic 2017
関連エントリー:
File Exchange で検索しても使えそうな関数が見つかります。
とはいえ、File Exchangeの入力・出力条件の記載が分かりにくいので難しいですね。 DICOMから、膝形状モデルの点群データを作成するところまではできていると考えてよいですか?

Accedi per commentare.

 Risposta accettata

michio
michio il 5 Dic 2017

2 voti

点群データからのSTL作成サンプルを作ってみたので参考まで紹介します。
File Exchangeの stlwrite 関数を使用しました。事前にダウンロードして下記を実行してみてください。 https://jp.mathworks.com/matlabcentral/fileexchange/20922-stlwrite-filename--varargin-
% サンプルデータ(球体です)
[x1, y1, z1] = sphere(24);
x1 = x1(:);
y1 = y1(:);
z1 = z1(:);
P = [x1 y1 z1];
P = unique(P,'rows');
% alphaShape関数で 3 次元の点で構成される多面体を形成
% 詳細は > doc alphaShape
shp = alphaShape(P,2);
% アルファ形状の境界だけ取り出す
% 詳細は > doc boundaryFacets
[tri, xyz] = boundaryFacets(shp);
% プロット
trisurf(tri,xyz(:,1),xyz(:,2),xyz(:,3),...
'FaceColor','cyan','FaceAlpha',0.3)
% stlwrite 関数で STL に出力
stlwrite('test.stl', tri, xyz);
参考:PDE Toolbox があれば下記で読み込み、メッシュ生成後表示できます。
model = createpde(1);
importGeometry(model,'test.stl');
generateMesh(model)
pdeplot3D(model)

7 Commenti

sentong wang
sentong wang il 6 Dic 2017
ご回答ありがとうございました.今の場合は,イメージの領域分割のtool boxで250枚の膝画像の骨の部分を抽出して,一枚一枚重ねてvolumeになりたいですが,250枚の画像をfor循環に回してbw(400*400*250 logical)になりました.回答して下さいましたように,alphaShape(p,2)のpはdoubleではなければならないです.どうやって変換ですか?教えていただきたいです.
michio
michio il 6 Dic 2017
そういったデータですと、File Exchange の
がそのまま適応できるかと思います。上記URLからダウンロードして Manual_Example.m にサンプルデータを使った例題が用意されています。おそらく
ExportVoxelData(bw);
でとりあえず matlab_mesh.stl ファイルが生成されるかと思いますが、他にもいろんなオプションがあるようですので模索してみてください。
sentong wang
sentong wang il 8 Dic 2017
ご回答ありがとうございました.前言った通りに250枚の画像を重ねてbw(400*400*250)変数になりました.ANSYSで点群を結ぶボリュウームモデルをしか解析できますので,この変数を使用してどうやって点群を結ぶモデルを作りますか?教えていただきたいです.
michio
michio il 8 Dic 2017
上記のExportVoxelDataでは250枚の画像を重ねた変数 bw をそのまま入力して頂けるかと思いますが、出力したSTLファイルはANSYSでの解析には適しませんでしたか?
sentong wang
sentong wang il 8 Dic 2017
すみません,私はちょっと理解できないですので,どうやって入力しますか?詳しく教えていただきたいです.
michio
michio il 8 Dic 2017
からダウンロードできるファイルに Manual_Example.m があります。このファイルにサンプルデータを使った例題が用意されていますので、確認して頂けますか?
sentong wang
sentong wang il 8 Dic 2017
すみません,わかりました.本当にありがとうございました.助かりました.絶対参考します.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!