ちょっと前に掘った

SketchUp と、歯車描画プラグインで書いて SkechUCam で gcode にしたけど、ぴったりサイズにしたらハメるのが硬すぎて厳しかった。細かい凹部はエンドミルでは削れないというのもありそう。

歯車描画プラグインは、ものによって SketchUCam と相性が悪くて使えなかったりする…… 機能がすくなそうなやつのほうがうまくいくっぽい。

  1. トップ
  2. tech
  3. CNC フライスで遊星歯車装置を掘った

複数シャンク径を使いわけたい場合、都度コレットを交換する必要がある。ググってみてもいまいち正しいやりかたが出てこなくて歯痒いが、以下のようにすると交換できる。

コレットナットを軸からはずす

普通に緩めて外すだけ

ナットからコレットを外す

コレットをちょっと押してみると、ナットの位置によって傾むくほうと傾かないがあることがわかる。

傾むくほうを下にして、そのまま下に少し強めに押すと外れる

傾かない状態

傾いた状態

ナットにコレットをつける

ナットの内側をよくみると、コレットの溝にはまるようにリングがついていることがわかる。そしてそのリングが一方が深く、一方が浅いようになっている (偏心している)

なので、深いほうを先に入れ、浅いほうに向けてコレットを押しこむとつけられる。

ナットを軸につける

普通に締めるだけ

いちいちナットにコレット脱着するのが面倒だ!!

ナットだけ追加で買って、1コレット1ナットをセットにしてしまうのが早い。これなら、緩めて別のナットをつけるだけですむ。

  1. トップ
  2. tech
  3. ER11 コレットの交換方法

[tech] CNC フライスで基板をつくる | Mon, Sep 7. 2015 - 氾濫原 の続き

穴開け用の φ0.5mm刃長1mmのエンドミルを入手したので、0.8mm 厚の基板で試した。

条件

配線パス切削:Vカッター (前回と同じもの)

  • S10000 F200 (前回と同じ)
  • 両面テープ固定 (前回はクランプ)

なぜかバリも全くでずに綺麗にできた。やはり両面テープのほうがZ軸が安定する。両面テープは切削対象部分にはできるだけ全部貼ったほうがいい(ビビらないように)

穴開け・外形切削:φ0.5mm 刃長1mm

  • S10000 F80
  • 0.9mm 厚まで切削

で綺麗にいった。

メモ

これとは別にもう一枚切削したが、そちらはちょっとZが安定しなかった。おそらく両面テープ不足。また、バリがかなり出てしまった。ビビったせいかもしれない。とにかく、固定はしっかりしたほうがいいっぽい?

φ0.5mm のエンドミルはかなり扱いが怖い。φ0.8のミルも注文したけどまだ届いてない。

0.8mm厚だと切削したパスが表面から透けて見えるので、部品の配置がやりやすい。1.6mm よりいいかも?

  1. トップ
  2. tech
  3. CNC フライスで基板をつくる 2

プリントしないプリント基板 (PCB) とやらです。

現状


ふとやってみよう、と思ったので、0.8mm のエンドミルを使うべきところ (穴あけ) に 1mm のエンドミルを使っており、ランドが消滅していたりする。実際はシミュレーションとほぼ同じように削れたので、0.8mm にすれば解決するだろう。

Eagle -> G-code

Eagle -> G-code は直接出力する ULP が公開されているものがあったので、これを使ってみた。キデッジ ブログ  個人製造雑記(MINI_CNC) CNCとEAGLEによる片面プリント基板の自作法!, キデッジ ブログ  個人製造雑記(MINI_CNC) ドリル、外周カット用ULP version2!

これらのうち以下だけを使った。

  • 1_linepattern_gcode_bottom.ulp
  • 2_drill_holes_cutoff_v2.ulp

1_linepattern_gcode_bottom.ulp

  1. スピンドルスピードが設定されておらず回転しないでぶつかるぞ

X軸を中心に反転した座標で吐かれるので、Y軸原点にオフセットが必要 (X軸は+方向に、Y軸は-方向に進む)。左下が (0, 0) なら、左上 (0, +Y) を作業座標としてゼロにセットする必要がある。

--- 1_linepattern_gcode_bottom.txt	2015-09-07 01:19:30.000000000 +0900
+++ 1_linepattern_gcode_bottom.ulp	2015-09-06 23:23:36.000000000 +0900
@@ -42,7 +42,7 @@
 //////////////////// ユーザー設定 ////////////////////
 //////////////////////////////////////////////////////
 
