AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DXFファイル
いろんなソフト間でデータをやり取りする場合、ワープロの場合には、テキストファイルやリッチテキストファイル、表計算やデータベースの場合には、CSVファイル、がよく利用される事は前頁で説明しましたが、ここでは、CADの場合について説明します。
 
CADの場合、特に2次元データの場合は、DXFファイルを使われる事が多いです。DXFとは、オートデスク社が「AutoCAD」の下位バージョンやその他のアプリケーションへのデータ受け渡しのために実現したテキストファイル形式表現です。(バイナリ形式のDXFというのも存在しますが、一般にはほとんど利用されていません)
 
なお、CADの中間ファイル形式では、DXFの他に、
 BMI (バッチモデルインターフェイス;
      MicroCADAM関係で利用される)
 IGES(Initial Graphics Exchange Specification;
      ANSI規格です。3次元ソフトや、マシニング
      関係でよく使われます。)
 PCES(Personal CAD Exchange Specification
      パーソナルコンピュータソフトウェア協会
      PCES協議会で作成されたものです。)
 STEP(ISO 10303の愛称みたいなものです。
      AP203&AP214で組まれる事が多いです。)
等があります。
 
DXFファイルとは?

DXFとは、「Drawing Interchange Format」の略で、一般的構造としては以下の図のようになります。
ヘッダーセクション
テーブルセクション
ブロックセクション
エンティティセクション
END OF FILE

(※R13以降では、クラスセクションとオブジェクトセクション、2000以降では、サムネイルイメージセクションが追加されています)
 
ヘッダーセクションには、AutoCADのシステム変数情報が記述されます。ここに、図面範囲等の図面情報データが記載されています。
テーブルセクションは、さらに、線種テーブル、レイヤーテーブル、スタイルテーブル、等が記載されます。
ブロックセクションは、ブロック図形のデータが記述されます。
エンティティセクションには、各種図面データ情報が記述されます。
 
ここでは説明を簡便にするため、DXF出力をする際の必要事項程度しか書きません。詳細については、AutoCADのマニュアルや、DXF関連書籍を参考にして下さい。
 
ヘッダーセクション

ヘッダーセクションには、通常、AutoCADのシステム変数の情報が記述されますが、自作プログラムでDXF出力する際には、AutoCADのバージョンと図面範囲・図形範囲に気を付ける以外は、AutoCADで出力したヘッダをそのまま切り出してきて付加すれば大抵問題にはなりません。なお、DXFには、図面尺度の指定はありません。
 バージョン情報($ACADVER)
  AC1003 : EX2
  AC1006 : GXV
  AC1009 : GXX/R12/LT R.2
  AC1012 : R13/LT95
  AC1014 : R14/LT97/LT98
  AC1015 : 2000/2000i/2002
        LT2000/LT2000i/LT2002
 図面範囲($LIMMIN:最小座標値 $LIMMAX:最大座標値)
 図形範囲($EXTMIN:最小座標値 $EXTMAX:最大座標値)
__0
SECTION
__2
HEADER
<ヘッダー情報>
__0
ENDSEC

  ヘッダーセクションの例(GXV)
  (簡単な出力であればGXVで十分です)
 
テーブルセクション

テーブルセクションでは、線種テーブル(LTYPE)、レイヤーテーブル(LAYER)、スタイルテーブル(STYLE)、等が記述されます。このほかにもVIEW等がありますが無くてもCADでDXF入力する事は出来ます。
__0
SECTION
__2
TABLES
<線種テーブル情報>
<レイヤーテーブル情報>
<スタイルテーブル情報>
__0
ENDSEC

線種テーブルは、利用する線種情報を定義します。一般的なCADでは、
  実線(CONTINUOUS)
  破線(DASHED)
  短い破線(隠れ線という意味合いで、HIDDEN)
  点線(DOT)
  一点鎖線(CENTER)
  二点鎖線(PHANTOM)
の6種類をサポートしていればほとんど問題ありません。
  線種テーブルの例(上記6種類)
 
レイヤーテーブルは、利用するレイヤーの数の分だけ、レイヤーのデフォルト情報を合わせて定義します。AutoCADでは、レイヤーの数はメモリの許す限りいくらでも登録出来ますが、他のCADでは、16個までだったり、256個までだったり、と制限がある事が多いですので注意が必要です。
__0
TABLE
__2
LAYER
_70
_____1   ←利用するレイヤーの数
__0
LAYER
__2
0      ←レイヤー名(レイヤー名は「0」)
_70
_____0   ←フラグ 通常は「0」で良いです
_62
_____7   ←デフォルト色(白色)
__6
CONTINUOUS ←デフォルト線種(実線)
__0
ENDTAB

  レイヤーテーブルの例(レイヤーが3つの場合)
 
スタイルテーブルは、利用する文字列のスタイルの数の分だけ、スタイルのデフォルト情報を合わせて定義します。通常は、1つだけ定義しておいて、文字高さ等は文字列要素のパラメータとして指定するのが簡単です。
  スタイルテーブルの例
  (漢字の場合にはEXTFONTを利用します)
 
ブロックセクション

ブロックセクションには、ブロック図形を記述します。ただしブロック図形をサポートするのは簡単ではありませんので、ここでは省略します。ブロックセクションを省略しても問題なくCADでDXF入力可能です。
__0
SECTION
__2
BLOCKS
<ブロック図形情報>
__0
ENDSEC

 
エンティティセクション

