Standard_Triangulated_Language
[Wikipedia|▼Menu]

STL拡張子.stl
MIMEタイプmodel/stl
開発者スリーディー・システムズ(英語版)
種別3次元データムファイル交換

STLは三次元形状を表現するデータを保存するファイルフォーマットのひとつである。名称の由来は光造形法を意味する光造形法(: Stereolithography)である。Standard Triangulated Language や Standard Tessellation Language の略称とされることもある。

米国のスリーディー・システムズ(英語版)によって開発された三次元CADソフト用のファイルフォーマットとして作られた。3次元形状を扱う多くのソフトにサポートされており、特にラピッドプロトタイピングシステムのファイルフォーマットとしても利用されている。
特徴

三次元形状を構成する小さな三角形要素の集合を記述する。元来は三角形のみで他の多角形や曲線を一切扱わないのが特徴。色やトポロジーデータ(形状同士のつながり)なども含まれない。データ構造が簡単であることからラピッドプロトタイピングの分野では標準フォーマットとなっており、各種ラピッドプロトタイピングシステムで使用可能。

三角形要素は三つの頂点の座標と法線ベクトルにより定義される三角形ポリゴンであり、ファセット(facet)と呼ばれる。

三角要素以外の点や線といった要素、色、面間の連続性、その他の特性の定義については、標準的にはできないが、拡張されたものも存在する。一部のソフトウェアにおいては、バイナリSTLにおいてファセット番号を定義する2バイト分を転用することで、色の指定を行っている場合がある。
データ形式

プレーンテキストで記述されたASCII STL形式と、バイナリSTL形式がある。どちらのファイル形式でも、三角形の法線ベクトル(長さ1の単位ベクトル)と、面の表裏を示すために右手系に従って並んだ三角形の座標データを三角形の数だけ含む。このような冗長性のため、面の表裏は法線ベクトルと各点座標の記述順序(右手系)のどちらでも判別できる。
ASCII形式

ASCII形式は人間が見た時の可読性が高いが、バイナリ形式と比較してファイルサイズが大きくなり、さらにファイル読み書き時の処理に時間がかかる。

書式は非常に単純である。

すべての行は以下の形式を満たす。: キーワード  [半角1文字スペース] データ

最初の行は以下の文で始まる。: solid name

nameはオプションだが、省いた場合にも必ず半角スペースが必要である。このあとに三角形データが続く。: facet normal ni nj nk outer loop vertex v1x v1y v1z vertex v2x v2y v2z vertex v3x v3y v3z endloop endfacet

法線ベクトルは英語でnormal vectorと表記される。ここではfacet normalで三角形の法線ベクトルを意味する。法線ベクトルは大きさ1の単位ベクトルである。三角形の座標(vertex)は反時計回りに回る順番となる。数学上は三角形の座標から法線ベクトルは決定されるのだが(逆に法線ベクトルからは座標はわからない。後述するように法線ベクトルデータが直接扱われることは少ない)、三角形の法線ベクトルも同時に表示する規格となっている。ni - nk とv1x - v3z は、e表記法(例:1.000000e+01 )で表記される。facet normal と outer loop の間のスペースは必要である。法線ベクトルの成分はマイナスを取りえるが、座標の成分はゼロか正値のみである。

ファイルの最後は以下の文で終了する: endsolid name
バイナリ形式

STLにはバイナリー形式も用意されており、ASCIIにくらべファイルサイズが小さく済み、読み書きの際のエンコード/デコードがないぶん高速となる。ファイルサイズの点では、ASCII表示したときに浮動小数点の桁が多いときほど、ASCII形式との差が開き有利となる。ファイル読み書き処理の点では、SSDのような高速ストレージの転送速度を生かすためにはバイナリである必要が生じうる。

