Ultimaker Cura プリント設定の解説 メッシュ修正(Mesh Fixes)

メッシュって何だ? 何を修正する?

今回はメッシュ修正の設定を解説しますが、そもそもメッシュってなによっ?て話からしておきます。そんなのわかってるって方は飛ばしてください。
モデルを作成する場合、Fusion360などのソフトウェアでモデルを作り、Curaで読み込める形式に書き出しますが、その形式のモデルの表現の仕方は左図のようにモデルの表面が三角形の面で覆い尽くされたものとなります。このように三角形だけで表したものをメッシュデータといいます。面の厚さや体積などのデータは全く含まれていません。もし、右図のように何らかの原因でメッシュの一部が欠けていた場合、それを読み込んだCuraは ”何かおかしいよっ” て教えてくれます。

メッシュを直接編集できる “MeshLab” というソフトに
stlファイルを読み込んだところ
メッシュの一部を破壊

その様子がこちら。左図はCuraの ”準備する” の画面です。掛けたメッシュの隙間からモデルの内部が覗けます。右図は ”透視ビューイング” での見え方です。欠けている部分が赤く表示されます。もし、モデルの裏側に欠陥があった場合でも赤く見えますので、見落としがありません。

破壊された部分からメルヘンな世界が。
おかしい部分が赤く見える。

画面下には次のように、「モデルを修正してもう一度Curaを開いてください」というエラーメッセージが表示されます。

以後必要なければ、「今後・・・」にチェックを。
必要になったらプレファレンスで復活できる。

自分で作ったモデルであれば、モデリングのソフトに戻って修正可能ですが、メッシュデータをネットから拾ってきた場合などでは修正することが出来ません。そんな時にこのメッシュ修正で何とか出来る場合があります。メッシュ修正という名称なので直接メッシュを操作しそうですが、Curaでメッシュを修正することはなく、異常なままでどうにか面を補完してスライスしようとします。また、メッシュの異常だけでなく正常なメッシュ(モデル)が重なっている時の処理などの設定も行えます。
では、項目ごとに見ていきましょう。


重複量(Union Overlapping Volumes)

微妙な和訳ですが、モデル同士が重なっている時に、重なった部分の印刷をどうするのかを選択します。”準備する” の画面ではモデル同士が重なっていることはわかりませんが、”透視ビューイング” では重なった部分を見ることが出来ます。デフォルトの有効ではひとつのモデルとしてスライスします。内部の元のデータは無視されます。無効の場合は、重なった部分には何も印刷されません。上部にオーバーハングが存在すればサポートが生成されます。

通常の画面では重なっていることはわからない。
透視ビューイングで重なっていることがわかる。
有効にした場合の内部
無効の時の内部

この設定は、ひとつのメッシュデータの中で複数のモデルが重なっている場合にのみ機能します。Curaに複数のデータを読み込んで、Cura上で重ね合わせた場合は対象外です。この場合の重なった部分の設定は [重複メッシュの削除] で行います。

[重複量] が有効の場合の重なり部分の違い。
左はCura上で重ね合わせた場合で、右はモデリングソフト上で
重ねた後に、結合しないでそれぞれのモデルのデータを保ったまま
ひとつのメッシュデータに変換した場合。

全穴除去(Remove All Holes)

モデルの内部に空間が存在する場合の処理を選択します。通常の画面では内部の状況はわかりませんが、透視ビューイングでは確認ができます。デフォルトの無効ではデータ通りに内部にも外壁があるモデルとしてスライスされます。上部にオーバーハングがあればサポートが生成されます。有効にすると内部の空間を無視して全体をインフィルで埋めます。

外観ではわからない。
透視ビューイングで
確認できる。
全穴除去:無効
全穴除去:有効

内部に空間を設ける設計意図は軽量化、強度、重心位置、製造方法など色々あるかと思いますが、印刷時間、重量に関して言えば、この設定を有効にしたほうが良い場合(インフィル密度など設定にもよりますが)もあります。例えば上図モデル(直径30mm、高さ35mm)を印刷した結果は以下のとおりです。

全穴除去:無効
全穴除去:有効

内部空間が完全に閉じていなくても開放する位置によっては空間が埋まります。例えば、上下方向の穴で内部空間が開放されていても、この機能は有効です。水平方向で開放された場合はそのレイヤーの空間はモデリング通りに空間がスライスされます。

全穴除去:無効
底と壁面に穴が存在
全穴除去:有効
側面の穴まではスキン及びインフィルで
埋まるが、側面の穴があるレイヤーは
空間が残る。
全穴除去:有効
穴から上もスキン及びインフィルで
埋まる。

強めのスティッチング(Extensive Stitching)

左図のようなメッシュの欠けたモデルを他のモデルの壁面に配置し、完全に結合しない状態でひとつのメッシュデータとした場合、印刷できないことがあります。

左図はこの設定を無効(デフォルト)にした時の結果で、データの欠けているモデルが全く印刷されません。有効にした場合は欠けた面が補完され印刷可能となります。つながった部分の内部構造は一体化されるようです。

強めのスティッチング:無効
強めのスティッチング:有効
内部の構造は完全に一体化

スティッチできない部分を保持(Keep Disconnected Faces)

