3D-CADの中間ファイルとして、Parasolid/STEP/IGESそしてたまにSTLを使っています。
それぞれに特徴があって適材適所で使い分けています。
STEPとIGESはASCII(テキスト)形式なので、ちょっと数値を変えるというのも簡単に行えます。
描画対象がサーフェスまでならIGES、ソリッドを扱う場合はSTEPという考え方を私は一つの基準にしています。
さて、今回は座標情報から線を引きたい・・・始点/終点の座標ペアが多数あり、それぞれの線分を描くニーズがありました。(座標情報はエクセルファイル)
『IGESファイル』を『新規に作成する』にあたって、作り方(書式)を整理しました。
★既存ファイルの“数値変更”ではなく、新規で記述する必要がありました
プログラムを組むには『D』と『P』が相互に行数をポイントする(指す)部分が面等になりそうな予感がします。。。
IGESファイルの基本構造
- 各行80文字の固定長
- 5つのセクションで構成(スタート/グローバル/ディレクトリ/パラメータ/終了)
- 各行の73文字目のS/G/D/P/Tでセクションを識別
- 識別文字の後ろ(74~80文字目)は、右寄せでセッション内の行数を記述
| セクション | 識別文字 | 主な内容 | 行数 |
|---|---|---|---|
| スタート | S | コメント等 | n行 |
| グローバルデータ | G | 精度・単位等 | n行 |
| ディレクトリエントリ | D | 図形要素の属性情報 | 2行×要素数 |
| パラメータデータ | P | 図形要素の座標等 | n行 |
| 終了(ターミネート) | T | 各セッションの行数 | 1行 |
スタートセッション(S)
1~72文字目を利用してコメント等を記述、73文字目に「S」、74~80行目に右寄せで行番号
comment S 1
グローバルデータセッション(G)
1~72文字目に、CADに関する重要な情報(精度・単位等)をカンマ区切りで記載
文字で指定する項目は、『文字数+「H」+データ』で記述する
例)単位指定:メートル(m)→1HM、ミリメートル(mm)→2HMM
73文字目に「G」、74~80行目に右寄せで行番号
| No. | 項目 | データ例 | 記述例 |
|---|---|---|---|
| 1 | パラメータの区切り文字 | カンマ | 1H, |
| 2 | レコードの区切り文字 | セミコロン | 1H;, |
| 3 | 識別名(受け側) | Test | 4HTest, |
| 4 | ファイル名 | test.iges | 9Htest.iges, |
| 5 | 制作元システムID | H-NET | 5HH-NET, |
| 6 | プリプロセッサバージョン | CAD5 | 4HCAD5, |
| 7 | 整数のビット数 | 32 | 32, |
| 8 | 単精度浮動小数点、範囲 | 75 | 75, |
| 9 | 単精度浮動小数点、精度 | 6 | 6, |
| 10 | 倍精度浮動小数点、範囲 | 75 | 75, |
| 11 | 倍精度浮動小数点、精度 | 15 | 15, |
| 12 | 識別名(送り側) | Test | 4HTest, |
| 13 | モデル空間のスケール | 1 | 1, |
| 14 | 単位フラグ | 2(mm) | 2, |
| 15 | 単位名 | MM | 2HMM, |
| 16 | 線幅の最大段階数 | 1 | 1, |
| 17 | 最大線幅 | 0 | 0, |
| 18 | ファイル作成日時 | 25/7/24 15:23:14 | 13H250724.152314, |
| 19 | 最小ユーザ指定精度 | 1E-5 | 1.0E-005, |
| 20 | モデル空間の最大座標値 | 1000 | 1000, |
| 21 | 作成者名 | , | |
| 22 | 作成者組織 | , | |
| 23 | IGESバージョン | 11 | 11, |
| 24 | 製図標準フラグ | 0 | 0, |
| 25 | プロトコルやコメント | ; |
1H,,1H;,4HTest,9Htest.iges,5HH-NET,4HCAD5,32,75,6,75,15,4HTest, G 1
1,2,2HMM,1,0,13H250724.152314,1.0E-005,1000,,,11,0,; G 2
ディレクトリエントリセッション(D)
1つの要素毎に、8文字ずつの右揃えフィールド×20個(10個×2行)で情報を記述。
⇒各行最後のフィールド(10及び20)は、73文字目に「D」、74~80行目に右寄せで行番号
| No. | 説明 |
|---|---|
| 1 | 要素のタイプ |
| 2 | その要素のパラメータデータを指すポインタ |
| 3 | (構造)※ほとんどの要素で指定できません |
| 4 | 線種 |
| 5 | レイヤー |
| 6 | 表示オプション |
| 7 | 変換マトリックス |
| 8 | ラベル表示の関連付け |
| 9 | ステータス番号 |
| 10 | 行番号(先頭:73文字目に「D」) |
| 11 | 要素のタイプ(No.1と同じ) |
| 12 | 線幅 |
| 13 | 色 |
| 14 | その要素のパラメータデータの行数 |
| 15 | フォーム番号 |
| 16 | (予約:不使用) |
| 17 | (予約:不使用) |
| 18 | 要素のラベル(識別名) |
| 19 | 要素ラベルの添え字番号 |
| 20 | 行番号(先頭:73文字目に「D」) |
110 1 0 1 1 0 1 000000000D 1
110 20 5 1 0 LINE 0D 2
パラメータデータセッション(P)
要素毎に、各々のタイプ応じた幾何情報を記述する。
この時、グローバルデータセッションで指定した『区切り文字』で各項目を区切る。
右揃えで『その要素のディレクトリを指すポインタ』を記述する。
上記を、1~72文字目に収め、データとポインタの情報が混ざらないようにする。
73文字目に「P」、74~80行目に右寄せで行番号
★要素タイプ:直線(110)の例
(※オプションや他のタイプ等は仕様書を参照してください)
| 項目 | データ例 | 記述例 |
|---|---|---|
| 要素のタイプ | 直線 | 110, |
| 始点座標 | (0,0,0) | 0,0,0, |
| 終点座標 | (2,5,10) | 2,5,10; |
110,0,0,0,2,5,10; 1P 1
終了セッション(T)
各セッション記号に続けて、7桁右揃えで行数を記述する。
73文字目に「T」、74~80行目に右寄せで行番号(通常は80文字目に「1」)
S 1G 2D 2P 1 T 1


コメント