Vol.022 プリント基板の達人 CiCAM特集

2005/08/04

< 第3回 >
円弧が化けたりフラッシュが発生する理由

よくデータが化けるという言葉を耳にします。
この最も大き原因は、コードの省略機能に有ります。
以下の例を見てください。
例1)正しいガーバーデータ
D10*
X100Y100D02*
X200Y100D01*
X200Y200D01*

このデータを省略すると
例2) 省略された正しいガーバーデータ
D10*
X100Y100D02*
X200D01* ←前のブロックと同じ為、Y100は省略されています。
Y200* ←前のブロックと同じ為、X200 D01は省略されています。

ガーバー編集システムではこの省略方法の解釈が各社システムで異なる為に
変な描画になったりします。
勿論正しく省略されれば問題ありません。
ガーバーの用語で省略なしは「モーダル」、
省略するは「ノンモーダル」といいます。

実際に問題になるデータの説明をしましょう。
以下はよくある間違ったデータの例です。例1)と同じ図形を記述しています。
例3)
D10*
D02* ← X0Y0D02* と解釈します
X100Y100*    ← X100Y100D02* と解釈します
D01* ← X100Y100D01* と解釈し、長さ0のデータ
X200Y100* ← X200Y100D01* と解釈
D01* ← X200Y100D01* と解釈し、長さ0のデータ
X200Y200* ← X200Y200D01* と解釈

長さ0のデータがCiCAMではフラッシュになって現れます。
★ あちこちにフラッシュが発生する場合は、「長さゼロの直線を無視」に
設定して読み込んで下さい。
勿論、最もよい方法は正しいガーバーフォーマットで出力すことです。
変換プログラムも作成中ですが、もう少し完成度が上がり次第、Web上で
公開させて頂きます。

以下いくつか間違った例をご紹介します。
例4)D02コードのみ省略型
D02*
X100Y100*D03* ← X100Y100D02*X100Y100D03* と解釈します。
X200Y200*D03* ← X200Y200D03*X200Y200D03* と解釈し、フラッシュ
                          が2重に発生します。
例5)不要EOB型
D02*
X100Y100*D01* ← X100Y100D02*X100Y100D01* と解釈します。
X200Y200*D01* ← X200Y200D01*X200Y200D01* と解釈し、フラッシュ
                          が2重に発生します。

●円弧が化ける
Gerberの書式には 全円(Full又は360°)と1/4円(Quad)が有ります。
CiCAMにも読み込みフォーマットで □1/4円弧 のスイッチが有ります。
このフォーマットについて以下説明します。
★ 全円補間
X100Y100D02* ←シャッターを閉じて移動。始点になります。
G03X100Y100I-2J-3D01* ←終点が同じですので全円になります。
半径は始点から見た座標です。

G03の行を見てください。中心は X100-I2=X98 Y100-J3=Y97 になります。
X98,Y97 を中心にG03方向(反時計)に始点X100Y100から円を書けという
  命令になります。
全円フォーマットでは、始点終点の座標が同じであれば円、異なって
いれば円弧と判断します。
のコードではG75になります。
 このコードが出てくればCiCAMは自動的に全円であると判断します。
  一般的にはG75は省略されます。

★ 1/4円補間
IJコードにマイナス符号は付きません。
  プログラムが中心方向を判断します。
1つの円を4つ象限で表現することから1/4円補間といいます。
  円弧は始点→終点の変化で象限が判断できます。
X100Y100D02* ←シャッターを閉じて移動。始点になります。
G02X105Y95I5J5D01* ←半径には符号は付きません。

  時計廻りでXが増加するのは 1象限又は2象限です。
  時計廻りでYが減るのは1象限又は4象限ですので、この円弧は第1象限に
あると判断します。
GerberのコードではG74になります。このコードが出てくればCiCAMは
自動的に1/4円であると判断します。一般的にはG74は省略されます。


第2象限 | 第1象限
|
―――+―――
|
第3象限 | 第4象限


古い話になりますが、円の表現が米国では 1/4円が常識で日本では全円が
常識の時代があり、読み込むとよく化けました。

★ どの様に化けるのか
半径を表現しているIJに符号が無いのが1/4円補間ですから、全円と1/4円
を間違って読むと円の中心方向が反対に行った図形になります。
矩形の角にRが付いた図形は角にこぶが出来た様な図形になります。
この場合は、円弧補間を変更して読んで下さい。
但しG02の場合、第2象限のデータは全円モードで読み込んでも化けません。

★ 桁落ちによる化け
半径が 1μ以下の図形を作ってしまい、書式を小数3以下で出力したガーバー
データを読み込むと円弧が円になってしまうCADが有ります。
Gerberデータの中では小数点は有りませんから、半径0.5μは0になって
しまいます。
殆ど正しく読めるのに変な所に円が発生するのはこの桁落ちが原因です。
CiCAMでは半径が桁落ちする場合、直線に変換されます。

円弧を周辺の図形から自動判断する方法をCiCAMに組み込む為にロジックを
考案中ですがうまい方法が無くて実現できていません。
実現次第更新しますのでお楽しみにお待ち下さい。

●CiCAMの現在バージョン
バージョンをご確認下さい。V-1.73.48が最新です。
自動バージョンアップで対応できない場合は、Webより更新プログラムを
ダウンロードして更新して下さい。
サーバーを変更した為に旧プログラムでは自動更新できなくなっています。
変更案内は下記へ載せています。

http://www.cadpro.co.jp/download/download.html