とりあえずメモだけ
Eagle の場合は pcb-gcode を使えばよかったが、これは Eagle の ULP で書かれているので KiCAD には使えない。pcb2gcode はガーバーファイルから直接 gcode に変換するのでどちらでも使える。
レイアウト
KiCAD 書き出し
pcb2gcode
以下のパッチのブランチで実行
https://github.com/pcb2gcode/pcb2gcode/pull/47
millproject
# Use standard mm metric=true metricoutput=1 # front= back=Main-B.Cu.gbr outline=Main-Edge.Cuts.gbr drill=Main.drl back-output=back.gcode outline-output=outline.gcode drill-output=drill.gcode # https://github.com/chrysn-pull-requests/pcb2gcode/blob/graphical-documentation/man/options.svg zwork=-0.1 zsafe=1 mill-feed=500 mill-speed=10000 mill-vertfeed=200 offset=0.07679491924311227 #offset=10 extra-passes=1 zdrill=0.9 zchange=20 drill-feed=100 drill-speed=10000 milldrill=true # milldrill のときの直径 パッチが必要 milldrill-diameter=0.8 # for grbl nog81=true # 外形カット時のミル直径 cutter-diameter=1 zcut=-1 cut-feed=500 cut-speed=10000 cut-infeed=1 cut-side=back optimise=true zero-start=true dpi=1000
offset には削るエンドミルの半径を入れる。たとえば 30° 0.1mm のVカッターを -0.1mm で掘る (zwork=-0.1) にする場合 φ0.153mm なので、offset=0.0767 にする。
パッチのメモ
各 gcode を --zero-start で別々に生成すると原点がずれる。しかも --cutter-diameter を変えると外形レイヤーの基準がかわってしまう。
milldrill の場合 drill 系のオプションは無意味で、全て cutter 系のオプションが適用される。
milldrill のときの mill の直径は cutter-diameter と共用のようで、外形カットと穴開けで別の直径のエンドミルにできない…
KiCAD の時点で外形を大きくしておくか、パッチ書くしかない。→ 書いた
結果
pcb2gcode は isolate な部分を全て削る設定にすることができない(と思う)。なので孤立した銅箔が生成されてしまう。 extra-passes=100 とかにすればできるだけ全て削れるっぽい。
offset を大きく設定すると voronoi アルゴリズムが有効になり、孤立した部分をなくせる (孤立した部分は近くの配線に吸収される)。配線というよりは銅箔面の領域分割という感じになる。PCB っぽくはないけどおもしろい。
まだこれは試してない。