FDM 3D プリンタのスライス設定と STL エラー対策

Page content

今回も引き続き 3D プリンタ系の話です。

3D プリントの出来

3D プリントの出来は次の要素で決まります。

  • 3D プリンタの性能
  • フィラメントの性能
  • スライサーの性能、パラメータ

どんなに良い 3D プリンタやフィラメントを使っても、 スライサーの性能が悪い、 スライサーのパラメータの設定が正しくない場合、 意図したプリントは出来ません。

Ultimaker cura

3D プリンタでオブジェクトをプリントするには、 3D オブジェクトを積層データ形式に変換する必要があります。

この変換処理を行なうのがスライサーです。 スライサーには幾つかの種類がありますが、 Ultimaker cura はオープンソースで開発されています。

<https://github.com/Ultimaker/Cura>

Ultimaker cura は、3D モデルを基にスライスする専門ツールで、 モデリングは別のツールで行なう必要があります。

以降は cura ver 5.2.1 について書いています。

cura のバージョンが違う場合は、この記事の内容と異なることがあります。

cura の設定

cura の簡易設定で Resolution を一番細かい設定にし、 Support On を選択しておけば大抵は間違いは無いですが、 それだと時間がかかり過ぎることもあります。

逆に Resolution を一番粗い設定にすれば時間は短縮できますが、 プリントをミスする可能性が出てきます。

自分が求めるプリント品質と時間を両立させには、 cura のカスタム設定でパラメータを適宜指定する必要があります。

主なパラメータ

cura のパラメータの内、特に重要なカテゴリは以下です。

  • Quality

    • フィラメントを積層する精度を指定します
    • 細かくすれば精度は上りますが、その分時間がかかります
  • Walls

    • オブジェクトの側面の構成を指定します
    • 側面の構成を変更することで、強度や見た目に影響します
  • Top/Bottom

    • オブジェクトの上面、底面の構成を指定します
    • 上面、底面の構成を変更することで、強度や見た目に影響します
  • Infill

    • オブジェクト内部の構成を指定します
    • 内部の構成を変更するとこで、強度に影響します
  • Material

    • フィラメントの特性を指定します
    • プリント速度を上げる場合は、 フィラメントの対応温度の範囲内の上限付近に設定する方が良い傾向にあります
  • Speed

    • フィラメントのプリント速度を指定します
    • 速度を早めればプリント時間が短縮しますが、その分精度が落ちます
    • 速度はオブジェクトのパーツ毎に指定できます
    • 見た目に影響の大きい表面のプリント速度を遅くし、 影響の少ないオブジェクト内部やサポートのプリント速度を上げるなどの調整が出来ます
    • ただし、 影響の少ないパーツでも、 速度を上げ過ぎるとプリント自体が失敗する可能性があります
  • Support

    • サポートの構成を設定します
    • サポートの剥し易さや、印刷速度に影響します
    • support placement は、サポートの配置を指定します。

      • touching buildplate は、必ずビルドプレートからサポート材を配置するようにします
      • Eveywhere は、プリントしたモデルからもサポート材を配置します。
      • 現在 touching buildplate を指定すると、 本来サポートが必要な箇所にサポートが構成されずにプリントが失敗するケースがあります。
      • touching buildplate は、モデルに余分なサポート材が付加されないため 仕上りがキレイになるメリットがありますが、上記の通り失敗することもあるので、 touching buildplate を利用する場合はスライス結果を十分に確認してください。
  • Build Plate Adhesion

    • オブジェクトのプリント開始時の設定をします
    • オブジェクトとプリントベッドとの接触が悪い場合などに調整を行ないます

なお、 デフォルト状態では幾つかのパラメータが非表示になっています。

プロファイルの表示設定を変更することで、設定可能なパラメータが表示されます。

サポートは必要悪

3D プリントにはサポート材が必要になるケースがあります。

しかし、オブジェクトとサポートの接地面は 荒れます。 スライサーをどう設定したところで、荒れます。