-string  DefaultSuffix   = "_bot.tap";   //お使いのCNC似合わせた拡張子に変更してください
+string  DefaultSuffix   = "_lines.gcode";   //お使いのCNC似合わせた拡張子に変更してください
 real    Width           = .3;           //実際に削る線幅を指定してください
 real	Lift            = 1;            //空中移動時の高さを指定してください
 real	Depth           = .1;          //実際に削る深さを指定してください
@@ -129,7 +129,7 @@
          printf ("G0Z%2.3f\n",Lift);
 //         printf ("G0Z0.23\n");
          printf ("G0X0Y0\n");
-         printf ("M03\n");
+         printf ("S10000 M03\n");
          printf ("\n");
          printf ("(Begin)\n");
 }

2_drill_holes_cutoff_v2.ulp

  1. G90 が指定されておらず、機械側のモードがG91だと死ぬぞ
  2. 最初に原点復帰しないせいで原点以外から再開しようとすると死ぬぞ
  3. スピンドルスピードが設定されておらず回転しないでぶつかるぞ

dtool 以下の穴についてはG-codeが生成されない。cut_up がなんかおかしくてエンドミル一本折ったので少し大きめに指定するといいでしょう……

--- 2_drill_holes_cutoff_v2.txt	2015-09-07 01:19:20.000000000 +0900
+++ 2_drill_holes_cutoff_v2.ulp	2015-09-07 00:16:18.000000000 +0900
@@ -12,13 +12,13 @@
 //////////////////// ユーザー設定 ////////////////////
 //////////////////////////////////////////////////////
 
-string  DefaultSuffix   = "_cut.tap";           // お使いのCNC似合わせた拡張子に変更してください
+string  DefaultSuffix   = "_cuts.gcode";           // お使いのCNC似合わせた拡張子に変更してください
 real    dtool           = 0.8;                  // エンドミルの直径を指定してください
 real    zstep           = 0.4;                  // Z軸のステップ値を指定してください
-real    depth           = -1.5;                 // 基板の厚さを指定してください
-int    fvalue          = 200;                   // XY軸のF値を指定してください
+real    depth           = -1.7;                 // 基板の厚さを指定してください
+int    fvalue          = 80;                   // XY軸のF値を指定してください
 int    z_fvalue        = 50;                    // Z軸のF値を指定してください
-real 	cut_up 		= 1;  			// 空転移動時の高さを指定してください
+real 	cut_up 		= 2;  			// 空転移動時の高さを指定してください
 int     drill_cut       = 1;                    // 取り付け穴のパスが必要ない場合は0にしてください
 int     drill_on        = 1;                    // エンドミルによるドリルのオンオフ
 int     pecker_mode     = 1;                    // キツツキドリルのオンオフ
@@ -764,7 +764,10 @@
   {
     line_counter();
     checkturn_right_or_left();
-    printf("T2 M06 S0 M03\n");
+    printf("G90\n");
+    printf("G0Z2\n");
+    printf("G0X0Y0\n");
+    printf("T2 S10000 M03\n");
     
     if (drill_cut == 1)
     {

他人がつくったG-Code生成器は本当に良く良く確認したほうがよくて(確認したつもりでもつらいことがおきる)、特に以下は絶対にチェックする必要がある

  • OpenSCAM で開いて意図した通りのパスになっているか
  • 冒頭らへんに座標指定 G90 があるか (G90=絶対座標, G91=相対座標)
  • 冒頭らへんに原点復帰 (G0Zxx, G0X0Y0) があるか
  • 冒頭らへんに M3 S10000 とがあるか
  • G-code 全体を見て、X軸Y軸が増えていくか減っていくか。(作業原点の設定位置に関わる)
  • 実行直前に G-Code 実行器 (grbl) をリセットすること

OpenSCAM で確認したから安心、とはいかない。G-Code 実行器はモーダルなため、何かしらの状態が残っていると困ったことになることがある。

そして、座標指定まわりがおかしいと、本当にとんでもないことになるので一旦 Z 軸をあげた状態で動かしてみるといい。

実際の切削

基板をしっかり固定するのが重要なのは言うまでもないけど実際難しい。基板自体が反ってしまっている場合、両面テープで貼ろうとしてもどうしても浮いてしまうし、クランプするとクランプした周辺だけ浮かない状態になって削れなくなってしまう。

切削で楽をしようとするなら、基板作成の段階のデザインルールで0.5mmぐらいのルールをしくのがよさそう。ユニバーサル基板の代わり(自動配線したいだけ) なら、このほうが圧倒的に楽

あと処理

結構バリがでるのでなんらかの方法でとりたい。

  1. トップ
  2. tech
  3. CNC フライスで基板をつくる