CAMに関しては見えてきた

 

CAM関係をどうしようかと考えていたんだが、

ある程度2D,3D共にやり方が見えてきたのでメモ+紹介します。

 

環境はWindowsです。

 

 2Dの場合は二つ見つけたやり方があって、

 

一つ目が、

Inkscape+そのプラグインGコード→NCVCというやり方で、割と王道?っぽい。

User:BHSPitMonkey/Inkscape and Gcodetools Tutorial - ShapeOko

 

 

まずInkscapeをインストールして、プラグインcnc-club/gcodetools · GitHubから「DownloadZip」から落として解凍したファイル全てを、

 Inkscapeをインストールしたフォルダ\Inkscape\share\extensions

 に展開。

 

Inkscapeを(再)起動するとエクステンション→Gcodetoolsがあらわれる

 f:id:RuuRuu:20151227035240p:plain

 

 

□この方法でGcode化してNCVCに読み込むために最低限必要なことは

 

・CAMレイヤーとORIGINレイヤーがあること

・対象の画像がパスに変換されていること

・原点情報が設定されていること

・Tool情報が設定されていること

 

なので、まずCAMレイヤーとORIGINレイヤーを作成。これは単純にInkscapeの使い方なので省略。

 

ここからがGcodetoolsの設定。

ORIGINレイヤーでエクステンション→Gcodetools→Orientation pointsで原点の設定をする。

 

とりあえず今回は単純にNCVCで読み込めるかを見たいだけなので、

Z surfaceを0、Z depthを1にして適用した。うまくいくと左下に原点情報が表示される。

surfaceは削られる材料の表面の基準値で、depthは掘り込みの深さで削る方向がマイナスなので基本ここはマイナスになるっぽいです。

f:id:RuuRuu:20151227143700p:plain

 

ここで自分の環境特有かわからんが、

Gcodetoolsのメッセージが表示されるっぽい所に

「AttributeError: ‘module’ object has no attribute ‘unittouu’” or “unittouu not part of inkex module」

と表示され、原点が設定されてくれなかったので、ここ等を参考に、Gcodetoolsをインストールしたフォルダにあるlaserengraver.pyを修正。

 

具体的には

doc_height = inkex.unittouu(self.document.getroot().get('height'))

のところを

doc_height = self.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0])

に変更。

 

オブジェクトのプロパティが違うのに、何故これでちゃんと動く人がいるのだろう??と疑問に思いつつ、動いたので深追いはしなかった。

 

次にToolの設定。エクステンション→Gcodetools→tools liblary

とりあえずdefaultで適用。

f:id:RuuRuu:20151227144031p:plain

 

 

Inkscapeのテキスト入力する機能を使って、緑の領域をフォーカスして値を書き換えられます。

 

でGcode化する時にパスが選択されている必要があるので、ここで画像のオブジェクトを選択してCTRL+SHIFT+C。

 

これで画像がパスに変換されて、選択されている状態になる。

 

やっとエクステンション→Gcodetools→Path to GcodeでGcode化する。

Preferenceタブでファイル名と出力先を入力。

※ファイル名は.ncdの拡張子にしないとNCVCで読み込めない。

Post-processorをRound all values to 4 digitsに選択、

Path to Gcodeタブに戻って適用。

 

NCVCで読み込んでみる。

f:id:RuuRuu:20151227144905p:plain

  

こことか非常に参考になりました。

この方はマジ神。早く自分もこれくらい出来るようになりたいです。

 

 

2Dでもう一つ発見できたやり方は、

○一度画像をSTLにして、下記で説明する3Dの場合と同じ流れに持って行きます。

 

2D→STL変換できるソフトは他にも沢山あるだろうが、

2D Image to STL Converterというなんともそのまんま、なソフトを使わせていただいた。 このソフトはシンプルで超簡単。

 

OpenImagesで画像ファイルを選んでCreateSTLで出力するだけw。

f:id:RuuRuu:20151227145939p:plain

 

123D designで開くと、

f:id:RuuRuu:20151227150251p:plain

 

 STLに出来れば、2Dのデータをいつもの3DCADのソフトで修正したりできちゃう。

 

 

ここからは3Dの場合のやり方になる。

 

slic3rってソフトでGコード化→NCVC

 

slic3rはなんかゴイゴイスーなソフト。

Slic3r日本語マニュアル

 

起動してAddからSTLを読み込む。

f:id:RuuRuu:20151227152004p:plain

 

なんか凹凸が変wwww。

と思ったけどGcode化してみるとNCVC上のパスは普通だった。。

 

Plater→Export G-code

でncdにしてNCVCで読み込んでみる。

f:id:RuuRuu:20151227153743p:plain

 

 

もちろん3Dになってるから、Inkscapeでやるやり方とは、大分違うパスのデータになる。

この例の様に単純なデータだといいんだけど、もっとパスが複雑になってデータが多くなると、特に3Dだとなんだかよくわかんないデータになってしまうので、要所要所で修正が必要。

2Dならなるべく最初の時点で、輪郭を際立たせて後の3D化→Gcode化で綺麗にいけるようなデータ作成を練習して慣れる事が必要。

後実際に動かすハードウェアに対する最適化の設定も追々ということで。。

まぁその辺は意気込んでやろうとすると挫折しそうだから、やりながら適当に。。

 

 

他に安上がりで精度高いやり方知ってる人いたらドンドココメント下さいね!!