grbl1.1+Arduino CNCシールドV3.5+bCNCを使用中。
BluetoothモジュールおよびbCNCのPendant機能でスマホからもワイヤレス操作可能。
その他、電子工作・プログラミング、機械学習などもやっています。
MacとUbuntuを使用。

CNCマシン全般について:
国内レーザー加工機と中国製レーザー加工機の比較
中国製レーザーダイオードについて
CNCミリングマシンとCNCルーターマシンいろいろ
その他:
利用例や付加機能など:
CNCルーター関係:



*CNCマシンの制作記録は2016/04/10〜の投稿に書いてあります。


2016年5月15日日曜日

CNC関連のソフト(まとめ)

CNCマシン制作の構想段階当初から、Macで使えるオープンソースのCNC関連のソフトをいろいろ探しています。数年前の流行が一段落したせいか、一見よさそうだけど開発が止まっているもの、便利そうだけどバグがあったりとなかなか見極めが難しそう。Macなので数はかなり限定されるのですが、いままで見て来たソフトのリスト。
Mac利用者からの見ての使いやすさで★〜★★★つけてます。初心者向けという感じで、必ずしも高機能がいいというわけではなく。すぐに使えるかどうかという基準で。それと今後の開発も期待できるかどうか。Linux系はMacでも使えることがあるけど、インストールが面倒だったり、Mac特有のバグがあったりするのであまり触っていません。Raspberry Piにインストールして使えば便利そう。

主には以下の5種類。

・2Dドローイングソフト:
  svg、dxfなどのフォーマットで出力できるもの

  Inkscape★★★
    イラストレータの代用(イラストレータのショートカットキーに変換可)。
    Extension(Plug-in)との組み合わせで充分使える。
    スナップ機能も細かく設定できるのでCADのように製図できる。
    Forumも充実しているし、2Dやレーザー加工はこれがメインで大体大丈夫だと思う。
    オフカット(Outset/Inset)機能でルーター加工パスもつくれる(使用例)。

・3Dモデリングソフト:
  stlなどの3Dフォーマットで出力できるもの

  Fusion360★★★
    3Dモデリング操作しやすい。
    無料版が最低1年間は使える。その後また更新?
    Gコードも生成可能。
    クラウドベースなので共同作業がやりやすい。
  Blender★★☆
    操作方法が独特で慣れるまで大変だけど、基本的に何でも作れる。
    Add-on(プラグイン)も豊富にある(シリアル通信なども可能)。
    BlendercamでGコード生成可能。
  ・SketchUp:★★★
    操作が直感的で扱いやすい。
    プラグイン「Export DXF or STL」をインストールすると便利。
    プラグイン「SketchUcam」をインストールすればGコード生成も可能。

