KiCad で異型パッド

FootPrintEditorでは、台形、円、矩形のパッドしか無い。
でもいろいろ作りたいですね。

そんなに難しくないのだけれど、急いでいる時に思い出す時間がもったいないのでまとめ書き。

# LibreOffice Draw で実物大のパッドを描く

![image](https://qiita-image-store.s3.amazonaws.com/0/139524/39c7cc79-80e3-890f-23f8-1d7bbb25f75f.png)

- LibreOffice Drawでなくてもいいのだけれど、Drawは冷遇されているのでここぞとばかりに使おう。
- 実物大じゃなくてもいいのだけれど、わかりやすいので。
- 複数のパッドが必要なときも、まとめて描いておく。

# PNGファイルを作る

描いた図形を選択して、PNG形式でエクスポート。
「選択範囲」のチェックを忘れずに。

![image](https://qiita-image-store.s3.amazonaws.com/0/139524/ebeda9b0-2f52-d222-e74f-4ad7690802c2.png)

デフォルトの解像度でエクスポートすると後で悲しいことになるので高解像度を指定する。
どういうわけかDPI指定が効かないので1cmあたり100pxぐらいに手動で指定。

# フットプリントに変換

KiCadのBitmap2Componentを起動
![image](https://qiita-image-store.s3.amazonaws.com/0/139524/0524e84e-f17b-2407-7626-d4ac6df36057.png)

「Load Bitmap」で先ほどのPNGを読み込みます。

![image](https://qiita-image-store.s3.amazonaws.com/0/139524/85c70922-2352-1272-b140-614a2577b6aa.png)

Resolutionの指定でサイズの辻褄を合わせます。

Pcbnew(.kicad_mod file)を選んでExportします。

# エディターでファイルを書き換え

vimや使い慣れたテキストエディターで先ほどExportしたファイルを書き換えます。


```

(module LOGO (layer F.Cu)
  (at 0 0)
 (fp_text reference "G***" (at 0 0) (layer F.SilkS) hide
  (effects (font (thickness 0.3)))
  )
  (fp_text value "LOGO" (at 0.75 0) (layer F.SilkS) hide
  (effects (font (thickness 0.3)))
  )
  (fp_poly (pts (xy -3.229477 -3.837265) (xy -3.206797 -3.572840) (xy -3.185994 -3.156355) (xy -3.167826 -2.607629) (xy -3.153053 -1.946480) (xy -3.142433 -1.192727) (xy -3.140441 -0.983500) (xy -3.115094 1.962811)
     (xy -2.252452 2.319929) (xy -1.869705 2.473857) (xy -1.547172 2.595224) (xy -1.329904 2.667500) (xy -1.270000 2.680410) (xy -1.230907 2.638919) (xy -1.200685 2.500203) (xy -1.178429 2.246592)
     (xy -1.163237 1.860416) (xy -1.154206 1.324002) (xy -1.150434 0.619681) (xy -1.150188 0.335472) (xy -1.150647 -0.409886) (xy -1.148539 -0.984135) (xy -1.138634 -1.407843) (xy -1.115705 -1.701581)
     (xy -1.074524 -1.885918) (xy -1.009862 -1.981425) (xy -0.916491 -2.008671) (xy -0.789183 -1.988225) (xy -0.622709 -1.940658) (xy -0.575094 -1.927144) (xy -0.335471 -1.860567) (xy -0.287547 0.667132)
     (xy -0.239622 3.194831) (xy 0.718868 3.463384) (xy 1.123747 3.575272) (xy 1.458815 3.664963) (xy 1.681864 3.721329) (xy 1.749246 3.735025) (xy 1.768876 3.644321) (xy 1.786463 3.387519)
     (xy 1.801240 2.990217) (xy 1.812439 2.478010) (xy 1.819293 1.876497) (xy 1.821132 1.337544) (xy 1.821132 -1.063026) (xy 2.180566 -1.002388) (xy 2.383954 -0.972595) (xy 2.543559 -0.945567)
     (xy 2.664642 -0.899935) (xy 2.752463 -0.814326) (xy 2.812283 -0.667369) (xy 2.849363 -0.437692) (xy 2.868963 -0.103925) (xy 2.876344 0.355304) (xy 2.876766 0.961367) (xy 2.875490 1.735634)
     (xy 2.875472 1.820705) (xy 2.875472 4.491133) (xy 2.324340 4.706836) (xy 1.887457 4.827679) (xy 1.322238 4.912620) (xy 0.689095 4.959259) (xy 0.048439 4.965193) (xy -0.539317 4.928020)
     (xy -1.013762 4.845339) (xy -1.032280 4.840287) (xy -1.886131 4.512939) (xy -2.677275 4.019490) (xy -3.338734 3.437321) (xy -3.911375 2.729160) (xy -4.342043 1.917388) (xy -4.626459 1.031767)
     (xy -4.760340 0.102061) (xy -4.739407 -0.841965) (xy -4.559378 -1.770549) (xy -4.215975 -2.653927) (xy -4.215036 -2.655799) (xy -4.014483 -3.016222) (xy -3.787997 -3.363047) (xy -3.565194 -3.657043)
     (xy -3.375691 -3.858978) (xy -3.253275 -3.929811) (xy -3.229477 -3.837265) )(layer F.SilkS) (width  0.010000)
  )
  (fp_poly (pts (xy 0.195496 -4.920150) (xy 1.081334 -4.742918) (xy 1.920605 -4.437358) (xy 2.674294 -4.010724) (xy 3.199701 -3.577001) (xy 3.818259 -2.882072) (xy 4.268009 -2.169809) (xy 4.566441 -1.400309)
     (xy 4.731046 -0.533672) (xy 4.771258 0.008217) (xy 4.777101 0.525528) (xy 4.755678 1.022992) (xy 4.711540 1.465221) (xy 4.649239 1.816828) (xy 4.573325 2.042426) (xy 4.501119 2.108680)
     (xy 4.454222 2.179210) (xy 4.470244 2.252453) (xy 4.463410 2.375411) (xy 4.413655 2.396227) (xy 4.346889 2.454343) (xy 4.361132 2.492076) (xy 4.350353 2.580257) (xy 4.313208 2.587925)
     (xy 4.250703 2.646312) (xy 4.265283 2.683774) (xy 4.254504 2.771955) (xy 4.217359 2.779623) (xy 4.152920 2.836657) (xy 4.165794 2.869581) (xy 4.141256 2.982304) (xy 4.051639 3.058365)
     (xy 3.955117 3.137424) (xy 3.977736 3.161572) (xy 3.994654 3.204123) (xy 3.929812 3.256840) (xy 3.805020 3.372122) (xy 3.783823 3.423108) (xy 3.722228 3.535013) (xy 3.571805 3.719873)
     (xy 3.520239 3.776072) (xy 3.258868 4.053653) (xy 3.247545 2.338336) (xy 3.239772 1.659161) (xy 3.225891 0.929001) (xy 3.207569 0.217412) (xy 3.186477 -0.406047) (xy 3.175658 -0.657806)
     (xy 3.115095 -1.938631) (xy 2.204529 -2.300763) (xy 1.293963 -2.662896) (xy 1.268355 -0.277108) (xy 1.258645 0.376356) (xy 1.244782 0.961467) (xy 1.227799 1.452513) (xy 1.208730 1.823780)
     (xy 1.188607 2.049556) (xy 1.172505 2.108145) (xy 1.042117 2.084160) (xy 0.807312 2.025401) (xy 0.742831 2.007791) (xy 0.383397 1.907971) (xy 0.383397 -3.120742) (xy -0.599056 -3.383160)
     (xy -1.009679 -3.490980) (xy -1.350485 -3.576987) (xy -1.579686 -3.630845) (xy -1.653396 -3.643920) (xy -1.673237 -3.551923) (xy -1.690981 -3.294181) (xy -1.705832 -2.896642) (xy -1.716998 -2.385257)
     (xy -1.723685 -1.785972) (xy -1.725283 -1.293962) (xy -1.725283 1.054340) (xy -2.067056 1.054340) (xy -2.270893 1.054711) (xy -2.431672 1.042292) (xy -2.554491 0.996788) (xy -2.644448 0.897902)
     (xy -2.706644 0.725339) (xy -2.746177 0.458801) (xy -2.768146 0.077992) (xy -2.777650 -0.437383) (xy -2.779789 -1.107621) (xy -2.779622 -1.781969) (xy -2.779622 -4.419835) (xy -2.351273 -4.609315)
     (xy -1.559823 -4.860604) (xy -0.697895 -4.961797) (xy 0.195496 -4.920150) )(layer F.SilkS) (width  0.010000)
  )
)


```

fp_poly の(layer F.SilkS) を(layer F.Cu)に書き換えます。例では2ヶ所です。

ちなみに、以下の箇所は変更しません。
```

 (fp_text reference "G***" (at 0 0) (layer F.SilkS) hide
  (effects (font (thickness 0.3)))
  )
  (fp_text value "LOGO" (at 0.75 0) (layer F.SilkS) hide
  (effects (font (thickness 0.3)))
  )
```

# フットプリントとして手を加える

KiCadのFootprint Editorを起動します。

![image](https://qiita-image-store.s3.amazonaws.com/0/139524/fa974722-8b2d-a175-a641-daeab1f73e87.png)

メニューの「Import footprint」(画像の赤丸)で先ほどのファイルを読み込みます。
![image](https://qiita-image-store.s3.amazonaws.com/0/139524/06e82b78-94f0-144f-0097-d3ee51436e1d.png)

![image](https://qiita-image-store.s3.amazonaws.com/0/139524/d83cf05a-8ca9-78ca-b71a-7bb2454f1210.png)

「Edit」→「Edit properties」でプロパティ値をセットします。

![image](https://qiita-image-store.s3.amazonaws.com/0/139524/4bba69ff-f4ce-170a-575d-1773589efc14.png)

「File」→「Set Active Library」でフットプリントを含めたいライブラリをセットします。

ドーナッツマークを押して配線引き出し部分にパッドを追加、プロパティ値の位置を調整します。

![image](https://qiita-image-store.s3.amazonaws.com/0/139524/54d134af-3130-1c23-8ac6-986a97232da5.png)



Save Footprint in active libralyで保存したらおしまいです。



# 問題発生！

これでOKOK!と思っていたら・・・
![IMG_20170820_175240.jpg](https://qiita-image-store.s3.amazonaws.com/0/139524/d38ea115-6672-e24b-21c6-1c136c5afaab.jpeg)

ソルダーレジストが塗られたままになってしまいました！！　う〜む
仕方なく、紙ヤスリでソルダーレジストを削って辻褄を合わせました。

![IMG_20170819_203417.jpg](https://qiita-image-store.s3.amazonaws.com/0/139524/56dc454d-b7aa-f4ad-f5bf-12bebdafd027.jpeg)

## F.Paste F.Maskを付け加える

先ほど保存した、kicad_modファイルをエディターで開いて、(layer F.Cu)となっているところを(layers F.Cu F.Paste F.Mask)と書き換えます。

 (2018/02/08 追記) layer を layersに変更しないといけません。

以下は書き換えた例です。

```

(module LOGO (layer F.Cu)
  (at 0 0)
 (fp_text reference "G***" (at 0 0) (layer F.SilkS) hide
  (effects (font (thickness 0.3)))
  )
  (fp_text value "LOGO" (at 0.75 0) (layer F.SilkS) hide
  (effects (font (thickness 0.3)))
  )
  (fp_poly (pts (xy -3.229477 -3.837265) (xy -3.206797 -3.572840) (xy -3.185994 -3.156355) (xy -3.167826 -2.607629) (xy -3.153053 -1.946480) (xy -3.142433 -1.192727) (xy -3.140441 -0.983500) (xy -3.115094 1.962811)
     (xy -2.252452 2.319929) (xy -1.869705 2.473857) (xy -1.547172 2.595224) (xy -1.329904 2.667500) (xy -1.270000 2.680410) (xy -1.230907 2.638919) (xy -1.200685 2.500203) (xy -1.178429 2.246592)
     (xy -1.163237 1.860416) (xy -1.154206 1.324002) (xy -1.150434 0.619681) (xy -1.150188 0.335472) (xy -1.150647 -0.409886) (xy -1.148539 -0.984135) (xy -1.138634 -1.407843) (xy -1.115705 -1.701581)
     (xy -1.074524 -1.885918) (xy -1.009862 -1.981425) (xy -0.916491 -2.008671) (xy -0.789183 -1.988225) (xy -0.622709 -1.940658) (xy -0.575094 -1.927144) (xy -0.335471 -1.860567) (xy -0.287547 0.667132)
     (xy -0.239622 3.194831) (xy 0.718868 3.463384) (xy 1.123747 3.575272) (xy 1.458815 3.664963) (xy 1.681864 3.721329) (xy 1.749246 3.735025) (xy 1.768876 3.644321) (xy 1.786463 3.387519)
     (xy 1.801240 2.990217) (xy 1.812439 2.478010) (xy 1.819293 1.876497) (xy 1.821132 1.337544) (xy 1.821132 -1.063026) (xy 2.180566 -1.002388) (xy 2.383954 -0.972595) (xy 2.543559 -0.945567)
     (xy 2.664642 -0.899935) (xy 2.752463 -0.814326) (xy 2.812283 -0.667369) (xy 2.849363 -0.437692) (xy 2.868963 -0.103925) (xy 2.876344 0.355304) (xy 2.876766 0.961367) (xy 2.875490 1.735634)
     (xy 2.875472 1.820705) (xy 2.875472 4.491133) (xy 2.324340 4.706836) (xy 1.887457 4.827679) (xy 1.322238 4.912620) (xy 0.689095 4.959259) (xy 0.048439 4.965193) (xy -0.539317 4.928020)
     (xy -1.013762 4.845339) (xy -1.032280 4.840287) (xy -1.886131 4.512939) (xy -2.677275 4.019490) (xy -3.338734 3.437321) (xy -3.911375 2.729160) (xy -4.342043 1.917388) (xy -4.626459 1.031767)
     (xy -4.760340 0.102061) (xy -4.739407 -0.841965) (xy -4.559378 -1.770549) (xy -4.215975 -2.653927) (xy -4.215036 -2.655799) (xy -4.014483 -3.016222) (xy -3.787997 -3.363047) (xy -3.565194 -3.657043)
     (xy -3.375691 -3.858978) (xy -3.253275 -3.929811) (xy -3.229477 -3.837265) )(layer F.Cu F.Paste F.Mask) (width  0.010000)
  )
  (fp_poly (pts (xy 0.195496 -4.920150) (xy 1.081334 -4.742918) (xy 1.920605 -4.437358) (xy 2.674294 -4.010724) (xy 3.199701 -3.577001) (xy 3.818259 -2.882072) (xy 4.268009 -2.169809) (xy 4.566441 -1.400309)
     (xy 4.731046 -0.533672) (xy 4.771258 0.008217) (xy 4.777101 0.525528) (xy 4.755678 1.022992) (xy 4.711540 1.465221) (xy 4.649239 1.816828) (xy 4.573325 2.042426) (xy 4.501119 2.108680)
     (xy 4.454222 2.179210) (xy 4.470244 2.252453) (xy 4.463410 2.375411) (xy 4.413655 2.396227) (xy 4.346889 2.454343) (xy 4.361132 2.492076) (xy 4.350353 2.580257) (xy 4.313208 2.587925)
     (xy 4.250703 2.646312) (xy 4.265283 2.683774) (xy 4.254504 2.771955) (xy 4.217359 2.779623) (xy 4.152920 2.836657) (xy 4.165794 2.869581) (xy 4.141256 2.982304) (xy 4.051639 3.058365)
     (xy 3.955117 3.137424) (xy 3.977736 3.161572) (xy 3.994654 3.204123) (xy 3.929812 3.256840) (xy 3.805020 3.372122) (xy 3.783823 3.423108) (xy 3.722228 3.535013) (xy 3.571805 3.719873)
     (xy 3.520239 3.776072) (xy 3.258868 4.053653) (xy 3.247545 2.338336) (xy 3.239772 1.659161) (xy 3.225891 0.929001) (xy 3.207569 0.217412) (xy 3.186477 -0.406047) (xy 3.175658 -0.657806)
     (xy 3.115095 -1.938631) (xy 2.204529 -2.300763) (xy 1.293963 -2.662896) (xy 1.268355 -0.277108) (xy 1.258645 0.376356) (xy 1.244782 0.961467) (xy 1.227799 1.452513) (xy 1.208730 1.823780)
     (xy 1.188607 2.049556) (xy 1.172505 2.108145) (xy 1.042117 2.084160) (xy 0.807312 2.025401) (xy 0.742831 2.007791) (xy 0.383397 1.907971) (xy 0.383397 -3.120742) (xy -0.599056 -3.383160)
     (xy -1.009679 -3.490980) (xy -1.350485 -3.576987) (xy -1.579686 -3.630845) (xy -1.653396 -3.643920) (xy -1.673237 -3.551923) (xy -1.690981 -3.294181) (xy -1.705832 -2.896642) (xy -1.716998 -2.385257)
     (xy -1.723685 -1.785972) (xy -1.725283 -1.293962) (xy -1.725283 1.054340) (xy -2.067056 1.054340) (xy -2.270893 1.054711) (xy -2.431672 1.042292) (xy -2.554491 0.996788) (xy -2.644448 0.897902)
     (xy -2.706644 0.725339) (xy -2.746177 0.458801) (xy -2.768146 0.077992) (xy -2.777650 -0.437383) (xy -2.779789 -1.107621) (xy -2.779622 -1.781969) (xy -2.779622 -4.419835) (xy -2.351273 -4.609315)
     (xy -1.559823 -4.860604) (xy -0.697895 -4.961797) (xy 0.195496 -4.920150) )(layes F.Cu F.Paste F.Mask) (width  0.010000)
  )
)


```