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

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



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


ラベル Blendercam の投稿を表示しています。 すべての投稿を表示
ラベル Blendercam の投稿を表示しています。 すべての投稿を表示

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など)

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熱も冷めてしまって結局どっちもほったらかしになっていたという感じです。

人気の投稿