パターン切削中。Vカッターは先端が0.2mmフラットの40度のもの。 高さは削りながら手動で微調整する。 パターン削り残しがあったらカッターで調整するか深さを変えて再度削る |
こんな感じで削っている。手順は、Googleで検索して出てくるが、
- Eagleでデザイン
- run gcode.ulp
- V字カッターでパターンを描く
- φ0.8mmのPCBカッター(ダイヤモンドの刀形)でドリル及び切り抜き
これだけ。Vカッターは、耐久性を考えて40度で三角錐になってるものを使っている。60度で1枚刃(といったらわかるだろうか)のVカッターを最初使っていた時は初心者だからかすぐに折れてしまっていた。ただし細い方がバリが少なく綺麗に削れるのでトレードオフ。
三角錐のものだと、切れ味が劣るためバリも大きくなってしまうので、バリができるだけでないようにゆっくり削る。
もう一つ、Eagleのgcode.ulpでdrill holeを書いたときになぜか変な形に削られてしまう問題が発生。
三角錐のものだと、切れ味が劣るためバリも大きくなってしまうので、バリができるだけでないようにゆっくり削る。
もう一つ、Eagleのgcode.ulpでdrill holeを書いたときになぜか変な形に削られてしまう問題が発生。
基板を止めるM3のねじ穴を作ろうとしたのだが、こんな感じで変な穴が空いてしまう。gcode.ulpの該当箇所を見ると
void CutDrillHole(real h_x, real h_y, real h_d, real tool, real cut_depth) { real raza=(h_d-tool)/2; real cut_down=0; for (int i = 0; i<cut_steps; ++i) {cut_down=cut_down+cut_depth/cut_steps; if (h_d > tool) {printf("G00 X%.3f Y%.3f\n", h_x, (h_y+raza)*layer); printf("G01 Z-%.3f F%.1f\n",cut_down, cut_speed); printf("G02 X%.3f Y%.3f R%3f F%.1f\n", h_x+raza*layer, h_y*layer, raza, cut_speed); printf("G02 X%.3f Y%.3f R%3f F%.1f\n", h_x, (h_y-raza)*layer, raza, cut_speed); printf("G02 X%.3f Y%.3f R%3f F%.1f\n", h_x-raza*layer, h_y*layer, raza, cut_speed); printf("G02 X%.3f Y%.3f R%3f F%.1f\n", h_x, (h_y+raza)*layer, raza, cut_speed); printf("G00 Z%.3f\n\n", cut_up); }}}
なんじゃこりゃ。G02が4つもある。本来円を描くだけなので、4行もいらないはず。h_d というのが半径だとすると、razaの定義は理解できる。
円の中心は h_x, h_y のはずなので、IJK表記を使って、
printf("G02 J%.3f F%.1f\n", raza, cut_speed);
printf("G02 J%.3f F%.1f\n", raza, cut_speed);
これで円が1回だけ書かれるはず。layer は表の場合1,裏の場合-1とかだろう。やってみよう。
そもそも、なんでこんな形になっているんだろうか?
そもそも、なんでこんな形になっているんだろうか?
No comments:
Post a Comment