2014年7月6日日曜日

Slic3rで穴のサイズが小さくなる件について考察してみた

この件、色々なところで何度も話題になっている。
オフィシャル?な回答としては3Dモデルが円を円に内接する多角形として表現するため、どうしても円そのものよりも小さくなる、XY軸方向の揺れが積み重なるためという二つが示されているんだけど、mixiでgakuさんが指摘していたように四角い穴を作っても内側サイズが小さくなるので円に内接する多角形ってのがメインの理由じゃないっポイ。

そこで、30mmの四角形に20mmの四角い穴があいてるデータを用意。これを
Perimeters = 1
Solid layers, TOP = 0
infill = 0%
Extrusion width = 0.4mm
それ以外はいつも通りでG-codeを出力した。生成されたG-codeを見ると外側の四角形の一辺の長さが29.6mm、うちがわの四角形の一辺の長さが20.4mmになっている。ホットエンドが動いた軌道の両側に0.2mmずつプラスチックが出ればピッタリのはず。

で、印刷結果がコレ。
黄色いフィラメント使うと写真がうまくとれない(涙)
デジタルノギスでサイズ測定したところ、外側30.05mm(縦方向)、内側19.86mm(縦方向)。やはり穴が小さい。この時、壁の厚さを測ってみるとなんと0.46mm(左の一辺だけなぜか0.50mm)。大分多めにプラスチックが押し出されている。一応フィラメント径もエクストルーダーの押し出し量もあわせたつもりだったんですけどねぇ…

Extrusion multiplierを1から0.9に変更して再度G-codeを出力。当たり前ですがXYZの値は一切変わりません。Eの値だけが変化します。

印刷結果は写真だと見た目が変わらなかったので省略。サイズ測定の結果、外側30.01mm(縦方向)、内側19.99mm(縦方向)、壁の厚さ0.40mm(左の一辺だけなぜか0.44mm)。多めに押し出されたプラスチックが四角形の内側にだけはみ出していたと考えるとつじつまは合います。Slic3rはデフォルトだとモデルの内側から外側に向かってPerimeterを何周も出力します。
モデルの外形を出力する際は上の図の濃い方から薄い方へと出力しますがはみ出す方向は内側(濃い方)でしかも、infillで隠されてしまうので、あまり問題になりません。ところが穴を出力する場合、薄い方から濃い方へ出力するのに、内側(濃い方)にはみ出すので、余ったプラスチックがどんどん積み重なっていきます。その結果四角い穴でも小さく出力されてしまうのではないでしょうか?

この検証にはいくつか未解決の点があります。
  1. なぜ余剰に押し出されたプラスチックは内側にはみ出すのか?(検証方法すら検討付きません)
  2. 本当に余ったプラスチックが積み重なるのか?(Perimeters = 3くらいにしてExternal perimters firstのオンオフを比べてみればいいんだと思いますが、今日は力尽きました)
  3. なぜ左の一辺だけ分厚くなっていたのか?そのせいで横方向は穴のサイズがやや小さいです。右も同じ厚さだったらXYのキャリブレーションの問題だと思うんですが…
最近ずっと更新サボってたんで多分誰も見てないと思いますけど、反響が大きかったら続きがあるかもしれません。



2 件のコメント:

  1. もう1点考慮しないと項目が収縮率。

    ABSだと成型時の収縮率が0.4~0.9%ぐらいあるらしい。
    たとえば0.4%の収縮率だとすると外形30mmは29.88、内径20mmは19.92になるはず。
    ここでもし仮にExtrusion widthが実際には0.5mmとか多めに出ていた場合、
    外形30mmは29.93、内径20mmは19.87mmとなる。

    http://koza.misumi.jp/mold/2004/11/196.html

    まぁ想像だけど。

    今回の場合、Extrusion multiplierを変更することで外形・内径寸法は設計値に近づいたわけだけど、穴2穴の距離は収縮の影響で0.1~2mmぐらい短くなってる、と思う。

    返信削除
  2. arms22さん、コメントありがとうございます。樹脂の収縮率のことをすっかり忘れていました。設計値よりも外形内形ともに少し小さくなるのが正しい値だとすると私の設定はまだ吐出量が多すぎるかも…もう少し頑張ってみます。

    返信削除