P板ドットコムCAMプロセッサのドリルデータずれに対応してみる（EAGLE 9.6.2）

# はじめに
先日[P板ドットコム](https://www.p-ban.com "p-ban Home")で基板を発注したのですが，はまったポイントがあったので備忘録をかねてまとめておきます．
ご指摘，お気づきのことがありましたらコメント等いただけたらと思います．



# 環境
CADソフト：EAGLE Ver. 9.6.2
OS：macOS Ventura 13.1
ガーバービューワー：gerbv Ver. 2.8.2




# 公式ガーバーデータ
公式CAMプロセッサは[こちら](https://www.p-ban.com/gerber/eagle.html "p-ban gerb")にあります．
しかし公式通りCAMプロセッサを動かすと以下図のようにボードデータとドリルデータの位置がずれてしまいます．
少しわかりずらいですが，赤丸で囲んだものがボードデータ，黄丸で囲んだものがドリルデータです．

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136274/4de6c4fe-ae93-5f81-cbd0-907839df72be.jpeg" width=80%>

今回はこの問題を防ぐため以下手順でガーバーデータを出力しました．


# 対応方法
#### 1. CAMプロセッサの入手
初めに[こちらのサイト](https://www.p-ban.com/gerber/eagle.html "p-ban gerb")からP板ドットコム公式CAMプロセッサを入手します．
今回は2層基板を発注しますが，2層基板用CAMプロセッサ「gerb274x[2L].cam」は半田面（L2面）シルクデータを出力してくれないため，4層基板用CAMプロセッサ「gerb274x[4L].cam」を使用します．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136274/ab73f4de-ea9a-9b7b-4a15-52d5731cc3d0.jpeg" width=80%>

#### 2. CAMプロセッサの編集
ドリルずれに対応するために公式CAMプロセッサを編集します．
編集対象は「EAGLE」→「cam」に保存されている「gerb274x[4L].cam」です（編集作業前にcamファイルをコピーしてバックアップしておくと安心です）．
テキストファイルを開き，179行目に記載されている「Device="EXCELLON"」をDevice="EXCELLON_24"に書き換えます．
編集終了したらエディタを閉じます．

```
[Sec_10]
Name="Generate Drill Data"
Prompt=""
Device="EXCELLON_24" <----------------- ここを書き換える
Wheel=".whl"
Rack=""
Scale=1.000000
Output=".drd"
Flags="0 0 0 1 0 1 1"
Emulate="0 0 0"
Offset="0.0mil 0.0mil"
Sheet=1
Tolerance="0.000000 0.000000 0.000000 0.000000 0.000000 0.000000"
Pen="0.0mil 0.000000"
Page="12000.0mil 8000.0mil"
Layers=" 44 45"
Colors=" 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 6 6 4 8 8 8 8 8 8 8 8 8 8 8 8 8 4 4 1 1 1 1 3 3 1 2 6 8 8 5 8 8 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 4 2 4 3 6 6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0"
```

#### 3. CAMプロセッサの起動
EAGLEから編集したCAMプロセッサを起動します．場所は「CAM Jobs」→ 「cam」内にあります．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136274/f04c6ef3-f2f9-e5cd-4b90-1af4553ac2f6.jpeg" width=45%>

#### 4. ボードの選択
ガーバーデータを出力したいボードを左下「Select Board」から選択します．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136274/01469378-c116-d313-5f5b-e9d10152ee12.jpeg" width=40%>

#### 5. ファイルの出力
「Process job」で出力先を決めたあとデータ出力をします．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136274/758b3dde-e116-440b-26d0-12a20b14252d.jpeg"
width=50%>
下記警告が出てきますが「YES」で大丈夫です．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136274/a61a5fd1-5e09-b7b1-d346-35bd98af4f2a.jpeg"
width=50%>
データ出力後はCAMプロセッサを閉じます．


#### 6. 出力ファイルの確認
出力されたファイルは以下のようになります．2層基板の場合は2層パターンデータ（.2l），3層パターンデータ（.3l）は使用しないため削除しても大丈夫です．半田面シルクデータ（.pls）は2層基板であっても置いておきます．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136274/57d1f8c7-959c-12cf-a899-754a0c461074.jpeg"
width=35%>

#### 7. ガーバーデータの確認
gerbvでガーバーデータの中身を確認します．ドリルの位置がずれていないことが確認できました（図のオレンジ色がドリルデータ）
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136274/f20b97eb-04a9-45af-01e8-b3e0e8d3c882.jpeg"
width=70%>

#### 8. 製造指示書作成
次に製造指示書をテキストファイルで作成します．以下に例を示します．
```
送付ファイルリスト
your_file_name.cmp（部品面パターン）
your_file_name.plc（部品面シルクデータ）
your_file_name.sol（半田面パターン）
your_file_name.pls（半田面シルクデータ）
your_file_name.stc（部品面レジストデータ）
your_file_name.sts（半田面レジストデータ）
your_file_name.out（外形データ）
your_file_name.drd（ドリルデータ）
your_file_name.dri（ドリルリスト）
your_file_name.gpi（レポートファイル）
```
#### 9. 完成
下記ファイルをまとめたフォルダを圧縮しP板ドットコムに発注すると完了です．
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3136274/d45a95e4-3eb2-28f5-9817-162a8711fd70.jpeg"
width=40%>



# 参考文献
記事を作るにあたって，下記サイトを参考にしました（最終確認日：2023/04/21）．

https://tkamada.blogspot.com/2016/09/resolving-excellon-cam-issue-on-eagle.html