2017年5月16日火曜日

proxxonフライス盤をCNCに改造する (30) inkscapeでCNC用のハッチングが出来ないよ → EggBotで出来た

gcodetoolsを使ってCNC用データを作成する都合により、お絵描きソフトのinkscapeを使っています.inkscapeでハッチング(=網掛け)をやりたいんです.

プリンタで印刷するための画像であればinkscapeでハッチングを描くのは少しかったるいけど無問題です(object→clip).しかし、gcodetoolsを通すとハッチングが破綻するんです.inkscape + gcodetoolsでハッチングを円満に行う術がありません.


【ハッチングのトラブル状況】
↓不気味ですけどキャラクタの髪の毛を描いた絵と思ってください.これは全てinkscapeのパスで描かれています.gcodetoolsのArea機能でハッチを掛けたのではなくて、inkscapeの機能で描いた絵です.
↓これをgcodeに変換して、viewerで表示させたらこのようになってしまいました.何が起きているかと云うと、髪の毛の輪郭線で切れるべきハッチング線が切れてないんです.これではハッチングになってません.これじゃただの全面網掛けです.
↓その原因はこの画像で判ります.inkscape画面のハッチング線にマウスを乗せるとパスが赤く表示されます.つまりパス=ハッチング線は、髪の毛の輪郭線よりも外側が透明処理されているけれど、パスとしては存在しているんです.gcodetoolsは線属性を無視してパスを拾うので、透明処理が無効になってしまうようです.
透明処理は、inkscapeのclip機能(object→clip)がそういう処理方法なのでぐぅの音も出ません.ぐぅ~

なんとかして多数のパスを一括して切断できないものか?


【inkscapeの機能ではCNC用のハッチングは無理じゃね?】
パスを切断する機能というと、まず思い浮かべるのはinkscapeにおける図形のAND処理機能(Path→intersection)ですけど、これがまたハッチングには全く使えそうにありません.

↓たとえば、こんな図形でANDを取ります(Path→intersection)と、、、
↓線が円でcutされました.この応用でハッチングも思いのままだぜとガッツポーズを決めてしまいがちですがそれは甘い.
↓線を2本にした図形のANDをとります(Path→intersection)と、、、全部消えちゃいます.
これは数学的には当然なんです.
線A AND 線B AND 円 = 空集合
ですからね.
なにせハッチングのために必要な演算はこれですから.
(線A AND 円) + (線B AND 円)

↓鋭い考察の読者のために、線Aと線Bを結合(Path→Combine)させてから(Path→intersection)してみても、、、全部消えちゃいます.
だめだ、inkscapeのデフォルトの機能では(CNC用の)ハッチングは無理だ.


【EggBotでハッチングに成功】
Eggbotという機能拡張があるらしいので試してみましたら解決しました.

EggBotのdownloadはこちらのURLから、
そこから辿ってこのファイルをDLしまして、これを起動すると自動的にEggBotがinstallされ、inkscapeのextensionsから呼び出せるようになります.

↓作業フローとしては、2つの白抜き閉曲線をEggBotで処理してハッチングを追加.2つのハッチング済み画像を重ねる.gcodetoolsでGCODEに変換する、という流れ.
↓GCODEをviewerでチェックすると、今度は正しく生成されています.めでたしめでたし.
↓EggBotの使い方は簡単です.Extensions→EggBot Contributed→Hatch fill...
↓設定パラメータは上2つが、ハッチング角度、ハッチング間隔.チェックBOXはクロスハッチです.ハッチを掛けたい図形を選択してからApplyすればOK.

いままでのわたしの苦労は何だったのだ?   Thanks EggBot.

29へ         31へ

エイメン

0 件のコメント:

コメントを投稿