バイナリーSTLファイルは80バイトの任意の文字列で開始される(通常内容は無視される。ただし、solid から記載を始めた場合にASCII形式であると誤認識するソフトウェアが存在し、注意を要する)。次に4バイトの整数でファイルに含まれる三角形の枚数が示される。そのあとに、それぞれの三角形のデータが枚数分続くという構造になっている。終了コードはない。最後の三角形のデータがファイルの後端となる。

それぞれの三角形は12個の32ビット浮動小数点で示される。ASCII形式のSTLファイルと同様に、最初に三角形の法線ベクトル(3個)、次に三角形の各座標(3x3=9個)が X/Y/Zの順番で示される。その後2バイトの未使用データが続く。ほとんどのソフトはこの部分を無視するので値はそれぞれゼロである。

浮動小数点の表記方法はIEEE方式(IEEE 754)である。エンディアンは、仕様文書に明示されていないがリトルエンディアンである。UINT8[80] - ヘッダー(任意の文字列)UINT32 - ファイルに含まれる三角形の数
foreach triangle REAL32[3] - 法線ベクトル REAL32[3] - 座標 1 REAL32[3] - 座標 2 REAL32[3] - 座標 3 UINT16 - 未使用データend
法線ベクトルの取り扱い

STLフォーマットの規格では、ASCII形式においてもバイナリ形式においても法線ベクトルは物体の外側を示す単位ベクトルでなくてはならない。特にRPシステムでは法線ベクトルは内外を表示する情報として扱われることがあるため、重要な情報となる。変換ミスで逆になった場合は反転三角としてRP作成時のエラーの原因となる。Magicsなどの各種STL編集ソフトでそのような間違いを修正することができる。一部のソフト(例:SolidWorks)ではシェーディング効果に法線ベクトルを利用する。そのためこのようなソフトでは三角形の面に対する真の法線ベクトルとはならない。
外部リンク

STLファイルフォーマット(個人による日本語メモ) ⇒
[1]

The STL Format - Standard Data Format for Fabbers: ⇒The STL Format

Free STL Viewer for Google Chrome










CADCAMのソフトウェア
オープンソース

BRL-CAD(英語版)

FreeCAD

HeeksCAD(英語版)

KiCad

LibreCAD(英語版)

NaroCAD

OpenSCAD(英語版)

QCad(英語版)

フリーウェア

Jw_cad

シーメンスPLMソフトウェア

Solid Edge 2D Drafting


ダッソー・システムズ

DraftSight(2019年末で無料版は終了)


プロプライエタリ

BricsCAD

DRA-CAD

FastCAD(英語版)

IJCAD

IntelliCAD

IRONCAD

MicroStation

progeCAD(英語版)

PTC

PTC Creo Parametric

Onshape


Rhinoceros 3D

TopSolid

TurboCAD(英語版)

VariCAD

VectorWorks

T-FLEX CAD(英語版)

オートデスク

AutoCAD

Autodesk Inventor

Autodesk Fusion


シーメンスPLMソフトウェア

NX

Solid Edge


ダッソー・システムズ

CATIA

SolidWorks

Edgecam


トヨタシステムズ

Caelum


ファイル形式

BE-Bridge

DWG

DXF

ICS

IGES

IFC

STEP

JT(英語版)

PLY

SXF

STL

Wavefront .obj

ガーバーフォーマット

ODB++

ジオメトリモデリングカーネル(英語版)

Open CASCADE テクノロジー










3Dファイル形式
レガシー

3DCG

Wavefront OBJ形式 (*.obj)

PLY形式 (*.ply)

DirectX .x形式 (*.x)

3D Studio形式 (*.3ds)

Softimage dotXSI形式 (*.xsi)

3D CAD

AutoCAD DXF形式 (*.dxf)

VDA-FS形式 (*.vda)

IGES形式 (*.igs、*.iges)

ラピッドプロトタイピング
及びマルチメディア

3D Systems STL形式 (*.stl)

VRML形式 (*.wrl、*.wrz)

Microsoft XAML形式 (*.xaml)

Shockwave 3D形式 (*.w3d)


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:14 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef