_可視化ソフト CAE Visualizer 2007、進化しつづけるCAEシーンを華麗に演出する汎用ポストの全てをご覧下さい。

 

可視化ソフト CAE Visualizerの開発、販売、 及びWindows用プリ・ポスト(GUI)開発の
Malloc Code株式会社 Since April/2007


STLファイルのフォーマット

  • 概要
  • アスキーフォーマット
    • 構文
    • 解説
    • サンプルファイル
  • バイナリフォーマット
    • 構文
    • 解説
    • サンプル

概要

3D Systems社のSLA CADというソフト用のファイルフォーマットです。
多くの解析ソフトがサポートし、三角形メッシュソリッド表現ファイルフォーマットとして広く使用されています。

記録される3Dモデルデータは、三角形の面法線ベクトルと3つの頂点の座標値です。

三角形の頂点の順番と面の表裏の関係は、右ねじの規則に従います。(三角形の表側は点が半時計周りに回る順番に並びます。)(3つの点の座標値から三角形の面法線ベクトルは求まるはずなのだが、三角形の面法線も記録するフォーマットとなっています。)



STLファイルフォーマットには、アスキーフォーマットとバイナリーフォーマットがあります。

アスキーフォーマット

  • 構文
solid 任意の文字列
facet normal x成分値 y成分値 z成分値
outer loop
vertex x成分値 y成分値 z成分値
vertex x成分値 y成分値 z成分値
vertex x成分値 y成分値 z成分値
endloop
endfacet
facet normal x成分値 y成分値 z成分値
outer loop
vertex x成分値 y成分値 z成分値
vertex x成分値 y成分値 z成分値
vertex x成分値 y成分値 z成分値
endloop
endfacet
(facet normal行〜endfacet行までを1枚の三角形データとして以降くり返し)
.............. .............. .............. endsolid 任意の文字列
  • 解説
上の構文例のように、facet normal行〜endfacet行までを一組とし、1つの三角形を形成しています。
facet normal行は三角形の法線ベクトル成分で、その次には、outer loopの行が、その次には3つのvertexの行が、その次にはendloopの行が、その次にはenndofacetが来ます。 なお、冒頭は、「solid 任意の文字列」 で始まり、終端は、「endsolid 任意の文字列」 で終了する必要があります。
「solid」キーワード行
ソリッド名(任意)を指定します。
キーワードの後には区切り文字をはさんで、ソリッド名が記されます。
通常1つのSTLファイルにsolidキーワード行は1回だけ記されます。
「facet normal」キーワード行
1つの三角形の面法線ベクトルを指定します。
2単語で1キーワード。
2単語の間には1文字分の半角スペースです。
キーワードの後には区切り文字をはさんで、三角形の面法線ベクトルのX成分値 Y成分値 Z成分値が記されます。
「outer loop」キーワード行
2単語で1キーワードです。
2単語の間には1文字分の半角スペースです。
キーワードの後には何も記されません。
「vertex」キーワード行
1つの頂点の頂点座標値を指定します。
キーワードの後には区切り文字をはさんで、三角形の3つの頂点のうちの1つの頂点の頂点座標値のX成分値 Y成分値 Z成分値が記されます。
「endloop」キーワード行
endとloopの間にはスペースをはさまみません。
キーワードの後には何も記されません。
「endfacet」キーワード行
endとfacetの間にはスペースをはさみません。
キーワードの後には何も記されません。
  • サンプルファイル
cube-ascii.stl ( 10x10x10 立方体 )

バイナリフォーマット

  • 構文
バイト数 データ型 データ内容
80 char[ ] 任意の文字列
4 unsigned int 三角形の枚数
- - 1つ目の三角形データ
4 float 三角形の法線ベクトルのX成分値
4 float 三角形の法線ベクトルのY成分値
4 float 三角形の法線ベクトルのZ成分値
4 float 三角形の1点目の頂点のX座標値
4 float 三角形の1点目の頂点のY座標値
4 float 三角形の1点目の頂点のZ座標値
4 float 三角形の2点目の頂点のX座標値
4 float 三角形の2点目の頂点のY座標値
4 float 三角形の2点目の頂点のZ座標値
4 float 三角形の3点目の頂点のX座標値
4 float 三角形の3点目の頂点のY座標値
4 float 三角形の3点目の頂点のZ座標値
2 - 未使用データ
- - 2つ目の三角形データ
4 float 三角形の法線ベクトルのX成分値
4 float 三角形の法線ベクトルのY成分値
4 float 三角形の法線ベクトルのZ成分値
4 float 三角形の1点目の頂点のX座標値
4 float 三角形の1点目の頂点のY座標値
4 float 三角形の1点目の頂点のZ座標値
4 float 三角形の2点目の頂点のX座標値
4 float 三角形の2点目の頂点のY座標値
4 float 三角形の2点目の頂点のZ座標値
4 float 三角形の3点目の頂点のX座標値
4 float 三角形の3点目の頂点のY座標値
4 float 三角形の3点目の頂点のZ座標値
2 - 未使用データ
・・・ - 三角形の法線ベクトルのX成分値から未使用データまでを1枚の三角形データとして
三角形枚数分のデータが続く
  • 解説
最初に80バイト分の任意の文字列があり、次に4バイトで三角形の枚数、次に50バイト(=4*3+4*3+4*3+4*3+2)で1枚の三角形のデータが三角形の枚数分続くという形式になっています。

任意の文字列
任意の文字列で何を記すかに関しては不明です。
ソリッド名、STLファイルを生成したソフト名、ソリッド名とSTLファイルを生成したソフト名、等が記されている場合の他、何も記されていない場合もあります。
三角形の枚数
int型
三角形の法線ベクトルのそれぞれの成分値
float型
三角形の頂点のそれぞれの座標値
float型
  • サンプルファイル

cube-binary.stl ( 10x10x10 立方体 )


©2007 Copyright Malloc Code Corporation. Welcome to this Web site ! since 1/4/2007
Enjoy CAE and Visualization !