STLファイルの読み書き(訳)

オリジナルのポスト:https://www.wavemetrics.com/forum/general/read-or-load-stl-files

STL ファイル形式には主に2つのバリエーションが存在します:ASCII 形式とバイナリ形式です。どちらの形式も、3D オブジェクトを三角形の集合として表現できます。各三角形は単位法線ベクトルと3つの頂点によって定義されます。STL仕様に関する追加の詳細と歴史的背景は以下で確認できます:

https://en.wikipedia.org/wiki/STL_(file_format)

STL ファイルリーダーは、三角形とその単位法線双方のウェーブを生成できます。STL 形式はスケール情報や表面特性を保存しません。リーダーは単に三角形と法線をトリプレットウェーブとして読み込みます。Gizmo での表示を目的とする場合、Gizmo が法線を動的に計算するため、法線ウェーブを保持する必要はありません。ファイルから読み込まれた法線データは、全ての三角形が一貫した巻き方向規則に従っていることを検証する目的でのみ使われます。この検証後、対応する法線データは破棄可能です。

Gizmo で三角形データを表示するのは簡単です。例えば:

AppendToGizmo Surface=root:twoSolidAscii_stl:mesh_0, name=surface0
ModifyGizmo ModifyObject=surface0, objectType=surface, property={srcMode, 1}
ModifyGizmo ModifyObject=surface0, objectType=surface, property={surfaceCTab, Rainbow}

三角形ウェーブは、BoundingBallConvexHull などのコマンドでも直接使うことができます。

添付ファイルには、例として、2つのボックスオブジェクトを含む最小限のASCII STL ファイルと、読み込みプロシージャを示す Igor エクスペリメント、Gizmo 可視化が含まれています。

コメントや質問はサポートまでお送りください:support@wavemetrics.com

サンプルデータ:https://www.wavemetrics.com/sites/default/files/2026-01/twoSolidAscii_0.zip (475 bytes)

エクスペリメント:https://www.wavemetrics.com/sites/default/files/2026-01/stlReader_0.pxp (66.99 KB)