(Translated by https://www.hiragana.jp/)
Standard Triangulated Language - Wikipedia

Standard Triangulated Language

ファイル形式けいしき

STLさん次元じげん形状けいじょう表現ひょうげんするデータを保存ほぞんするファイルフォーマットのひとつである。名称めいしょう由来ゆらいひかり造形ぞうけいほう意味いみするひかり造形ぞうけいほう(えい: Stereolithography)である。Standard Triangulated LanguageStandard Tessellation Language略称りゃくしょうとされることもある。

STL
拡張子かくちょうし.stl
MIMEタイプmodel/stl
開発かいはつしゃスリーディー・システムズ英語えいごばん
種別しゅべつ次元じげんデータムファイル交換こうかん

米国べいこくスリーディー・システムズ英語えいごばんによって開発かいはつされたさん次元じげん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 normalouter 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)ではシェーディング効果こうか法線ほうせんベクトルを利用りようする。そのためこのようなソフトでは三角形さんかっけいめんたいするしん法線ほうせんベクトルとはならない。

外部がいぶリンク

編集へんしゅう