/*
 * ffslicer default is config file
 */

Precision = 0.05                // valid range [0.01, 0.2], default is 0.05
NozzleDiameter = 0.4            // valid range [0.1, 1.0], default is 0.4
FilamentDiameter = 1.75         // valid range [0.5, 10], default is 1.75
LayerHeight = 0.2               // valid range [0.05, 0.4], default is 0.2
FirstLayerHeight = 0.3          // valid range [0.05, 0.4], default is 0.3
PathMinWidth = 0.2              // valid range [0.05, 0.4], default is 0.2
PathMaxWidth = 0.4              // valid range [0.05, 0.4], default is 0.4
BaseSpeed = 60                  // valid range [10, 200], default is 60  
TravelSpeed = 120               // valid range [10, 200], default is 120 
RightTemp = 220                 // valid range [0, 250], PLA default 220, ABS default 220
LeftTemp = 220                  // valid range [0, 250], PLA default 220, ABS default 220
PlatTemp = 100                  // valid range [0, 250], PLA default 0, ABS default 100
FanStat = "auto"                // valid "auto", "enable", "disable", default is "auto"

/*
 * width = height * k + c
 */
PathWidthCoefficient {
    K = 0.0                     // valid range [0.0, 2], default is 0.0
    C = 0.4                     // valid range [0.0, 0.4], default is 0.4
}

Inset {
    Count = 2                   // valid range [0, 8], default is 2
    OverlapRatio = 0.3          // valid range [0, 1], default is 0.3
    PathStartRandom = false     // valid is {true, false}, default is false
}

Infill {
    Density = 0.20              // valid range [0.0, 1.0], default is 0.20
    Shape = "hexagon"           // valid valule is {"line", "hexagon"}, deafult is 'hexagon'

    /*
     * OutsetOverlapCount = InfillOverlapRatio * (EdigePathWidth + InfillPathWidth) / 2
     */
    InfillOverlapRatio = 0.15   // valid range (-0.7, 0.7), default is 0.15
    
    /*
     * angle = k * layer + c, layer-0 is the top layer
     */
    SolidInfillAngleCoefficient {
        K = 90                  // valid range [0, 360], default is 90
        C = 45                  // valid range [0, 360], default is 45
    }

    SparseInfillAngleCoefficient {
        K = 90                  // valid range [0, 360], default is 90
        C = 45                  // valid range [0, 360], default is 45
    }
}

Raft {
    Enable = false              // valid range {true, false}, default is false 
    ExtruderId = 0              // valid range {0, 1}, default is 0
    Margin = 5.0                // valid range [3.0, 10.0], default is 5.0
    LiftHeight = 0.21           // valid range [0.1, 0.4], default is 0.21

    BottomLayerHeight = 0.4     // valid range [0.2, 0.4], default is 0.4 
    BottomLayerWidth = 2.0      // valid range [0.4, 2.0], default is 2.0 
    BottomLayerDensity= 0.5     // valid range [0.05, 1.0], default is 0.5 
    BottomLayerSpeed = 10       // valid range [10, 30], default is 10 

    MiddleLayerHeight = 0.2     // valid range [0.1, 0.4], default is 0.2
    MiddleLayerWidth = 0.4      // valid range [0.1, 0.4], default is 0.4
    MiddleLayerDensity= 0.3     // valid range [0.05, 1.0], default is 0.3
    MiddleLayerSpeed = 60       // valid range [30, 80], default is 60 

    TopLayerHeight = 0.2        // valid range [0.2, 0.4], default is 0.2 
    TopLayerWidth = 0.4         // valid range [0.1, 0.4], default is 0.4 
    TopLayerDensity= 1.0        // valid range [0.05, 1.0], default is 1.0 
    TopLayerSpeed = 60          // valid range [30, 80], default is 60 
}

PreExtrude {
    Enable = true               // valid range {true, false}, default is true 
    LayerHeight = 0.2           // valid range [0.1, 0.4], default is 0.2
    PathWidth = 1.6             // valid range [0.4, 2.0], default is 1.6
    Speed = 20                  // valid range [10, 30], default is 20 
}

Retraction {
    Enable = true               // valid range {true, false}, default is true 
    RetractLength = 1.0         // valid range [0.5, 3.0], default is 1.0 
    RetractSpeed = 30           // valid range [10, 200], default is 20
}

Wall {
    Enable = false              // valid range {true, false}, default is false 
    ExtruderId = 0              // valid range {0, 1}, default is 0
    Count = 1                   // valid range [1, 5], default is 2
    Distance = 5.0              // valid range [3.0, 15.0], default is 5.0 
    Speed = 60                  // valid range [10, 200], default is 60
}

Speed {
    OutlineMaxSpeed = 80            // valid range [10, 80], default is 80 
    FirstLayerMaxSpeed = 20         // valid range [10, 60], default is 20 
    TopInfillMaxSpeed = 80          // valid range [10, 200], default is 80 
    BottomInfillMaxSpeed = 60       // valid range [10, 200], default is 60 
    OutlineSpeedRatio = 0.5         // valid range [0.1, 1.0], default is 0.5 
    InsetSpeedRatio = 0.7           // valid range [0.1, 1.0], default is 0.7 
    SolidInfillSpeedRatio = 0.6     // valid range [0.1, 1.0], default is 0.6 
    SparseInfillSpeedRatio = 1.0    // valid range [0.1, 1.0], default is 1.0 
}