・CAM/G Code Generator:
  図面データ(2Dデータ:svg、dxfなど、3Dデータ:stlなど)をGコードに変換してくれる

  Fusion360★★★(使用例
    3DモデリングしながらGコードも生成できる。3Dプリンターにもいいかも。
    商用ソフトでもあるので、かなり本格的(設定などが細かい)。
    レーザー加工用の機能がないのがちょっと残念。3D加工向きかも。
  Blendercam★★★(使用例
    Blenderと組み合わせて使えば便利。
    様々な3Dデータを読み込むことができるので、Gコード生成用としても使える。
    3D切削加工はほぼ可能。
  gcodetools(Inkscape Extension):★★☆(使用例
    やや開発が停滞しているようだけど、基本的なGコードは生成可能。
    最初は使い方に違和感を感じるけど慣れれば簡単。
  Laser Tool Plug-in(Inkscape Extension):★★★(使用例
    レーザー加工するならこのInkscapeとこのプラグインで簡単に設定できる。
    操作/設定がシンプルで使いやすい。
  ・Laserweb3/Laserweb4:★★★(使用例
    ブラウザ上のレーザー用アプリ。Laserweb4は単体アプリ化。
    Gコード生成とGコード送信もこれ一つで出来るので便利。
  Jscut★★★(使用例
    Webベースなのでブラウザ上で作業が可能。
    シンプルで使いやすい。オフカットなどのパスも生成可能。
    他のWebベースのGコードセンダーと組み合わせて使うと遠隔操作可能なので便利。
  ・PyCAM:★☆☆
    インストールが面倒、Macにはバグもあったり、しばらくは改善されなさそう。
  ・SketchUcam:★★★
    SketchUpのプラグイン。
    SketchUpと合わせて使うと便利。

・G Code Sender/Controller:
  Gコードを読み込んでCNCマシンへ送信したり手動入力制御したりするPC上のアプリ

  Universal-G-Code-Sender★★☆
    シンプルなので最初は使いやすいかも。
    grblとの相性がいいのかも。
    JavaベースなのでMacも充分使える。
    開発中の新バージョンに期待したいけどいつになるのか?
  GrblController★☆☆
    数年前までは使っている人もいたみたい。開発が止まっていそうで、今後あまり期待できない。
    基本的なことはできるけど、他に比べるとやはりいまいち。
  bCNC★★★(bCNCを使ってみたときの記事はこちらへ
    操作も比較的シンプル。
    dxf読み込み可能、基本的なCAM機能もある。
    Autolevel機能もあるので基板制作にも向いている。
    Pendant機能でWeb上からスマホなどで遠隔操作可能。
  LaserWeb/LaserWeb2/LaserWeb3/LaserWeb4★★★
    ブラウザ上の操作はシンプル。svg、dxf対応。Jscutと組み合わせると便利。
    Webベースなので遠隔操作可能(最近はWebベースが主流かも)。
    ブラウザ上でstlファイルを読み込むことができる。
    まだまだ開発が継続されているので今後も期待ができる。
  cheton/cnc★★☆
    これもWebベースでつかいやすそう。
    Webカメラでの監視、320x240 LCDディスプレイ対応の操作画面もある。
    Raspberry Piを用いて操作などすると便利そう。
    今でも頻繁に開発が進んでいそう。
  ・GRBLWeb:★★☆
    こちらもWebベースでRaspberry Piにインストールしてホストとして使うのかも。   
  ・Easel:★★☆
    X-CARVEやShapeoko(1or2)用のWebベース、CAD+CAM+GrblControllerソフト。
    X-CARVEやShapeoko(1or2)用だけれども使うことはできる。
    ただ、Machine選択でX-CARVE/Shapeoko(1or2)/Carveyしかないから戸惑うが、ウィンドウ下のAdvanced>> に進み、Advanced SettingsでMachine Inspectorを使えば大丈夫。
    細かい設定はないけれどもオールインワンなのですぐに使うにはいいかも。
    ステップバイステップで設定が誘導されるので初心者にはわかりやすい。   
  ・Mach3:☆☆☆
    MacなのでMach3とは無縁。

・G Code Interpreter:
  CNCマシンのマイコン(Arduinoなど)上のファームウェア
  Gコードからモーター制御してくれる
 ・Grbl v1.1:★★★(Grbl v0.9やv0.8はこちら
   Arduino Uno用。3軸制御まで。
 ・Grbl-Mega
   Arduino Mega2560用。
   以下のフォークされたバージョンでは4軸制御や3Dプリンター制御など可能。
   https://github.com/bdurbrow/grbl-Mega
   https://github.com/fschill/grbl-Mega
   https://github.com/HuubBuis/grbl-L-Mega
   https://github.com/fra589/grbl-Mega-5X
 ・GrblESP(ESP8266用Grbl)
   SPI通信により最大8軸。Wifi操作可能。
 ・Grbl_ESP32(ESP32用Grbl)
   基本3軸制御? Wifi/Bluetooth操作可能。
 ・Android対応ArduinoMega2560専用6軸ファームウェア
【EU Free VAT】CNC Part 4th Fourth A axis Rotary axis Dividing head K11-65mm 3 Jaw Manual Chuck with TailstockOriginal price: USD 233.37Now: USD 172.70

  ・LinuxCNC★★☆
    GrblもLinuxCNCに準じているようなので、すべてLinuxを使えばかなり便利そう。
    ただ、Linuxもやり始めると手間暇かかってしまう。
    少なくてもRaspberry PIを使ってできるかもしれない。
  ・TinyG★★☆
   Grblより強力そうだけど、それだけ値段も高いのでお手頃ではない。$165ドル。
   ファームウェアはAVR Studio(Win用)でアップデート。Mac用AVR Studioもあることはある。
  
  
まとめ:
基本的にはG Code InterpreterはGrblを使用。
2D加工するなら、Inkscape+Extension(gcodetoolやLaser Tool Plug-in)でGコードファイルを生成する。あるいは、InkscapeのsvgファイルをJscutで読み込んでGコードファイルとして出力。
特に2Dのレーザー加工の場合は、Inkscape+Laser Tool Plug-inで充分だと思う。
Gコードファイルを読み込んで実行するソフトは、Universal-G-Code-Senderがシンプルでわかりやすいかも。現在は、bCNCが便利なので(慣れたので)使っていますが。
3Dの場合は、モデリングは何のソフトでも構わないと思う。Sketchupなど使いやすいと思うソフトで。その3DデータをFusion360かBlendercamでGコードを生成する感じになると思う。

この際、Linuxにしてもいいのかもしれないけれど、手間暇かかるのでそこまではしないつもり。Macの環境でもそこそこつくりたい物はつくれそうだし、とりあえずあるものを利用するだけでも充分だと思う。

ただ今後はRaspberry Pi3を使い、wifi経由でWebベースのLaserWeb2、cheton/cnc、Jscutを使うのがよさそう。遠隔操作やカメラ監視なども可能になるし、ワイヤレスでどこででも作業が出来るというのがいい。スマホやタブレットで操作もできるようになるので。
個人的には、LaserWeb2に期待したい感じ。現在はstlを読み込めるけど、スケール変換などがまだできない。今後のロードマップを見ると、3Dにも力入れようとしているし、まだまだ発展しそう。以下のような画面。

追記:
普段は、G Code SenderとしてbCNCをつかっていますが、bCNCにはPendantという機能(ネットワークを使ってWeb上で操作する)があり、先ほどつかってみたらタブレット(ブラウザ上から)でリモートコントロールできました。

これ↑が、Pendant機能をつかったタブレットのブラウザ上の画面です。
いままで通りに、CNCマシン(Arduinoボード)とMacBookをUSB接続し、bCNCを立ち上げてPendant開始ボタンを押すと機能がONになります(以下)。

ホストとなるMacBook上でもブラウザが自動的に立ち上がって操作画面が出てきます。アドレスに「http://localhost:8080」とでているはずなので、ローカルネットワーク内の他のコンピュータやスマホなどからもアクセスできるはずです。
持っているタブレットでは「localhost:8080」ではアクセスできなかったので、数字でプライベートIPアドレス「192.168.3.3:8080」(MacBookのプライベートIPアドレスとポート)を入れてみたら表示できました。
つまり、MacBookはCNCマシン本体脇に、そしてタブレットやスマホを持ちながらZ軸に近寄って調整などが可能というわけです。ポートマッピングも使えば、外出先からも操作可能だと思います。
bCNCは、いろいろな機能があってかなり便利そうです。

関連:
G Code Sender(bCNCなど)

CNCマシン:Fusion360も試してみました

前回、Blendercamが使えるということがある程度分かったので、今回はいよいよFusion360を試してみます。ほかにもPyCAMやLinuxCNCも見てみましたが、Mac利用者にとってはいまいち開発があまり進んでいないようで、まだまだバグとかもありそうなので見送ることに。
というか、大体の人がFusion360に流れて行っているのではないでしょうか?


Fusion360のダウンロード:
ということで、ある程度Fusion360の動画で使い勝手を見てみて、早速ダウンロードしてみました。
画面右上のほうには、とりあえずトライアル30日間無料というのがあるのですが、そこをクリックすると、
こんな↑画面が出て来て、本格的に購入するか、教育バージョンで3年間無料か、非営利か年間$100K以下のビジネスのホビーユーザーで1年間無料かというのが、次に選べるようになっています。まだ30日無料トライアルにしたままですが、いずれにせよ最低でも1年間は無料になるという感じです。

モデリングは使いやすい:
モデリングについては動画でも見てみましたが、けっこう使いやすい直感的なインターフェイスという感じです。Blenderのような癖のある感じではないのですぐに覚えられそうです。
とりあえず、チュートリアルを見ながらやってみましたが、モデリングは何とかなりそうなので、すぐにGコード生成の仕方をいろいろいじってみました。
かなり細かい設定やいろんな加工の仕方があるので、情報過多で難しそうですが、普段使うものは限られてくると思うので、ひとつずつ設定していけばなんとかなりそうです。


レーザー加工はどうやる?:
以下の動画も見てみましたが、かなり手慣れた方法でモデリングしていました。

部材の厚みや間隔などを一旦変数化して、あとから数値入力によって簡単に編集し直す方法を使っています。たしかにこれは製品などつくる上では便利そうです(個人的にはあまり使わないと思うけど)。実はこの動画を見たのは、レーザー加工の手順を知る理由でしたが、最終的には部品のサーフェイスをdxfで出力保存して、あとは何かでやってくれというものでした。他の動画でもレーザー加工に関しては同じような感じでした。
2次元のレーザー加工の場合は、Fusion360を使う必要がないという感じ。おそらく手順としては、
Fusion360で3Dモデリング→一部をdxfで出力→Inkscape+Laser Tool Plug-inでGコード生成→bCNC
という手順になりそう。bCNCでdxfファイルを直接読み込むことはできるけど、レーザー用にスピンドルONや出力値(M3 S=1000など)のGコードを編集しなければいけないので、結局上記のような経路となってしまいます。
Fusion360なら全部ひとつのソフトでできるのかと思ったら案外そうでもないです。3Dプリンター用のボタンはあるので、3Dミリングか3Dプリンター用という感じでしょうか。


3Dミリング加工:
仕方ないのでミリング加工についてもいじってみました。チュートリアルもやってみましたが、手順通りに進めるとすぐに終わってしまうので、前回Blendercamでも使った3Dモデルでやってみました。
このデータはstlフォーマットです。直接ソフトでは読み込むという機能がないかわりに、一旦クラウドへアップロードしてから新規に開くという手順。基本的にクラウドで共有しながら共同でプロジェクトを開発していくみたいな感じになっているようです。
またこの凹凸がある表面を3次元的に削るというデータをつくってみます。
ネットにチュートリアルのサイトや動画もあるので、ここでは手順は省きますが、とりあえずBlendercamもそうでしたが、各項目の設定を入力していくだけです。加工の仕方や設定の種類はさすがに商用ソフトでもあるのでFusion360はすごいです。その分設定が細かすぎてすぐには全部を把握できない感じ。何回かエラーがでてきて、パスが表示されないこともありましたが、エラー内容を見ながら、ここかな?という感じで訂正していき、なんとかパス生成しました。


加工パス生成:
しかし、できあがった加工パス超高密度。エラーはでなかったけれども、これでは何時間かかるのかわかりません。
そして、出来上がったGコードをbCNCへ持っていくと、
こちらも真っ黒。おそらく加工に10時間以上かかるパス。
まあ、いちおう手順としては分かったので、なんとななりそうです。


Fusion360の印象:
チームで何かプロジェクトをやるときには便利そうです。プロのプロダクトデザイン用のソフトって感じです。ミリング機能に関しては本格的で金属など削るにはいいと思います。3Dモデリングも使いやすそうです。
個人的には、Fusion360だけですべて出来るのかと思っていたら(Gコードセンダーにもなるのかと思っていた)そういうわけはなかったです。いわゆるCAD、CAMソフトという感じでした。3D切削加工するときは使うかもしれませんが、シンプルな2D加工ならわざわざ使う必要もないかも。特にレーザー加工なら、Inkscape+Laser Tool Plug-inで充分かもしれません。


Fusion360操作ガイド CAM・切削加工編 1 2019年版―次世代クラウドベース3DCAD/CAM
三谷 大暁
カットシステム
売り上げランキング: 27,799

2016年5月14日土曜日

CNCマシン:Blendercamを試してみる

今のところ2D加工は以下のような感じ。
・2Dレーザーカット:Inkscape(Laser Tool Plug-in)→Gコード→bCNC
・2Dルーターカット:Inkscape→svgファイル→Jscut(Outside)→Gコード→bCNC

そのうち3Dカットもする必要がありそうなのでいろいろ探していましたが、Macで使えそうなのはPyCAM、Fusion360、Blendercamあたり。Fusion360はかなり本格的なのでそのうち試して見ようと思います。
それでPyCAMを試そうとインストールしていたら、MacだとApple-Pythonが入っているため、インストールが思うようにいかなくて、Apple-Pythonをやめて新たにPythonを入れ直そうを思ったのですが、インストールが成功しない限りbCNCも使えなくなってしまうので、まだ保留という感じです。
Blenderは以前から使っていたというか、独特の操作方法でなかなか慣れずに3Dデータ変換用として利用していたくらいです。何度か勉強してみたのですがすぐに忘れてしまい、なかなか覚えられない。
今回も「Blenderか、どうしようかな」と思っていたけど、以下のBlendercamのチュートリアル動画を見る限りでは、3Dデータを読み込ませて、いくつか設定を入力したらGコードが生成されると感じなので、それほどBlenderの操作は必要なさそう。単なるGコード生成ソフトとして使えそう。
この動画、声が聴こえにくいのですが、フルスクリーンにして各設定の手順を注意深くみると、それほど難しそうではありません。5回くらい見直しましたが。

Blendercamのダウンロード:
ということで、Blendercamをダウンロードしてみました。
プラグインみたいなものだけをインストールするのかと思ったら、Blender2.76ごとダウンロードでした。いちおうaddon onlyとしてBlender本体にインストールできるものあるようですが、持っていたBlenderが多少古かったので、BlenderとセットのものをGoogle Driveからダウンロードしました。

Macなので真ん中の「blender-2.76b-OSX_...」というやつです。
Blender本体も含まれているので135MBくらいあったかもしれません。
ダウンロード+解凍したらアプリケーションフォルダにいれるのですが、もうひとつBlenderを持っているなら同じところには置かない方がいいと書いてありました。今回のほうが新しいので古いのは捨てて、アプリケーションフォルダに移動させました。
あとはBlender.appを開くだけ。サイトの説明にも、開いたら右側にBlendercamのタブが並んでいればOKと。

Blender.appを立ち上げる:
立ち上げるとこんな画面。右にBlendercamのタブあるかというとない。
ない場合は、「preferences-addonで、、、」と書いてあるけど、ちょっと違う。

User preferenceの設定・内容確認:
まず、左上のアイコン(タブ)で、User Preferencesを選ぶ(以下)。

そうすると上のメニューバーのようなものが変化して、以下のような感じ。


しかし、このままでは何もできないので、この横並びのメニューバーの下端を下方向へ引っ張る(ドラッグする)と、実は隠れている画面が出てくる(この隠れ画面に気づかなくて「そんな画面でてこないんだけど・・・」って以前なったことがある)。以下のような感じ。

隠れ画面の左に「Add Curve」ボタンを押し、右の「Add Curve:Simplify Curves」のチェックが入っている状態にする。
つぎは、左の「Scene」ボタンで「Scene: CAM - gcode generation tools」もチェックが入っている状態にする。この二つでOK。あとは引き下ろした画面を元にもどして、左上のアイコンタブを「Info」にでもしておけば大丈夫。


ようやく開始画面:
という感じで問題ないのですが、右側にCAMのタブが出なかったのは、単にウィンドウサイズが画面より大きくてフィットさせたら以下のように出てきました。
右側に縦に3列ある真ん中のがCAMタブですね。ここでほとんどの設定をするようです。なので、両側のタブは隠してしまっても大丈夫そうです(タブ画面の境目を横にドラッグして横幅をずらす)。


3Dモデルインポート:
あとは3DモデルをFile>Importでインポートする(以下)。
けっこういろんなデータ形式が読み込めます↑。


こんな凹凸があるデータをインポートしてみました。
多少位置がずれていれば、青赤緑の矢印を移動したい軸方向にドラッグすれば動かせます。斜めに一気に動かすというより、X軸はこのくらい、Y軸はこのくらいという感じでひとつの軸ずつ。

各種設定して行く前に、左上のアイコンタブが「Info」になっていて、そのままメニューバーの右のほうへいくと「Blender CAM」タブを選んでいるかチェック。以下のような感じ。


CAMタブで各項目を設定:
あとは設定していくだけです。右側のCAMタブをとりあえず一度全部閉じた方が分かりやすいかもしれません。全部閉じると以下のような感じ。
ここで上から順に設定していけばいいと思いますが、動画ではまず下から6番目の「CAM Machine」から設定しているので、それからやってみます。14項目もありますが、実際は8項目くらいでOKだと思います(2、4、11、12、13、14番目以外)。

CAM Machine(下から6番目のタブ):
こんな↑感じでセットしておきます。
上から「Presets」そのまま、「Post proces...」は「grbl」(これを使っているので)。ほかにもMach3とかLinuxCNCのEMCとかもありますね。「Split files」はGコードファイルが大きくなったら下の800000以上でファイル分割するということだと思います。単位は「Metric」。「Use position defenitions」でマシン原点など細かく入力できますが、とりあえずなしで。「Work Area」を材料の大きさに合わせて入力(ひとまわり大きいくらいで)。フィードやスピンドル回転数は適当に。ただ単位がcmになったりするので注意してください。ここは、だいたいこんな感じ。
それでは一番上の「CAM operations」タブに戻って、上から順にいきたいと思います。

CAM operations:
まず右上の「+」ボタンを押すと「Operation_1」という今回の加工タイトルの決定。そしていろいろ設定をしてセーブすれば今後もこの設定を選べば使い回しができるはず。少し下がって「Operation presets」タブから、既存の設定を選んでもいいけど、とりあえず最初は自分用に全部設定してみるという感じ。
「Calculate path」や「Simulate this operation」は設定が終わったら最後に押すボタンなので、いまはスキップ。あとはこんな感じで。
最後の「Object:」は、その3Dモデルのことです(3Dモデル名ではなくなっているかもしれません)。ほかに「CAM_machine」と「CAM_material」もありますが、それらは選ばないように。

CAM info & warnings:
ここはスキップ。エラーあるとここにでるようです。

CAM operation setup:
ここでどんな加工をするかが選べます。今回は凹凸を削りとるので「Parallel」を選んでみます。

ちょっと寄り道しますが、一番上のProfile(Cutout)は切り抜きだと思います。「Cut:Outside」でオフセットカットもできそうです。「Autogererate bridges」で完全切り離しにならないようにつなぎ目をつくってくれそうです。「Skin」は薄皮残しのようです。かなり便利そう。

元に戻りますが、「Parallel」を選ぶと、以下のようなタブ画面。

「3 axis」はそのまま。何ミリ間隔で削るかという設定です。とりあえず荒削りなら刃と同じ太さで。ということで6mmに設定。オーバーラップするように削るなら値を下げればいいと思います。「Angle of paths:」は、0度だと縦(Y軸方向)に平行に削るようです。今回は横(X軸方向)に削るので90度設定。「Use array」同じ部品を何個も並べて複数同時に削るときの設定のようです。

CAM optimisation:
ここは精度の設定だと思いますが、このままで(実際削ってみてからじゃないとわからないので)。

CAM operation area:
ここはZ軸方向でしょうか。レイヤー状に削るかとか、何ミリずつ下げるかとか。今回は木材という前提で、「Step down:」は、3mmで。アルミなら1mmとかでしょうか。加工の開始高さは材料の高さからでいいので、「Operation depth start:」は0で。たぶん以下のような感じでいいかと。

CAM movement:
ここは往復で削るとか片道だけで削るとかの設定だと思います。動画でも説明していました。
往復で削るということで「Climb/Down milling」。あとはこんな感じ。

CAM feedrate:
ここは加工時のフィード設定(加工時のXY移動速度)。
「Plunge speed:」で下へ掘り下げるスピード設定。おそらくこの設定で、XY軸の50%ということになるかと。遅くするに越したことはないと思います。「Plunge angle」は下がるときの角度。垂直に降ろすよりは斜めに降ろしたほうが抵抗が少ないので、角度があったほうがよさそうです。ということでこんな感じ。

CAM Cutter:
ここはエンドミルのタイプや太さなどの設定ですね。

End(フラット)、Ball(丸)、Vなど。今回は先が丸いBallで。Cutter diameter:で刃の直径6mmを入力。Cutter flutesは何枚刃かなので、2枚刃ということで。

CAM Machine:
ここは最初に設定したので先ほどの内容で。

CAM Material size and position:
「Estimate from model」をチェックすると自動で大きさを計測して画面上に材料を包み込むように半透明ボックスが配置されます。
「Position object」を押すと自動的に左下を原点に移動してくれます。
ただ、今回の場合、縦方向になぜか余分に大きくなっている。
あとで加工パスを表示すると、ズレや加工範囲が広すぎたりするので、無駄な動きをなくすためにもまたここに戻って来て手動で調整してみるといいかもしれません。「radius around model:」で加工範囲を1cm多めに設定してみました。そうするとちょうどよさそうだったので。

こんな感じで、この段階で一番上のタブの「CAM operations」に戻り、「Calculate path」ボタンを押してみるといいです。だいたい加工範囲がカバーされているか?無駄に外側に大きく加工範囲がはみ出ていないかなどチェックできると思います。だめそうならUndoで戻って、ちょっと設定を変えてみるといいと思います。
これで大体OKだと思います。残りのタブはあまりいじらなくてもよさそうです。
あとは、「CAM operations」の「Simulation this operation」で加工後の状態をチェックして、だめならUndoして再度調整し、OKなら「Calculate path」ボタンを押してGコードファイルを生成。デスクトップ上に「CAM operations」内の「File name:」で.ngcファイルが出来上がっているはずです。

bCNCで確認:
その.ngcファイルをbCNCで見てみると、以下のような感じです。
きれいに削れるかどうかは分かりませんが、一応データ上は問題なさそうです。これもエンドミルの形状や太さ、フィードやオーバーラップをどのくらいにするかなど、経験から覚えていく感じでしょうか。

まとめ:
まだ実際に加工はしていないのでわかりませんが、3Dだけでなく2DでもBlendercamは便利そうです。とくにBlender特有の操作が必要というわけでもないので(3Dモデリングをするわけではないので)、Gコード生成のツールとしては充分使えそうです。この際、Blenderの3Dモデリングもまた覚え直してこのソフトひとつでやったほうがいいのかもしれません。
Blenderは、影付きの3Dゲームエンジンや物理シミュレーションが作れるというので、以前から使いたいと思っていましたが、途中でUnityも出て来て、あまりにもBlenderが扱いにくいのでUnityに移行したほうがいいかもと思いつつ、3D熱も冷めてしまって結局どっちもほったらかしになっていたという感じです。

2016年5月12日木曜日

CNCマシン:レーザー焦点距離測定実験(その2)

以前は、レンズ先から素材までの距離10mm〜100mm(5mm間隔で)焦点距離測定実験を行いました。その結果50mmくらいが焦点距離とわかったのですが、今回は50mm付近をさらに細かく測定したいと思います。
以下が前回の結果。距離50mmでの線が最もシャープ。

前回の結果から、50mm付近を0.2mm間隔で照射してみます。前回の結果を見ると、45mmと55mmだと、45mmのほうがややシャープなので、おそらく45mm〜50mmの間に最適な焦点距離があると思われます。
上画像は、48.2mm〜52.0mmまでの照射実験です。レーザーモジュールを取り外したりしたので前回の実験と多少の誤差があるかもしれません。この結果では、50mmというよりも左端の48.2mmがシャープに見えます。なので、48.2mm以下をさらに細かく照射実験してみました。

上画像は、46.1mm〜48.0mmまでを0.1mm間隔で照射した結果です。左端が46.1mm、中央に47と書いてあるところが47.0mm、右端48と書いてあるところが48.0mmです。
これを見る限り左にいけばいくほど少しずつ線が太くなっています。おそらく47.5mmあたりが焦点の中心ではないでしょうか。肉眼で見る限りは、47.0mmから48.0mmの間であれば、どれも同じように見えます。ということから、47〜48mmあたりを焦点距離にすればいいのかもしれません。焦点深度が1mmくらいあると考えてもいいかもしれません。実際フェルトや紙(多少波打っている素材)を切る場合なら、2mm前後は誤差があってもそれほど問題にはならなさそうです。

前回制作した黒いレーザーシールド(代用品)を取り付けた場合、レンズチューブ先端からレーザーシールドの底面までは45mmにセットしてあるため、以下のように素材との間に2mm厚のABS樹脂板(レーザーシールドと同じ材料)を差し込めば、だいたい焦点距離になるという感じです。

そろそろ実制作のためのツールとしてCNCマシンが使えそうです。まずはレーザーをつかってフェルト生地を切ろうと思っているので、その作業に合わせたセッティングという感じです。


実験続き:
焦点距離が分かったので、ためしに薄い合板を切ってみることにしました。5.5Wのレーザーダイオードでどのくらい切れるのか?とは言っても、個人的には木材をレーザーカットはしないと思うけれども、一応参考のために。
合板は厚さ2.2mm。Gコードを手入力していたので、最初と最後の部分が焦げています。5.5Wを100%の出力で、1パスで切っています
大きい円が直径20mm、小さいほうが10mm。
フィード(mm/min:切断時のスピード)が、左から100、70、100、50です。
そして、裏側を見ると、以下のような感じ。

まず20mmの円をフィード100でやってみましたが、大体切れていましたが、少しだけ切れていない部分があったため、裏からカッターで切り落としました。それなら少し遅くしてフィード70なら完全に切れるかな?と思ってやってみましたが、裏からみると似たような感じで、大体は切れているのですが、あともう少しという感じ。
10mmの小さい円のほうもそんな感じです。小さい円の上側がフィード100、下がフィード50。もちろんフィード50のほうがゆっくり動くので切れていそうですが、表からみるとかなり焦げています。おそらく、これ以上スピードを落としてゆっくり切ると完全に切り落とすことができるかもしれませんが、かなり焦げてしまって、切断線も太くなってしまいます。単純にスピードを落としてゆっくり切ればいいというわけでもなさそうです。

まとめ:
焦点測定実験からも、1〜2mmの焦点深度があるために、焦点をどこに合わせるかで切れ方も変わってくると思います。今回の場合は合板が2.2mmで、焦点は合板上面に合わせてしまいました。
できれば焦点は合板の厚みの中間あたり、つまり合板上面より1mm程度下げたところを狙うとよかったのかもしれません。焦点から離れるほど線も太くなって焦げが目立つし、さらには切れ味も悪くなります。
それから、1パスで一気に切らないで、焦点を下げながら2パス、3パスでフィードも速めで切った方がきれいにきれそうです(次回試してみます)。フィード100でも90%以上切れているので、フィード200で、2パス(1周目は焦点を材料上面から0.5mm下、2周目は1.5mm下で)とかがいいかもしれません。焦点深度を超える厚みのある材料の場合は何回かに分けて切った方がよさそうです。このレーザーダイオードの場合なら、焦点深度を1mmと仮定すれば、1パスで切るには1mm厚までで、それ以上の厚みの場合は、1mmずつZ軸も下げながら3mmなら3パスという感じで切った方がいいかもしれない。
そうやって切っていけば、5mmくらいは簡単に切れそうです。がんばれば10mmも10パスくらいできれるのかもしれませんが、その場合ルーターで切ったほうがよさそう。


さらに実験:
先ほど書いたように1パスで切らないで2パス、3パスでの切断実験をしてみました。

すべて直径10mm、厚さ2.2mmの合板です。2パス切断は、1周目焦点距離-0.5mm、2周目焦点距離-1.5mmで行いました。左端のを除いては、すべて2パスでフィード(切断速度)を100、150、200に変えただけです。右から2番目の2パスF100は完全に抜け落ちてました。
裏返すと以下。
右から2個目が2パスでフィード200のもの。やはり一番速いせいか完全には切れていません。なので、フィード200のままで3パスにしたものが右端です。0.8mmずつ下げたものです。ほぼ切れています。裏面はきれいなほうですが、表面がやや焦げが多いです。
左から2番目がフィード100で、完全に抜け落ちていますが、その分少し焦げが多いので、ここまでフィード落とさなくてもいいという感じ。左端がフィード150で大体切れています。この程度がちょうどいいのかもしれませんが、やや裏面も焦げている感じです。

4つを比較すると、両端のどちらかがよさそうという感じですが、2パスF150のほうがいいかもしれません。パスの回数が増えると、表面がけっこう焦げてしまいますね。ということから、適度なフィードでパス数もあまり増えないようにということですが、いろいろ試してみないと分からないというのが結論です。

2016年5月11日水曜日

CNCマシン:JscutでオフセットカットやポケットカットのG Code生成

grbl wikiのUsing GrblページにのっているGRBLwebというG Code Senderを見てみると、ブラウザ上で作業できるようなのですが、ネットワークに接続されたRaspberry PIをホストとしてCNCマシンの遠隔操作も可能なので便利そうです。CNCマシン用の小型コンピュータを設置するような感じでしょうか。そうすればわざわざMacBookをUSB接続せずに使えるので、5000円前後で可能ならいいかもしれません。でも、それならArduinoじゃなくてRaspberry PIで直接動かした方がよさそう。

Jscut:
同時にGRBLweb用に、JscutというsvgファイルをG Codeに変換してくれるweb上のソフトもあるようです。こちらは、http://jscut.org/jscut.htmlにアクセスすればすぐに使えるので試してみました。

こんな画面(ブラウザ上)です。真ん中上のほうにある「Open SVG」で以前合板でつくったパーツのデータ(Inkscapeで描画したsvgファイル)を開いてみました。右上の水色の部分に手順がでてくるので、図形を選択しながら左右のパラメータ(エンドミルの直径、フィード、材料の厚みなど)を設定します。
設定が終われば、左上の「Operations」内にどんな加工をしたいかを選ぶところがあります。Pocket、Inside、Outside、Engrave、VPocketの5種類あるので、大体の加工ができそうです。
今回の図形では、オフセットで3mm外側のラインで加工したいので、「Outside」を選択。最終的に合計深さ3mm削るなら「3 Deep」を入力。
その右となりにある「Generate」をクリックするとG Codeが生成されます。

図形画面上の「Simulate GCODE」を選択すれば、どんな感じに削るか見ることが出来ます。「Save GCODE」をクリックし、保存名や保存先を指定して.gcodeファイルとして保存できます。そしてbCNCなどで.gcodeファイルを読みこませて加工という手順。

追記:
尚、「Tabs」(タブ:部品が母材から完全に切り離れないようにつなぎ目をつける機能)に関しては、こちらの作業例にかいてあります。

今回生成されたG Codeだと問題なさそうです。これを使えば以前困っていたオフセットカットもすぐにできそうです。

Raspberry Piがあれば、GRBLwebとJscutの両方をブラウザ上でできるし、カメラも設置しておけば切削状況も確認しながら遠隔操作可能となるので、かなり便利そうです。
レーザーカットするときなどは、カメラ越しに見ればいいので安全対策にもいいかもしれません。

あと、WebベースのCNCソフトなら、cheton/cncも気になる。調べれば調べるほど、いろいろでてくる。開発が終わっていそうなものもあれば、いまでも頻繁に更新されているものとか。基本的な操作をするならどれでもよさそう。別に遠隔操作などしなくてもいいけど、オフセットカットパスを自動生成してくれたり、2.5Dだけでなく3D切削/Engravingにも対応しているようなG Code Generatorで便利そうなのが欲しい感じです。


bCNCにおける加工原点の移動方法:
Gコードは生成したけれども、切削作業前に、やっぱり加工原点を変更したいというときがあります(材料が思ったより小さかったり、微妙に形状に合ってなかったなど)。以下は、G Code SenderであるbCNCで加工原点を編集する方法です。

 bCNCのメニューバーのFileタブを選択し、フォルダアイコンをクリックすれば、ファイル選択画面が出て、PC内に保存されているJscutなどで生成したGコードのファイルを読み込むことができます。
今回の図面は部品の下中央を加工原点として、Inkscapeで描きました。左右対称ということもあったので。この原点をbCNC上でずらそうと思います。

 メニューバーのEditorタブに切り替えます。そうすると上の画面のようになります。ここで、Originボタンを押して、加工原点にしたい位置(今回の場合、部品の左上→右上の間違い)をクリックします。

そうすると瞬時に加工原点は部品の右上に移動します。以上です。

Moveボタンで図形移動:
また、他のやり方として、Originボタンの左にあるMoveボタンで部品の図形ごと移動してしまうという方法。
 まずMoveボタンを押します。移動したい図形全体をマウスで囲んで選びます(クリックなら部分的なパスを選ぶことも出来ます)。あとはドラッグして移動します(今回の場合、やや左下へドラッグ)。失敗したらUndo。

 先ほどは部品の右角に加工原点がありましたが、ドラッグしてここまでずれました。

あとは、視点を切り替えてみて(赤丸で囲んだタブで選択:ISO1など)、大丈夫か確認します。
真上や真横から見た視点にも変えられるので、X-Y平面上での移動ならX-Yタブ、上下方向で移動したいならX-Zなどを選んでパスを移動させます。この加工パスの場合、3回で切断するパスなのでそれぞれ同じパスが3層になっています。一つの層だけのパスを選びたい場合は、X-Y平面の視点だと選びにくいので、このようなISO1や横から見たX-Zなどの視点にするとやりやすくなります。
このほか、ある程度のパスの編集もこのEditorタブの画面内で可能です。すべては試してないので分かりませんが、いろいろいじってみるといいと思います。


人気の投稿