メッシュデータの欠落により、面に穴が空いている場合は通常そのレイヤーは印刷されません。ここを有効にすると印刷可能となりますが、対象レイヤーの欠落した2点間を直線で補完するだけなので元の形状が再現されるわけではありません。

元はこんな形状
メッシュを削除
メッシュの欠落があると印刷されない。欠落部分の上部は距離が短いので、無効でも補完されている。
有効にした場合。
直線での補完なので、元の形とは程遠い。

この設定が無効の場合でも、一定距離以内のメッシュの欠落は自動的に補完されるようです。様々な場合を試したわけではありませんが、上図モデルのような単純な形状でしたら10mm以下の欠落距離なら直線で再現されます。右から2番めの図も、欠落上部の幅の狭い部分は直線になっています。


重複メッシュのマージ(Merged Meshes Overlap)

複数のモデルをCura上に読み込んで、配置位置により接触させ一体化したい時、モデルの接触している部分のみが伸張し、ここの設定値の分だけ互いに重なり合います。ラインが重なり合うことで接着力が増します。ただし、あまり大きい値を設定すると重なりすぎて押出過多となります。大きくてもライン幅の50%以下が妥当なようです。

重複メッシュのマージ:0mm
重複メッシュのマージ:0.2mm

重複メッシュの削除(Remove Mesh Intersection)

複数のモデルをCura上に読み込んで、重ねて配置した時に、重なった部分の印刷を、両方とも印刷するのかどちらかのみを印刷するのかを選択します。デフォルトは無効で、重なった全てのモデルがそれぞれにデータ通りの印刷をします。従って、ラインの交差する箇所はもちろん、ラインが重なってしまうと全てにおいて押出過多となります。有効にするといずれかのモデルが形状通りに印刷され、残りのモデルはそれを避けるように変形されます。

重複メッシュの削除:無効
重複メッシュの削除:有効

代替メッシュの削除(Alternate Mesh Removal)

[重複メッシュの削除] を有効にした場合に、1つのモデルがすべてのレイヤーで優先されるのか、レイヤーごとに印刷するモデルを入れ替えるのかを選択します。デフォルトは有効で、互い違いに印刷するモデルが入れ替わります。重複している部分にインフィルは生成されず、ウォールおよびスキンのみが重なっていきます。重なった面積と印刷密度次第では印刷時間が長くなります。

代替メッシュの削除:有効
右図のひとつ下のレイヤー。
代替メッシュの削除:有効
左図のひとつ上のレイヤー

空の最初のメッシュの削除(Remove Empty First Layers)

[サポート開始] が無効の場合にのみ設定できる項目です。デフォルトは有効で、モデル最下層よりも下側に空のレイヤーが存在する場合に、モデル最下面がビルドプレートに載るまで空のレイヤーを削除します。「自動的にモデルをビルドプレートに落とす」という設定が有効になっている場合は、あまり意識しないでいいと思います。

kここnこのこ

最大解像度(Maximum Resolution)

3Dプリンターは直線の動きしか受け付けません。直線を印刷する時は問題ありませんが、曲線を描く時も短い直線で表します。なるべく短い直線でつないだほうが滑らかな曲線になりますが、あまり短くなりすぎるとCPUの演算が間に合わなくなります。すると、演算が終了するのを待つため印刷速度が遅くなります。最大解像度には、これを防ぐために直線の最小長さを設定します。次の頂点までの距離がこの長さより短い場合は、ひとつ先の頂点と繋いで直線を長くしようとしますが、元のパスとのズレと、[最大偏差] の値を比較して、直線を伸ばすかどうかの最終判断をします。

最大解像度:0.5mm
最大解像度:2mm
長い距離を設定すると解像度は下がる。
最大偏差も変更している。理由は最大偏差による制限を無くすため。
詳しくは最大偏差の項目で

最大移動解像度(Maximum Travel Resolution)

3Dプリンターは直線しか受け付けないと書きましたが、フィラメントの押し出しを伴わない移動時の動作も同様です。ここには移動時の線分の最小長さを設定します。印刷時よりも移動速度が速いので、こちらのほうが長くなり解像度が下がります。ただ、フィラメントを押し出していないので、印刷品質に大きな影響は与えません。移動は直線で行われることが多いですが、コーミングモードにおいて回避動作をしている時は印刷時と同じコーナーを曲がることになります。


最大偏差(Maximum Deviation)

線分の最小長さによって解像度を調整することはお話しした通りですが、曲率のきつい細部においては最小長さを守るだけではモデル形状を逸脱することになりかねません。この設定は解像度が低下した新しいパスが元のパスと比べてどの程度ずれても大丈夫なのかを設定します。長さ制限に引っ掛かって長くなろうとする新しいパスと元のパスのズレ量が、ここの設定値を超えた場合は線分が長くなることをあきらめ、元のパスで描かれます。従って、解像度を下げようとして [最大解像度] の値のみを変更しても、ここの設定値の影響で解像度が下がりませんので、両方をバランスよく調整する必要があります。

最大解像度と最大偏差の関係


さて、ここで一番知りたいのは、現在出回っている3Dプリンターが、どの程度の解像度のデータを印刷できるかということだと思うのですが、いかがでしょう。で、すみません。未検証です。デフォルトの値で処理速度が追いついてないような兆候もないですし、サラッと検索しても有益な情報にたどり着きませんので、デフォルトのままで印刷しております。何かわかりましたら報告します。