忍者ブログ
Slic3rの設定についてまとめてます。Slic3rの日本語版が見当たらなかったので、使い方をまとめました。 最近はC#のメモ帳代わりになってます。

独り言 | Slic3rソースコードを覗く

スポンサーリンク
Slic3rはオープンソースで開発がされているので、誰でも開発に参加出来るらしいです。

ここ、https://github.com/alexrj/Slic3r でソースコードが管理されているみたいです。

リンク先の検索機能を駆使して押出し幅の部分を覗いてみました。

たぶんここで押出し幅を決めていると思います。


/* This static method returns a sane extrusion width default. */
float
Flow::_auto_width(FlowRole role, float nozzle_diameter, float height) {
    // here we calculate a sane default by matching the flow speed (at the nozzle) and the feed rate
    // shape: rectangle with semicircles at the ends
    float width = ((nozzle_diameter*nozzle_diameter) * PI + (height*height) * (4.0 - PI)) / (4.0 * height);
    
    float min = nozzle_diameter * 1.05;
    float max = -1;
    if (role == frExternalPerimeter || role == frSupportMaterial) {
        min = max = nozzle_diameter;
    } else if (role != frInfill) {
        // do not limit width for sparse infill so that we use full native flow for it
        max = nozzle_diameter * 1.7;
    }
    if (max != -1 && width > max) width = max;
    if (width < min) width = min;
    
    return width;
}


FlowRoleって何ぞや?と同じように検索すると


enum FlowRole {
    frExternalPerimeter,
    frPerimeter,
    frInfill,
    frSolidInfill,
    frTopSolidInfill,
    frSupportMaterial,
    frSupportMaterialInterface,
}


となっていたので、造形している場所のフラグのようでした。

とりあえずここまで、あとでゆっくり見てみる。
なんか腑に落ちないな。見ているソース間違えているかな?


関連記事