KiCad 基板の 3D データをさくっと作り捨てる

このような基板を作りました。

![IMG_20191129_093529.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/1a31a663-e2d5-c142-d1df-7295fb869e5c.jpeg)

アオノドンで、タッチセンサーとロータリーエンコーダー、TFT 液晶の乗ったパネルです。

KiCad で設計しているので 3D ビューアで立体モデルが見えますが、いろいろと悲しい感じ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5404faf8-d473-7f47-6b88-7c42a4056e0f.png)


# 理由

- 標準添付のロータリーエンコーダーにフットプリントライブラリに 3D データが登録されて無い
- アオノドンのフットプリントが無かったのでピンヘッダで代用
- 2.8in TFT 液晶のフットプリントをピン配置が同じの 2.2in TFT液晶（CR2013-MI2120)を修正し、原点を直したりして作成したが 3D データはそのままに。

# 手直し

今回は、ライブラリなどには手を加えず3Dデータが使える状態になるようにします。

- ロータリーエンコーダー
- アオノドン
- 2.8in TFT液晶

の 3Dデータを FreeCAD でさくっと作ります。

# FreeCAD

Ubuntu 18.04でFreeCad0.18.4を使いました。


FreeCad起動、新規作成、Draftワークベンチを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/0d8d3336-ef8d-9568-9cb4-53db9fb18d5b.png)

KiCadの3DデータはXY平面が基板面となるので上面ビューを表示、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/97c44975-0975-a75b-5f63-4962fcfdb3c5.png)

グリッドを表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/55b20949-7a4e-3a0d-ebb4-e80d82d67c3b.png)
してからSkecherワークベンチにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/8ba0aea2-8420-2b85-bab4-dfd093ad4e30.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/c5567aa4-d446-c819-3c3d-85e79d2d0046.png)

「新規スケッチを作成」-「XY平面」で「OK」

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5871d784-408a-d6e0-363a-ba1acdfcf1ce.png)

-「スケッチ上に長方形を作成」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/50a39e64-124d-e591-451b-3ccfff14cdf5.png)



一旦適当に書いてから、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/c9863197-5500-c820-8b73-6591d143d44c.png)


スケッチのグリッドスナップで調整します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/9b0e99e6-e639-344c-4121-ea9857d36f74.png)


Partツールベンチを選び、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/97937847-8d25-6d4f-256c-c70b1703908a.png)

「部品」-「押し出し...」とすると直方体ができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/4a2c895a-872c-08e1-a56e-60c4944fb6e6.png)

直方体を3つ重ねて、TFT液晶の3Dモデルをを作りました。
ExtrudeのPlacementのZ軸でどの高さに置くかを指定、Length-Forwardで押し出し量を指定、「表示」のShapeColorで色を指定します。

同様に3つ直方体を作成し、配置して液晶のモデルを作りました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e6196e6f-0ce8-15bd-12ae-c40b2f4a9a25.png)

最後に、ブーリアン演算で1つのオブジェクトにまとめます。
Partワークベンチから、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e1f69b48-bdd3-41e5-ecb8-28232b877b1b.png)
ブーリアン演算を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5bbfb42b-0a27-55bf-91dc-68eed75a2ca5.png)

3つのオブジェクトを合体したいですが同時に2つしかできないので、まずは2つを結合し、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/f5f47a82-1465-0a58-19b9-b1279c895da7.png)

結合してできたFusionと残りのオブジェクトを結合します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d3ff4aa9-8c30-433c-e0e9-765252dc1915.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/71202317-4715-e538-3072-2e0207cf6914.png)


できたら、STEP with colors形式で保存。ちゃんとライブラリに登録するにはライブラリパスにしないといけませんが、今回は作り捨てなので適当な場所に保存します。



# KiCad

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/48d6f6c8-7fa1-3609-db82-c728ba33c17d.png)
PCBnewで、基板に配置したフットプリントのプロパティを表示、
3Dモデルを入れ替えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/7d4da025-f9d2-7ffb-77e3-3d141c6b3eb4.png)

# 他のパーツを作る

アオノドンと ロータリーエンコーダも同様に作ります。
ロータリーエンコーダーはシャフトを作ったので直方体ではなく、円を描いてから押し出しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/48e2d3a3-6a1d-3f17-18c1-87b33c10e68b.png)

ここで、中心はグリッドにスナップできますが、直径は拘束ツールで数値指定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d9e81325-7ef9-de17-0708-f61fdd447b64.png)

また、シャフトの切り欠きはブーリアン演算で円柱から直方体を引き算しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5eb62faf-5a75-18eb-8249-bba0afc7cd88.png)



# 作った3Dデータ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/86007ac1-8f58-a98b-c602-7189644645e9.png)

# ちゃんと作るには

今回は、ピンやパッドは省略して雰囲気だけぱっと作りました。

こちら
「KiCad向けの3DオブジェクトをFreeCADのCadQueryを利用して作成する方法」
http://asukiaaa.blogspot.com/2018/09/kicad3dfreecadcadquery.html

では、CadQuery を使う方法が紹介されてます。恐らくピンやパッドなどはこの方法を使うとうまく作れるのではないかと予想しています。

また、ライブラリとしてちゃんと作るには、その他にデータ作成時に2.54倍したものをVRML形式で保存、ライブラリのパスの通った位置に登録とする必要があるかと思います。

そこらへんは、またの機会に・・・！