KiCAD PCBnew マクロ

自作した KiCAD PCBnew マクロの紹介。

多角形 keepout エリア描写

https://gist.github.com/hanya/27931f7bb6d21957ac05

指定した位置に与えた半径の円に内接する多角形で keepout エリアを描写します。

import pcbnew
import keepout

# def insert_keepout(center_x, center_y, radius, corners=16, layer=None, hatch_type=None, 
#                    no_tracks=True, no_vias=True, no_pour=True)

insert_keepout(90, 100, 3, pcbnew.F_Cu)

位置と半径は mm 単位で与えます。

ネジ穴はフットプリントにしているので、指定したリファレンスのフットプリント位置に keepout エリアを描写するマクロも用意しました。

import pcbnew
import keepout

#def insert_keepout_around_mod(exp, radius, corners=16, layers=None, hatch_type=None, 
#                    no_tracks=True, no_vias=True, no_pour=True):

insert_keepout_around_mod("SR[5-7]", 1.8, corners=32, layers=(pcbnew.F_Cu, pcbnew.B_Cu,))

リファレンスの指定は正規表現で行います。上の例では SR5, SR6, SR7 のフットプリントの位置に描写します。
また、半径 1.8 mm の円に内接する 32 角形で上下両面のレイヤーに適用します。

テキストプロパティ変更

https://gist.github.com/hanya/6eedbbbfc9c685068314abb37483db32

PCBnew のリファレンスや値のプロパティ値を一括変更します。リファレンスのサイズを揃えたい時などに利用できます。

import pcbnew
# 正規表現、タイプ、高さ、幅、太さ、表示
set_text_properties(pcbnew.GetBoard(), ".*", "reference", 1.0, 1.0, 0.15, True)
  • タイプは reference, value, text のどれか
  • サイズは mm 単位
  • 表示は True/False
  • None を与えた値は変更しません

PyShell にマクロ実行タブを追加

https://gist.github.com/hanya/08591a20a6c76bf9215f8175bd46681b

※KiCAD pcbnew 4.0 では動作しません。

KiCAD Pcbnew 4.1 以降で利用できる PyShell は便利ですが、マクロのファイルリストから簡単に実行できるような機能のタブを追加します。

  • Tools - Scripting Console - Options - Startup - Edit Startup Script を選択
  • pyshell_hack.py の内容を追加
  • Preferences - Configure Paths を選択
  • _KIMACROS を追加してマクロのファイルを保存するディレクトリを Path に指定
  • Tools - Scripting Console - Options - Startup - Execute Startup Script にチェック