これはシングルノズルの FDM 式の特性上 避けられません。

サポートの矛盾

スライスは点と点を結んで線を構成し、 その線を複数結ぶことで複雑なオブジェクトを形成します。 この点と点を結んで固定するには、 下の層と接着させる 必要があります。 通常この下の層は、プリント対象のオブジェクトの層になります。 しかし、オブジェクトがない場合、サポートが形成されます。

このサポートと、スライスの線が接着されて複雑な図形を形成しますが、 サポートはプリント後に取り除き易くするために面が荒く作られています。 そして、面が荒く作られているということは、 スライスの線と 固定できる箇所が限られ、 当然の結果スライスで形成される図形も荒くなります。 仮にサポートの面が格子状に作られていた場合、 スライスの線が固定出来る箇所は、その格子状にしかありません。 スライスの線の固定したいポイントが格子状にない場合は、 どこか近い場所に固定されます。

対策として、サポートの面を細かく形成してスライスの線との密着度を上げた場合を考えると、 今度は プリント後にサポートを取り除くことが困難になってしまいます。

FDM 式には、このサポートの矛盾があり、サポート接地面が荒くなります。

これを解決するには、サポートの接地面を構成する特別な水溶性等のフィラメントを用意し、 オブジェクト用とサポート接地面用の二つのノズルを制御してプリントしていく方法が考えられます。 しかし、多くの家庭用 3D プリンタに搭載されているノズルは 1 つであり、 このような制御は不可能です。

軽減策

では、どうすれば良いかと言えば、 できるだけサポートを使わないようにするしかありません。

できるだけサポートを使わないようにする方法に、 スライス時の オブジェクトの傾き調整 があります。

サポートが生成される条件は、 プリントするスライスの直下にオブジェクトの層がない場合です。

つまり、この条件が出来るだけ当て嵌まらないようにすれば、 サポートの必要量を減らせます。

なお、この条件の「直下にオブジェクトの層がない」は、 実際には少し条件が異なります。

直下に層がなくても、近傍に層があればサポートは不要になります。

具体的には、cura のスライス結果を下から見上げた時に、 赤だけが表示されている場合は直下に層がなくても大丈夫な面です。

つまり、スライスの 下向きの面がなるべく赤くなるように調整する ことで、 サポートを減らせます。

また、サポートの数が多くても目立たない箇所であれば、 さほど気にならないので、 敢えてサポートの数を増やしてでも目立たない箇所にサポートが作られるように傾ける、 という方法も考えられます。

オブジェクトを傾けてサポートを削減した場合 Raft が必須

上記の通り、オブジェクトを傾けることで、サポートを減らせます。 一方で、サポートの量を十分減らせた場合、次の問題が発生することがあります。

  • 傾けたことでプリントベッドとの接地面が少なくなる

    • 接地面が少なくなることで接着力が弱くなる
  • 傾けたことでオブジェクトの重量バランスが悪くなる
  • 接着力が弱くなり、重量バランスも悪くなることで プリント中にオブジェクトがプリントベッドから外れプリントが失敗する

この問題を避けるには、 プリントベッドとの接着力強化が必要です。

それが Raft です。

Raft は、プリントベッドから伸びるサポート周辺に土台を構成することで、 プリントベッドとの接着力を強化します。

なお、 オブジェクトを傾けた場合だけでなく、 オブジェクトの上部に比べてプリントベッドとの接地面が少ないような場合は Raft が必要です。

Raft を使用する場合、 Build Plate Adhesion Type に Raft を指定します。

サポートの強化

Raft を使用しただけでは不十分なケース があります。

それは、構成されるサポートが極度に細くて貧弱な場合です。

この場合、Raft を作っても肝心のサポートが貧弱だと、 プリント中に折れるなど不慮の事故が発生する 可能性があります。

サポートはプリント対象のオブジェクトとは異なり、 通常 1 ストローク分しかプリントされない、かつ、 そもそもサポートは剥し易く構成されます。

これによって、 サポートが極度に貧弱な場合、 Raft があってもサポート自体が途中で折れる危険があります。

