graffage

絵、音楽、動画、IT、日常の関心事を書いてます。

絵、音楽、動画、IT、日常、興味のあることを徒然書いていきます。

STLファイル

久しぶりにSTLファイルを取り扱ったので備忘録。

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

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

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

 

※hiramine.com様HPより

http://www.hiramine.com/programming/3dmodelfileformat/stlfileformat.html

 

3Dプリンタの取扱い形式でSTLがほとんどと聞いてます。結構使われてるのね。

iPhone上でも簡単にSTLを見られるビューワなるものがあったりと、

自分が学生時代に 扱っていた頃とはだいぶアクセスしやすくなっている印象です。

i3D Viewer

i3D Viewer

  • MeshForm Solutions Inc.
  • ユーティリティ
  • 無料

 

 

 STLファイルはASCII(テキストデータ)、バイナリの2種類がある。

点列から3Dデータを起こしたいという奇特な方はテキストを直接いじることで

3Dデータを手打ちで作れます。

 

 

solid file_name
    facet normal nx1 ny1 nz1  ……①
        outer loop
            vertex x1 y1 z1    ……②
            vertex x2 y2 z12
            vertex x3 y3 z3
        endloop
    endfacet
    facet normal nx2 ny2 nz2
        outer loop
            vertex x4 y4 z4
            vertex x5 y5 z5
            vertex x6 y6 z6
        endloop
    endfacet

    ......

endsolid file_name

 

 

facet normal~endfacetが1枚の三角形データ。

①は法線ベクトルで、②の3点の座標からも求められるが

重複して記録する形式になっている。

具体的な求め方は、単純に②の外積を取れば良いかな。

実際は (x2-x1, y2-y1, z2-z1) × (x3-x1, y3-y1, z3-z1) なりで処理。座標の順番は時計回りの前提です。

 

規格化する必要あるかはよくわからないが、別に法線は(0,0,0)でも

読めるソフトは読めるので、そもそもあまり気にしなくても良いかも。

点列読んでSTL吐き出すコードを前に書いた記憶があるのにどっか行った...(泣)

© graffage 2014-2022. All Rights Reserved.