|
IGES(Initial Graphics Exchange Specification)は、3次元CAD/CGソフトやNCマシニング等でよく利用されるCAD中間ファイルで、ANSI(American National Standards Institute)の規格として承認されています。
Version 1.0:ANSI Y14.26M-1981
Version 3.0:ASME/ANSI Y14.26M-1987
Version 4.0:ASME/ANSI Y14.26M-1989
Version 5.0:1990-10 Release
Version 5.1:1991-09 Release
IGESファイルとは?
IGESファイルの構造は以下の図のようになります。
スタートセクション |
グローバルセクション |
ディレクトリエントリセクション |
パラメータデータセクション |
ターミネートセクション |
スタートセクションは、コメント行に相当します。
グローバルセクションは、図面ファイル・システム情報が記述されます。
ディレクトリエントリセクションは、各要素のインデックスや属性情報等が記述されます。
パラメータデータセクションは、要素の具体的なパラメータ情報が記述されます。
ターミネートセクションは、ファイルの終了を示します。
IGESファイルはASCIIテキスト形式になっています。ANSI規格ですので漢字についての規定はありませんが、使用するソフトウェアによって、シフトJISコード、JISコード、EUCコード、Unicode、区点コード、ISO 10646等が利用されると考えられます。安全のため、漢字は出力しないようにするのも1つの手段です。
IGESは、1行80文字(1レコード80カラム)として扱われるFORTRAN式のカード形式になっており、第73カラムには各セクションを示す記号が記述され、第74カラムから第80カラムには、各セクションのシーケンス番号が記述されます。
123... ...777
012 |
7
3 |
77 8
45 0 |
(データ記述部) | C | nnnnnnn |
なお、行(レコード)の最後には通常、改行コードが入りますが、システムによって、CR+LF、CR、LF、改行コード無し、というパターンがありますので、IGES入力ソフトを作成する場合には、注意が必要です。
各セクションは、行(レコード)で管理されますので、各セクション間の区切記号はありません。
スタートセクションには、コメントを記述します。
レコード数は任意です。通常は、タイトル、使用ソフト名、バージョン、会社名、日付、等を記述するようですが、基本的には何でもかまわないです。
出力ソフト:AFxxx/AFsoft | S | 0000001 |
This is Sample Data File. | S | 0000002 |
グローバルセクションには、図面ファイルのシステム情報を記述します。バージョンによってパラメータの数は異なりますので注意が必要です。下記は、現在ごく一般的に利用されているVersion 5.0での例です。(文字はFORTRAN式に記述しますので注意して下さい。)
順序 | タイプ | 内容 | 変換仕様 | 例 |
1 | 文字 | デリミタ文字 | , | 1H, |
2 | 文字 | 終了デリミタ文字 | ; | 1H; |
3 | 文字 | 送信システムの送信ID | 出力ソフト名 | 5HAFxxx |
4 | 文字 | ファイル名 | 8文字 | 6HSample |
5 | 文字 | システムID | ソフト会社名等 | 6HAFsoft |
6 | 文字 | ANSI標準翻訳バージョン | | 4HV5.0 |
7 | 整数 | 整数ビット数 | 整数の精度指定 | 32 |
8 | 整数 | 単精度の指数ビット数 | 単精度 // | 72 |
9 | 整数 | 単精度の仮数ビット数 | // | 6 |
10 | 整数 | 倍精度の指数ビット数 | 倍精度 // | 32 |
11 | 整数 | 倍精度の仮数ビット数 | // | 14 |
12 | 文字 | 受信システム製品ID | | 4H |
13 | 整数 | モデル空間のスケール | 通常は1.0 | 1.0 |
14 | 整数 | 単位フラグ | 1:inch 2:mm | 2 |
15 | 文字 | 単位 | 4HINCH又は2HMM | 2HMM |
16 | 整数 | 線幅の刻み値の最大値 | | 100 |
17 | 実数 | 最大線幅サイズ | | 1.0 |
18 | 文字 | ファイル作成日時 | 13Hyymmdd.hhnnss |
13H000120
.153000 |
19 | 実数 | ユーザの希望最小解像度 | | 1.0D-8 |
20 | 実数 | 最大座標値 | Max(SizeX,SizeY) | 1000.0 |
21 | 文字 | 作成者名 | | 2HAF |
22 | 文字 | 組織名 | | 8H |
23 | 整数 | 参照IGES仕様バージョン | Ver5:8 | 8 |
24 | 整数 | 参照製図規格コード | JIS:7 | 7 |
25 | 文字 | モデル最終作成変更日時 | 13Hyymmdd.hhnnss |
13H000131
.210000 |
上記の例だと、グローバルセクションは以下のようになります。
1H,,1H;,5HAFxxx,6HSample,6HAFsoft,4HV5.0,32,72,6,32,14, | G | 0000001 |
4H ,1.0,2,2HMM,100,1.0,13H000120.153000,1.0D-8, | G | 0000002 |
1000.0,2HAF,8H ,8,7,13H000131.210000; | G | 0000003 |
ディレクトリエントリセクションは、パラメータセクションへの索引、その要素型、層、線種等の属性情報を記述します。1要素につき2レコードで構成され、各レコードは8文字から成る10個のフィールドで記述します。(以下の#は数値、Pは索引番号、#.Pは数値又は索引番号(索引番号の場合は負数))
要素番号
# |
索引番号
P |
IGES ver
#.P |
線種
#.P |
レベル
#.P |
投象図
P |
変換行列
P |
結合要素
P |
Status
# | Dxxxxxxx |
要素番号
# |
線幅
# |
ペン番号
# |
カード数
# |
形式番号
# |
予備
|
予備
|
要素
ラベル |
SubScrpt
# | Dxxxxxxx |
要素番号は、円弧=100、線分=110、点=116、注記=212、等というようになっています。(要素の種類はたくさんありますが、ここでは詳しく説明致しません。)
索引番号は、そのデータの最初のシーケンス番号を記述します。
IGES Verには、具体形要素の場合はその定義要素への索引番号、を指定しますが不要/不明な場合は「0」で構わないでしょう。
線種は、
1:実線、2:破線、3:2点鎖線、
4:1点鎖線、5:点線、
です。
レベルは通常、レイヤ番号に相当します。
投象図は、投象図要素のディレクトリの索引番号又は結合の具体形、を指定しますが不要/不明な場合は「0」で構わないでしょう。
変換行列は、変換行列要素を示すディレクトリの索引番号を記述します。「0」を指定すると、定義空間=モデル空間であり、形式番号が、10:直交座標系、11:円筒座標系、12:極座標系、と指示されます。「0」と指定されない場合もあります。
結合要素は、結合の具体形要素を示すディレクトリへの索引番号、を指定しますが不要/不明な場合は「0」で構わないでしょう。
Statusは、要素の可視性、従属性、要素種別、を表す番号、を指定しますが不要/不明な場合は「00000000」と記述します。
線幅は、グローバルセクションの、「線幅の刻み値の最大値」と「最大線幅サイズ」とここで指定される値を使って定義されます。「0」を指定すると”指定無し”になります。
実際の線幅=このパラメータ×「最大線幅サイズ」
÷「線幅の刻み値の最大値」
ペン番号は通常、色番号に対応します。
1:黒 2:赤 3:緑 4:青
5:黄 6:マゼンダ 7:シアン 8:白
カード数は、このディレクトリ部に対応するパラメータセクションのレコード数を記述します。
形式番号は、図形要素の詳細を決定する番号です。
要素ラベルは、線分なら「line」のように8文字までの注釈を付ける事が出来ます。SubScript番号と一緒に用います。こちらは通常「0」でも構いません。
以下は、線分1要素へのディレクトリエントリの例です。
110 1 0 1 3 0 0 000000000 | D | 0000001 |
110 0 4 2 0 Line 0 | D | 0000002 |
このデータは、線分で、パラメータセクションの1番から始まりレコード数4であり、線種は実線(1)、レイヤは3、線幅は0(指定無し)、色は赤(2)、という意味になります。
ディレクトリエントリセクションで色や線種などの属性を定義した要素の具体的なデータを可変長フォーマットで記述します。
各パラメータは、第1カラムから第64カラムまでを使って記述し、第65カラムから第72カラムまではこの要素のディレクトリエントリへの索引番号を記述します。
データは、グローバルセクションのデリミタ文字(通常は「,」)で区切り、データの最後に、グローバルセクションの終了デリミタ文字(通常は「;」)、を付加します。
直線の例((10,20,30)〜(100,200,300))
(ディレクトリエントリは 0000001)
110,10.0,20.0,30.0, | 0000001 | P | 0000001 |
,100.0,200.0,300.0; | 0000001 | P | 0000002 |
点の例((100,200,300))
(ディレクトリエントリは 0000002)
116,100.0,200.0,300.0,0; | 0000002 | P | 0000003 |
(最後のデータ「0」は、点のシンボル図形が無い事
を示します。もしシンボル図形が存在する場合は、
その図形のディレクトリ部への索引番号が記述され
ます。)
円・円弧の例
円・円弧は、ある平面上にあると想定し、その平面
からの高さ、中心点、開始点、終了点、で表します。
そしてx,y,z直交座標系からその平面への変換行列を
設定し、ディレクトリエントリの変換行列項目に
その変換行列要素への索引番号を指定する事になり
ます。(円は、開始点と終了点が同じになります)
2次元データの場合には、変換行列を単位行列に
しておくと簡単です。
(ソフトによっては、変換行列の項目を「0」に
している場合もあります。)
なお、円弧の作図方向は、開始点から終了点へ
反時計回りとなります。
時計回りに作図したい場合には、変換行列で
逆向きにさせるようにします。
(ディレクトリエントリ)
124 4 0 0 0 0 0 000000000 | D | 0000005 |
124 0 0 1 0 Matrix 0 | D | 0000006 |
100 5 0 1 3 0 5 000000000 | D | 0000007 |
100 0 4 1 0 Arc 0 | D | 0000008 |
(パラメータデータ)
(中心(100,200)半径50の2次元座標での円)
124,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0; | 0000005 | P | 0000004 |
100,0.0,100.0,200.0,150.0,200.0,150.0,200.0; | 0000007 | P | 0000005 |
変換行列は、
R11,R12,R13,T1,R21,R22,R23,T2,R31,R32,R33,T3
の順に並び、これは、
┃X'┃ ┃R11 R12 R13┃ ┃X┃ ┃T1┃
変換後の座標値 ┃Y'┃=┃R21 R22 R23┃ ┃Y┃+┃T2┃
┃Z'┃ ┃R31 R32 R33┃ ┃Z┃ ┃T3┃
を示すものです。
(要素が階層構造になっていて、それに変換行列が
参照されている場合(ネストされている場合)
その変換行列の多重計算を行う必要があります
のでIGES入力機能を作成する場合には注意
が必要です。)
1つのレコードから成り、他の4つのセクションのそれぞれのレコード数を記述します。
S0000002 | G0000003 | D0000550 | P0000800 | | T0000001 |
|
|
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
CADを考える
M7
Jw_cad
|