なお、そもそもこのような折れそうなサポートは不要とも言えます。 サポートが無くても大丈夫そうな場合は、 cura の Support Blocker でサポートが付いている領域を指定することで、 そのサポートを除去できます。

除去できない貧弱なサポートがある場合、 サポート自体の強化 が必要です。

サポート自体の強化は、次の 2 つです。

  • サポートの壁の厚みを増す (Support Wall Line Count)

    • 通常、 1 ストローク分しかプリントされないサポートの壁を指定した数に増やします
    • 少なくとも 3 周はしないと耐えられないです
  • サポートの幅を増す (Support Horizontal Expansion)

    • 必要最低限の幅しか生成されないサポートの幅を増やすことで、安定度を増します
    • 前述の壁の厚みを増す設定をしても、元の大きさが小さいと壁が3周しないケースがあります。
    • そのような場合に、これを指定して強制的にサポートを広けます

また、デフォルトのサポート材のプリントスピードは、比較的早いスピードが設定されています 早いスピードは安定した土台があることが前提なので、 サポートが貧弱な場合はサポートのプリントスピードを下げた方が安定します。

上記設定によって、貧弱なサポートが強化され、 プリント中で折れることを防ぐことができます。

サポート用を追加する

モデルによっては、Raft を設定するだけでは保持できないケースがあります。

例えば、立方体の Z 軸を 45 度に傾けたモデルをスライスすると、 全くサポートが生成されません。

これはサポートが生成されなくても問題ない、ということではないです。

どう考えても、途中でバランスを崩して倒れます。

このような場合は、以下のいずれかで対応します。

  • support overhang angle を小さくする
  • サポートとなるモデルを追加する

なお、 support overhang angle を小さくすると、 全体に影響が出るので多少面倒でもサポートとなるモデルを追加する方が、 仕上りが良くなるケースがあります。

STL エラー対策

スライサーを使う上で一番面倒なのが、モデリングデータのエラーです。

モデリングしたデータは、一見問題なさそうに思えても、 実際には問題があるケースがあります。

本来は、そのデータをモデリングしたツールでモデルを修正するべきですが、 モデル公開サイトから取得したデータなどは修正が難しいことがあります。

cura は、そのような場合にエラーを修正してプリントできるようにする機能があります。

エラー修正は、cure のパラメータカテゴリの Mesh fixes を使います。

Mesh fixes のカテゴリ自体、 通常だと表示されていません。 プロファイルの表示設定を変更して Mesh fixes の項目を設定してください。

Mesh fixes を有効化してスライスした場合は、 スライス結果が意図しないものになっていることがあります。 オブジェクトの傾きによってもスライス結果が異なる場合があるため、 注意が必要です。

実際にプリントする前にスライスした結果を確認しましょう。

Mesh fixes は、 修正できないモデルの印刷には効果的です。 しかし、安易に使用すると意図しないスライス結果になることもあります。

エラーのあるモデルのプリントに Mesh fixes の設定を利用した後は、 設定を元に戻した方が良いでしょう。

なお、MS 3D Builder を利用すると、モデリングデータのエラーを修正出来ます。 ただし、この場合もエラーが修正されただけで、 意図しない修正になっていることがあります。 実際にプリントする前に、スライスした結果を確認しましょう。

Mesh fixes 時の対策

上記の通り Mesh fixes でエラーを修正すると、 意図しないスライス結果になるケースがあります。

多少のノイズならそのままプリントしてしまっても問題ありませんが、 致命的なノイズだとプリントしてもゴミが出来るだけなので、プリントできません。

このような対策として、 次を行なうと効果があります。

  • モデリングソフトを使って、エラーが発生するモデルと、 エラーが発生しないモデルに分割する
  • それぞれのモデルを cura で読み込む
  • cura 上で組み立てる

これにより、エラーが発生しないモデルにはエラー修正の影響がなくなり、 プリント可能な範囲のノイズに抑えることが出来ることが可能性があります。