<第13回目:’03年12月10日>
qcadを使って図面を入力する準備
qcadについて
qcadはオープンソースの2D−CADシステムです。FreeBSDのパッケージにも入っています。Windows版もあり、AutoCADにはかなわないものの、xfigに比べて以下の点で優れています。
1.スナップ(端点や接続点などが自動的に指定され図面入力を容易にする)機能を使用することで各オブジェクトの配置が容易に行えます。これが一番重要な点です。図面を入力する時には切削する物の外形などをARCやLINE、CIRCLEなどを使って描く必要があります。各オブジェクトを接続していくときにこのスナップ機能が非常に役に立ちます。
2.図面の入力時にはスナップに加えて座標(絶対、相対指定)で指定して各オブジェクトの配置が行えます。座標で入力できると相対座標を使用してスムーズに図面を描いていくことができます。
3.標準ファイルのdxf形式を使用しています。dxfファイルのフォーマットは公開されています。Autodesk社のwebサイトに詳しいドキュメントがあります。
qcadのwebメインページはここです。
日本語の紹介ページ。
日本語のマニュアルのページもあります。
また、xfigではスプライン系が使用できたのですが、qcadでは残念ながら、使用できませんが特に問題にはなりません。
以上のようにqcadを使用することにより、スムーズに図面の入力ができるようになります。
xfigの代わりにqcadを使用してCAMデータを出力するためには以下の作業が必要です。
1.dxfファイルの構造を調べます。
2.dxfファイルを読みこみ、各オブジェクトのパラメータを構造体に入れるプログラムを作成します。
3.上記の構造体から接続されているオブジェクトを見つけて、ブロックを抽出するプログラムを作成します。
4.上記で抽出されたブロックを専用のCAMデータに変換するプログラムを作成します。
ということでdxfファイルの構造を調べてみました。2つのARCと2本のLINE、基準点の赤丸、テキストを入力したテスト図面です。
このdxfファイルは以下のようになります。解りやすいようにコメントと
改行を入れています。
//qcadの出力したdxfファイルのエンティティ部分からARC、LINEを抜粋
ENTITIES //エンティティセクション開始
///////////////ARC始まり(右側のARC)
0
//エンティティ名:ARC
ARC
8
//レイヤ名:CW100
CW100
6
//線種:
CONTINUOUS
10
//センタX:170.0
170.000000
20
//センタY:100.0
100.000000
40
//半径:130.0
130.000000
50
//スタートアングル:
157.380135
51
//エンドアングル:
202.619865
39 //線幅:0
0
6
//線色:0
0
/////////////// ARC終り
/////////////// LINE始まり(上のLINE)
0
LINE
//エンティティ名
8
CW100 //レイヤ名:CW100
6
CONTINUOUS //
線種
10
150.000000 //スタートX:150.0
20
150.000000 //スタートY:150.0
11
50.000000 //エンドX:50.0
21
150.000000 //エンドY:150.0
39
//線幅
0
62
//線色
0
/////////////// LINE終り
上記のように、基本的に2行で1組になっています。
1行目:機能番号
2行目:値
今後の予定としてqcadのdxfファイルを読み込むプログラムを参考にしてdxfファイルを読み込み、動的メモリにデータを読み込むプログラムを作成します。