エンティティセクションには、図面データ(各種図形要素)を記述します。直線要素(LINE)、円要素(CIRCLE)、円弧(ARC)、点(POINT)、文字列(TEXT)等があります。この他にもありますが、簡単にDXF出力する分には、この5要素を取りあえず出力出来れば問題は無いでしょう。
__0
SECTION
__2
ENTITIES
<図面データ情報>
__0
ENDSEC

レイヤー名は、上記のレイヤーテーブルで定義されているレイヤー名から、線種名は、上記の線種テーブルで定義されている線種名から、選択されます。色番号は、基本色である7色を使います。(最近のものは256色も可能ですが、古いバージョンでは使えません。7色だけにしておくのが安全です。) 色番号、線種名の指定は、使用するレイヤーのデフォルト色、デフォルト線種と同じである場合には指定する必要はありません。各座標値は、通常、mmで、実寸(尺度を掛けない値)で指定します。
色番号

  (背景が白色の場合は、7番は黒色になります)
 
直線(LINE)
  直線(100,200)〜(300,400)の例です。
  青色、一点鎖線です。
__0
LINE
__8
0       ←レイヤー名
_62
_____5    ←色番号
__6
CENTER    ←線種名
_10
100.0     ←開始点x座標値
_20
200.0     ←開始点y座標値
_11
300.0     ←終了点x座標値
_21
400.0     ←終了点y座標値
__0
ENDSEC

  色、線種がデフォルトと同じである場合、
  色と線種の指定が省略出来ます。
__0
LINE
__8
0       ←レイヤー名
_10
100.0     ←開始点x座標値
_20
200.0     ←開始点y座標値
_11
300.0     ←終了点x座標値
_21
400.0     ←終了点y座標値
__0
ENDSEC

円(CIRCLE)
__0
CIRCLE
__8
0       ←レイヤー名
_10
100.0     ←中心点x座標値
_20
200.0     ←中心点y座標値
_40
50.0     ←半径
__0
ENDSEC

円弧(ARC)
__0
ARC
__8
0       ←レイヤー名
_10
100.0     ←中心点x座標値
_20
200.0     ←中心点y座標値
_40
100.0     ←半径
_50
45.0     ←開始角度(°)
_51
300.0     ←終了角度(°)
__0
ENDSEC

  角度は、水平プラス方向を0°として、
  反時計回りでの値となります。
点(POINT)
__0
POINT
__8
0       ←レイヤー名
_10
300.0     ←描画点x座標値
_20
400.0     ←描画点y座標値
__0
ENDSEC

文字列(TEXT)
  文字列は、文字位置合わせモードがいくつかあり、
  それをフラグとして指定します。以下は、通常の、
  左・下(基準線)合わせでの出力です。
__0
TEXT
__8
0       ←レイヤー名
_10
100.0     ←挿入点x座標値
_20
200.0     ←挿入点y座標値
_40
3.5      ←文字高さ
__1
THIS IS TEST. ←作図文字列内容
_50
30.5     ←文字の回転角度(°)
_41
1.2      ←X方向の相対尺度
__0   (各文字が横に1.2倍になります)
ENDSEC

  文字の回転角度が0°の場合は、省略可能です。
  X方向の相対尺度が1の場合は、省略可能です。
  この他、文字スタイルがSTANDARDでない場合には、
  その指定が必要です。
  文字を傾斜させる場合には、その指定が必要です。
  以下は、2点を指定しその2点間にちょうど文字を
  収める出力の仕方です。
__0
TEXT
__8
0       ←レイヤー名
_10
100.0     ←第1(開始)点x座標値
_20
200.0     ←第1(開始)点y座標値
_40
3.5      ←文字高さ
__1
THIS IS TEST. ←作図文字列内容
_11
300.0     ←第2(終了)点x座標値
_21
400.0     ←第2(終了)点y座標値
_72
_____5    ←横方向位置合わせ
__0        (フィット)
ENDSEC

  文字の回転角度、X方向の相対尺度は、指定しなく
  てもAutoCADでは自動的に計算されます。
  AutoCADでは、文字の幅が文字毎に異なる場合があり、
  また、日本製CADによくある「文字間隔」の
  パラメータがないため、文字のピッチ合わせで
  ずれてしまう場合があり、例えば通常のモードだと、
  表から文字がはみ出てしまったりする場合があります。
  そういう場合にはこのフィットモードを使うと良い
  でしょう。DXF入力するCAD側で調整してくれる
  と期待出来ますので、文字を表などからはみ出させ
  たくない場合に利用します。
 
END OF FILE (ファイルの終わり)

上記のデータの最後に、ファイルの終了の印が付加されます。
__0 
EOF 

 
 
※もっと詳しくDXFファイルについて知りたい場合は、AutoCADのマニュアルか、又は、
「DXFハンドブック」(落合重紀著;オーム社)
等を参考にして下さい。
 
 
※上記説明でのDXFコードでは、半角空白の代わりに白色の「_」(下線)を利用して記述していますが、実際に使う場合には半角空白を記述して下さい。ブラウザが半角空白を表示しないための措置です。
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
CADを考える
M7
Jw_cad
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015 By AFsoft All Rights Reserved.