1.はじめに
3Dプリントしていると、写真のような”ポッチ”が付着することがありませんか?
比較的簡単に除去はできるのですが、地味に面倒です。
スライサーを作っていて、もしかするとこれが原因か?という点があり、そこを改良すると、現状が改善するかもと期待して、実装した機能です。
2.原因?
スライサーがスライスするとき、とくに出力する順序は気にせず、求める形状(ノズルの移動経路)を算出しています。
そして最後にこの経路情報を順次G-Code化しています。
で思ったのが、ある経路を出力後、次の出力を場所に移動させる必要があり、このとき、出力済の箇所を通過(非出力箇所から出力箇所へ)すると、移動中に垂れたフィラメントが拭われ、現象の”ぽっち”になっているのではないか?
であれば、この移動経路を変えることにより、垂れているフィラメントを付着させずに済むのでは?
3.最適経路アルゴリズム(考え方)
ある閉領域を考えます。
その閉領域の2点をPs/Peとします。
閉領域はスライスした断面、Psは移動元の点、Peは移動先の点です。
PsからPeへの移動経路を考えます。(スライス時は考慮しないヘッドの移動パスです)
何も考えない場合の経路はPs→Peの直線的な移動を示すG-Codeとなりますが、原因?で示したような、箇所を通過することになります。
そこで、PsからPeへ移動する最適経路として、閉領域内で経路探索すれば解決するはずです。
- 本機能は、現状検証段階であり、また、移動経路が長くなることから出力時間が伸びるため、パラメータによりON/OFFできるようにしている
4.おわりに
アルゴリズムの説明がない?と思われるかもしれませんが、上記考えから、アルゴリズム自体は迷路探索と同じようなものです。
実装した考えについては、まだ検証中で妥協している状態なので、今後改良を加えていきたいと思っています。
本機能を実装実験したときのものです。(上から、本スライサ機能OFF,本スライサ機能ON,他のスライサ)
赤い細い線がヘッドの移動ですが、機能ON時は出力物の領域からは基本でません。(右下にあるのは、開始と終了のときのヘッドの動き)