ステレolithography STL (.stl)
3D 標準Standard Triangle Language (STL、別名: Stereolithography) は、3Dプリントおよびラピッドプロトタイピング業界において普遍的かつ不可欠なフォーマットであり、未加工の三角形ファセットを使用してソリッド3Dオブジェクトの表面ジオメトリを記述します。
OBJ を STL に変換
無料のブラウザ内 OBJ から STL へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで STL ファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリバイトシーケンスを検査することで STL ファイルを識別します:
16進数シグネチャ (オフセット 0):
73 6F 6C 69 64ASCII表現: solid
標準化: 3D Systems Stereolithography Specification
技術仕様
| コンテナアーキテクチャ | ASCII format (starting with 'solid') or Binary format (80-byte header + 32-bit triangle count + 50-byte facet records) |
| 圧縮 | Uncompressed raw triangular facets |
| バイトエンディアン | Little-Endian (Intel x86) for binary STL |
| 色空間 | None (monochrome geometry; proprietary VisCAM/Magics color hacks exist) |
| チャンネルと構造 | Triangular facets: surface normal vector (I, J, K) and three vertex coordinates (X, Y, Z) |
| 最大寸法 | Unbounded 3D physical coordinates (typically measured in millimeters) |
| 透過性 | None (solid physical objects) |
| ストリーミングとプログレッシブ | Sequential facet streaming allows continuous slice-by-slice slicing |
技術比較マトリックス: STL 対 競合製品
| 技術属性 | STL (現在) | OBJ | 3MF | STEP |
|---|---|---|---|---|
| 3Dプリントスライサーの採用 | 100%普遍的な標準 | 普遍的なサポート | 最新の後継標準 | CADエンジニアリング標準 |
| 色とテクスチャのサポート | なし (純粋な表面ジオメトリ) | 完全なUVテクスチャマッピング | フルカラー、素材、マルチエクストルーダー | パラメトリックなソリッドカラー |
| ファセット構造 | 独立した三角形ファセット | 接続された頂点共有メッシュ | 頂点共有インデックス付きメッシュ | 正確なパラメトリック曲線 (NURBS) |
| 単位の定義 | 無単位 (ミリメートルを想定) | 無単位 (メートル/ミリメートルを想定) | 明示的な単位 (mm、cm、インチ) | 明示的なエンジニアリング単位 |
一般的な破損モードと16進数リカバリガイド
3Dスライサーに「モデルがマニホールドではありません / 非マニホールドエッジが含まれています」と表示される。
根本原因: 三角形メッシュの穴、自己交差する三角形、または反転した表面法線。
復旧: File2File 3Dメッシュ修復ツールまたはNetfabbを使用して、メッシュを水密にします。
セキュリティ分析とパーサー攻撃ベクトル
バイナリSTLパーサーは32ビットの三角形数を評価するため、整数オーバーフローにより小さなヒープ割り当てや範囲外書き込みを引き起こす可能性があります。
既知の攻撃ベクター
- triangle_count * 50 バイトのメモリ割り当て時の整数オーバーフロー。
- 実際のファイルサイズが宣言された三角形数よりも小さい場合のバッファ読み取り超過。
- マルチギガバイトの三角形割り当てによるサービス拒否。
防御的ベストプラクティス:
歴史的背景とマイルストーン
主な利点とメリット
- 3Dプリントにおける揺るぎないグローバル標準:すべてのスライサー (PrusaSlicer、Cura、Bambu Studio) およびCAMソフトウェアの100%でサポートされています。
- バイナリフォーマットがシンプルでコンパクト:正確に84バイトのヘッダーと、三角形ファセットあたり50バイトで構成されています。
- 積層造形ツールパスの生成に必要な、水密性のある表面境界を直接表現できます。
技術的な制限とデメリット
- 色、素材、テクスチャのサポートがゼロ:フルカラーの3Dプリントをネイティブで表現できません。
- 曲面は数千の平らな平面三角形で近似する必要があり、ポリゴン数が高くなります。
- 物理的な測定単位が指定されていません (スライサーはミリメートルまたはインチを前提とする必要があります)。
興味深い技術トリビア
- チャック・ハル氏は1986年に3Dプリンティングの特許を取得し、1987年に3DモデルをSLA-1プリンターに供給するためにSTLフォーマットを作成しました。
- STLファイルには単位メタデータが一切含まれません。「10」という次元のキューブは、スライサーの設定に応じて10ミリメートル、10メートル、または10インチを意味する可能性があります。
- バイナリSTLファイルには任意のテキストを含めることができる80バイトのヘッダーがありますが、「solid」という単語で始まってはなりません。始まると、一部のデコーダーがASCIIファイルと誤認してしまいます。
よくある技術的な質問
どのプログラムでSTLファイルを開くことができますか?
Cura、PrusaSlicer、Bambu Studioなどの3Dプリンタースライサー、Fusion 360やBlenderなどのCADプログラムでSTLファイルを開くか、File2File.appでオンラインで即座に表示できます。
ASCII STLとBinary STLの違いは何ですか?
Binary STLはASCII STLよりもサイズが約5〜6分の一で、読み込みが大幅に高速化されるため、3DプリントにおいてBinary STLが推奨される選択肢となっています。
STLファイルをOBJまたはGLBに変換するにはどうすればよいですか?
ブラウザから直接File2File.appを使用して、STLファイルをテクスチャ付きのOBJモデルやWeb対応のGLBファイルに変換できます。