4. データを変換する(Eagle+CNCによる基盤作成)

作成されたデータは、部品実装面から見たデータです。これを、削りだすに は反転の必要があり、さらに他にも細かい調整が必要です。CAMソフトがあれば 簡単にできるのですが、わたしはCAMソフトをもっていません。 そこで、Perlをつかって、G-CODEの反転、原点の変更、単位の変換、送り速 度、切り込み深さなどの変換しています。 >ULPを修正すればいいのですが、元のulpの著作権がどうなっているかわから ないため、別プログラムにしました。それと、いろんな変換(ツールパスのソー ティングなど)をしたいと思っていますが、ulpで書くよりperlで書いた方 が早いので。

このPerlスクリプトを公開しようと思っていますが、現在大幅に改造中で、 いつになったら公開できるかわからない状況です。そこで、perlを使ってお手軽 に変換できる簡易機能版perlスクリプトを公開します。

 

この、簡易版perlスクリプトは、以下を行います。

  1. G-CODEの反転

    半田面(基盤の裏側)から見たデータに変更します。

  2. 原点の移動

  3. 単位をインチ系から、ミリ系に変更

    ulpが出力するG-CODEは、インチ単位系で出力されています。mach1で は問題ないのですが、NCVCが対応していないので、ミリ単位系に変換しま す。

  4. 送り速度

    ulpは、送り速度さを変更することができません。任意の値に変更でき るようにしています。

切り込み深さや、移動時の高さ調節は、ulpのデフォルト値を変更してください。

4.1 スクリプトのインストール

スクリプトは、たいしたことをしていない、非常に簡単なスクリプトです。 このスクリプトは、eagleから出力されたG-CODEのみで確認しています。汎用に は使えないと思います。

perlのスクリプトファイルを作るのではなく、Windowsのバッチファイルとして perlを(-p -eオプションで)直接呼び出すようにしています。 以下の"@"から始まる一行を、コピー&ペーストし、二つのバッチファイルを作ってください。

ncdmirror.bat (ドリルデータの変換用バッチファイル)

@perl -p -e "s/X([\-\+\.\d]+)/sprintf(\"X%%4.4f\",(%1+($1)))/ge;s/Y([\-\+\.\d]+)/sprintf(\"Y%%4.4f\",(%2-$1))/ge;s/Z([\-\+\.\d]+)/sprintf(\"Z%% 4.4f\",($1+0.0))/ge;"

inch2mm.bat (アウトライン切削データの変換用バッチファイル)

@perl -p -e "s/X([\-\+\.\d]+)/sprintf(\"X%%4.4f\",(%1+($1)*25.4))/ge;s/Y([\-\+\.\d]+)/sprintf(\"Y%%4.4f\",(%2-$1*25.4))/ge;s/Z([\-\+\.\d]+)/sprintf(\"Z%%4.4f\",($1+0.0)*25.4)/ge;s/F1\s*$/F%3\n/;s/F10\s*$/F%4\n/;s/G20//;"

メモ帳を開き、上記の"@"から始まる一行を、コピー&ペーストします。次にこ れを、それぞれ"ncdmirror.bat"、"inch2mm.bat"という名前でPATHの通ったディ レクトリに保存します。このとき、「ファイルの種類」を「すべてのファイル」 にしてください。

inch2mm.batファイルの保存

注:PATHの通ったディレクトリとは、環境変数「PATH」に列挙されているディ レクトリのことです。Windows TIPS -- HINT: 環境変数を変更するを参照し、バッチファイルの保存先にPATHに、バッチファ イルの保存先を追加してください。例えば、PATHの変数値が 「C:\Perl\bin\;C:\WINDOWS\system32;C:\WINDOWS;」となっていて、保存先が 「C:\CNC」の場合、 「C:\Perl\bin\;C:\WINDOWS\system32;C:\WINDOWS;c:\CNC」としてくだ さい。

4.2 ドリルデータの変換

コマンドプロンプトを開き、ドリルデータを出力したディレクトリ(通常は Eagleのプロジェクトディレクトリ)に移動し、以下のように入力します。

ncdmirror.bat 0.5 70.0 <dcsupply-1.ncd >bot1.ncd

