メインコンテンツ

stlread

STL ファイルから三角形分割を作成します。

説明

TR = stlread(filename) によって返される triangulation オブジェクト TR には、STL ファイルで定義されている三角形が含まれています。

[TR,fileformat,attributes,solidID] = stlread(filename) は、filename のファイル形式、ファイルがバイナリの場合は属性、およびファイルがテキストの場合は立体識別番号も返します。

すべて折りたたむ

ファイル tristltext.stl に含まれているデータから triangulation オブジェクトを作成し、プロットします。

TR = stlread("tristltext.stl");
triplot(TR)

Figure contains an axes object. The axes object contains an object of type line.

STL ファイルからトーラス形状の三角形分割を作成します。

gm = stlread("Torus.stl");

alphaShape を使用して境界ボリュームを作成します。

shp = alphaShape(gm.Points);

結果の形状をプロットします。

plot(shp,EdgeAlpha=0.1)

Figure contains an axes object. The axes object contains an object of type patch.

アルファ形状の体積と表面積を求めます。

vol = volume(shp)
vol = 
1.3880e+03
surfarea = surfaceArea(shp)
surfarea = 
1.0037e+05

alphaShape を使用して境界ボリュームを作成する場合、結果のボリュームは指定したアルファ半径によって異なります。既定のアルファ半径の値を確認します。

shp.Alpha
ans = 
15.0556

アルファ半径を 50 に変更して異なる形状を取得します。

shp.Alpha = 50;
plot(shp,EdgeAlpha=0.1);

Figure contains an axes object. The axes object contains an object of type patch.

このアルファ形状の体積と表面積を求めます。

vol50 = volume(shp)
vol50 = 
1.9130e+05
surfarea50 = surfaceArea(shp)
surfarea50 = 
2.1080e+04

入力引数

すべて折りたたむ

STL ファイル名。文字ベクトルまたはスカラー string として指定します。ファイル名は .stl または .STL の拡張子で終わらなければなりません。ファイルに縮退した三角形が含まれる場合、stlread によって自動的に削除されます。

例: 'stltextfile.stl'

出力引数

すべて折りたたむ

三角形分割。triangulation オブジェクトとして返されます。

ファイル形式。'binary' または 'text' のいずれかとして返されます。

バイナリ属性。uint16 ベクトルとして返されます。入力ファイルがバイナリの場合、attributes には、三角形に関する符号化された情報が含まれます。その長さは三角形分割の三角形の数と等しくなります。その入力ファイルがテキスト ファイルである場合、attributes は空の配列になります。

立体グループ化インデックス。識別番号のベクトルとして返されます。入力ファイルがテキスト ファイルの場合、識別番号によって各三角形が三角形分割内の三角形のグループ化に割り当てられます。入力ファイルがバイナリの場合、solidID にはすべて 1 が含まれます。solidID の長さは、三角形分割の三角形の数と等しくなります。

データ型: double

拡張機能

すべて展開する

スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。

バージョン履歴

R2018b で導入