異なるCADソフト間で3Dモデルをやり取りする際、最も一般的に利用される形式の一つがSTEPファイルです。正式名称をISO 10303と呼び、コンピュータ支援設計(CAD)における3Dオブジェクトや関連情報を標準的に表現するための国際規格です。この形式を採用することで、特定のソフトウェアに依存せず、設計データの互換性を確保することが可能になります。
技術的な側面から見ると、STEPファイルはISO 10303-21で定義された「クリアテキストエンコーディング」に基づくASCIIテキストファイルです。これは、ISO 10303-11で規定されているEXPRESSというデータモデリング言語で記述されたスキーマに従ってデータを符号化する仕組みを指します。
Key Facts
- 標準規格: ISO(国際標準化機構)によって策定されたISO 10303-21に基づいている。
- 主な拡張子:
.stp、.step(アプリケーションプロトコル用)、.p21(その他の用途)。 - データ形式: 人間が読める形式のASCIIテキストファイルである。
- 汎用性: CADだけでなく、BIM(ビルディング・インフォメーション・モデリング)のIFC規格などでも採用されている。
- 構造: ファイルは大きく分けて「HEADER(ヘッダー)」と「DATA(データ)」の2つのセクションで構成される。
STEPファイルの構造と詳細
HEADERセクション:ファイルの管理情報
ファイルの冒頭にあるHEADERセクションには、データの作成日時や作成者、使用されているスキーマなどのメタデータが格納されています。具体的には、ファイルの説明(FILE_DESCRIPTION)、ファイル名(FILE_NAME)、タイムスタンプ(time_stamp)、作成組織(organization)などが含まれます。また、どのEXPRESSスキーマに従っているかを示すFILE_SCHEMAは、データの正当性を検証するために不可欠な項目です。
DATAセクション:実体データの記述
DATAセクションには、実際の3D形状などのアプリケーションデータが記述されます。各エンティティ(要素)には#123のような一意のインスタンス名が割り当てられ、これを用いて要素間の参照関係を構築します。例えば、ある点(POINT)がどの線(EDGE)に属しているかを、この番号で紐付けます。
データの記述方法には、コンパクトな「内部マッピング(Conformance class 1)」と、より汎用的な「外部マッピング(Conformance class 2)」の2種類がありますが、実務上はほとんどの場合、内部マッピングが使用されています。

データ型の表現方法
STEPファイル内では、データ型に応じて以下のような表記ルールが適用されます。
- 文字列: シングルクォーテーション('...')で囲まれます。
- 論理値:
.TRUE.や.FALSE.のように、ドットで囲まれた大文字で表記されます。 - 未設定値: 値が割り当てられていない場合は
$で表現されます。 - バイナリ値: 16進数でエンコードされ、ダブルクォーテーションで囲まれます。
規格の変遷と進化
ISO 10303-21は、時代の要請に合わせて以下のようにアップデートされてきました。
| エディション | リリース年 | 主な変更点・特徴 |
|---|---|---|
| 第1版 | 1994年 | 初期リリース。一部にバグがあり、後に修正版が提供された。 |
| 第2版 | 2002年 | バグ修正およびデータセクションの拡張が行われた。 |
| 第3版 | 2016年 | UTF-8エンコーディング、デジタル署名、ZIP圧縮アーカイブへの対応を追加。 |
実用上の課題と限界
広く普及しているSTEPファイルですが、いくつかの技術的な課題も指摘されています。まず、仕様書の入手が有料であるため、オープンな開発が難しい点があります。また、データが相互に参照し合う構造であるため、ファイルを先頭から順番に読み込むことができず、一度すべてをメモリに読み込んで解析(トークナイズ)する必要があります。
さらに、ストレージ効率が悪く、単純な色指定や座標変換であっても多くの補助的なエンティティを必要とします。また、同じ形状であっても記述方法が複数存在するため、インポーター(読み込み側)の性能によってデータの再現性が異なり、多くのCADソフトに「インポート後のジオメトリ修復機能」が備わっているのはこのためです。
Frequently Asked Questions
.stpと.stepの違いは何ですか?
基本的にはどちらも同じSTEPファイルを指します。一般的に、STEPアプリケーションプロトコルに準拠したデータには.stpや.stepが使われ、それ以外の目的では.p21が使われることが推奨されていますが、実用上の動作に大きな差はありません。
なぜSTEPファイルは読み込みに時間がかかることがあるのですか?
STEPファイルはエンティティが前後で複雑に参照し合う構造になっているため、ファイル全体をメモリに展開して解析する必要があるからです。ストリーム形式で順次読み込むことができないため、ファイルサイズが大きくなると処理負荷が増大します。
BIM(建築情報モデル)でもSTEPが使われているというのは本当ですか?
はい。建築業界の標準であるIFC(Industry Foundation Classes)は、データ交換のエンコーディング方式としてISO 10303-21(STEP)を採用しています。
STEPファイルで文字化けが発生するのはなぜですか?
古いバージョンのSTEPファイルでは特殊な文字エンコーディングが使用されており、一般的なUnicodeやUTF-8とは異なる処理が必要なためです。最新の第3版(2016年)ではUTF-8がサポートされ、この問題が改善されています。
すべてのCADソフトで完全に互換性がありますか?
いいえ。STEP規格は非常に広範であるため、多くのCADソフトはその一部(サブセット)のみをサポートしています。そのため、ソフトによっては一部の形状が正しく読み込めず、修復作業が必要になる場合があります。
References
- "STEP-file, ISO 10303-21". . 3 January 2017.
- ISO 10303-21:2002 Industrial automation systems and integration -- Product data representation and exchange -- Part 21: Implementation methods: Clear text encoding of the exchange structure
- ISO TC184/SC4 Secretary "Cumulative list of resolutions" Resolution 583 (Stuttgart, Germany, - June 2003) "Registration of SC4 MIME-Types",
- ISO 10303-21:2016. Industrial automation systems and integration -- Product data representation and exchange -- Part 21: Implementation methods: Clear text encoding of the exchange structure