各々の意味は、以下のとおりです。

ncdmirror.bat
先ほど保存したバッチファイルを指定します。
0.5
X軸に対するオフセットを、mmで指定します。0.0でもかまいません。
70.0
Y軸に対するオフセットで、基盤のY軸のサイズ+αをmmで指定します。0.0を指 定すると、原点が通常と反対の位置、プロクソンCNCの通常の設定だと、 奥側になります。
<dcsupply-1.ncd
ulpで生成した、ドリルデータのファイル名を指 定します。"<"は、「指定したファイルから読み込め」という意味で、 「標準入力のリダイレクト」と呼びます。
>bot1.ncd
変換後データの出力先ファイル名を指定します。">"は、「指定したファ イルから読み込め」という意味で、「標準出力のリダイレクト」と呼びま す。

パラメータをいろいろ変更してみて、NCVCで参照すると、何が起こっているか わかると思います。

4.3 アウトライン切削データの変換

以下のように入力します。

inch2mm.bat 0.5 70.0 25 250 <dcsupply-1_bot.ncd >bot2.ncd

各々の意味は、以下のとおりです。

inch2mm.bat
先ほど保存したバッチファイルを指定します。
0.5
X軸に対するオフセットを、mmで指定します。必ず、ncdmirror.batで指定 した値と同じにして下さい。違うと、ドリルの穴と、パターンがずれてし まいます。
70.0
Y軸に対するオフセットで、基盤のY軸のサイズ+αをmmで指定します。必ず、 ncdmirror.batで指定した値と同じにして下さい。違うと、ドリルの穴と、 パターンがずれてしまいます。
25
エンドミルを下げるときの送りの速さを、mm/分で指定します。 紙フェノール基盤の場合、私はいつもF25(mm/分)にしています。
250
エンドミルで切削するときの、送りの速さを、mm/分で指定します。 紙フェノール基盤の場合、私はいつもF250(mm/分)にしています。
<dcsupply-1_bot.ncd
ulpで生成した、アウトランデータのファイル名を指 定します。
>bot2.ncd
変換後データの出力先ファイル名を指定します。ncdmirror.batで生成した ファイルを、上書きしないように、気をつけましょう。

4.4 切り出しデータの生成 update 2004/06/06

ここでは、プリント基板を、目的の大きさに切り出すためのG-CODEを生成する Perlスクリプトを紹介します。

ここからダウンロードし、 「boardOutline.pl」という名前で、パスの通ったディレクトリに保存してく ださい。 使い方は、以下の通りです

boardOutline.pl --xstart=0 --ystart=0 --xend=80 --yend=70 --depth=1.60 --diag=1.0 >bot3.ncd
--xstart=0
切り出す際のX軸の開始位置を指定します。
--start=0
切り出す際のX軸の開始位置を指定します。
--xend=80
切り出す際のX軸の終了位置を指定します。
--yend=70.0
切り出す際のX軸の終了位置を指定します。
--depth=1.60
切り出す深さを指定します。
--diag=1.0
切り出に使うエンドミルの太さを指定します。
>bot3.ncd
生成された「切り出しデータ」を保存する出力先ファイル名を指定します。 他のファイルを、上書きしないように、気をつけましょう。

そのほかのパラメータもあります。詳しくは、ソースを見てください。

切り出しデータの例

4.5 バッチファイル

以上の処理を、バッチファイルに作成しておくと便利です。 パラメータを間違える心配も減ります。
set FILEHEAD=Controller
call ncdmirror.bat 0.0 65 <%FILEHEAD%.ncd >bot1.ncd
call inch2mm.bat   0.0 65 25 250 <%FILEHEAD%_bot.ncd >bot2.ncd
boardOutline.pl --xstart=0 --ystart=0 --xend=80 --yend=65 >bot3.ncd

4.46 NCVCで確認

作成されたG-CODEは、NCVCで確認します。形状を確認するのも重要ですが、原点 の位置と、「矩形情報」の最大加工範囲を必ず確認してください。これは、基盤 固定後の原点位置の調整に影響します。
目次ページに戻る Topページに戻る
ご意見、ご感想等は、
nknk290854@yahoo.co.jp
までお願 いします。