mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-11 01:41:03 +00:00
Merge remote-tracking branch 'upstream/main' into feedback
This commit is contained in:
@@ -714,6 +714,18 @@ void PrintConfigDef::init_common_params()
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionInt(1));
|
||||
|
||||
def = this->add("elefant_foot_layers_density", coPercent);
|
||||
def->label = L("Elefant foot layers density");
|
||||
def->category = L("Quality");
|
||||
def->tooltip = L("Density of internal solid infill for elefant foot layers compensation. "
|
||||
"The initial value for the second layer is set. "
|
||||
"Subsequent layers become linearly denser by the height specified in elefant_foot_compensation_layers. ");
|
||||
def->sidetext = "%";
|
||||
def->min = 50;
|
||||
def->max = 100;
|
||||
def->mode = comExpert;
|
||||
def->set_default_value(new ConfigOptionPercent(100));
|
||||
|
||||
def = this->add("layer_height", coFloat);
|
||||
def->label = L("Layer height");
|
||||
def->category = L("Quality");
|
||||
@@ -2602,7 +2614,7 @@ void PrintConfigDef::init_fff_params()
|
||||
def->label = L("Number of cooling moves");
|
||||
def->tooltip = L("Filament is cooled by being moved back and forth in the "
|
||||
"cooling tubes. Specify desired number of these moves.");
|
||||
def->max = 0;
|
||||
def->min = 0;
|
||||
def->max = 20;
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionInts { 4 });
|
||||
@@ -6915,6 +6927,29 @@ void PrintConfigDef::init_fff_params()
|
||||
def->max = 25.0;
|
||||
def->set_default_value(new ConfigOptionFloat(0.5));
|
||||
|
||||
def = this->add("wall_maximum_resolution", coFloat);
|
||||
def->label = L("Maximum wall resolution");
|
||||
def->category = L("Quality");
|
||||
def->tooltip = L("This value determines the smallest wall line segment length in mm. "
|
||||
"The smaller you set this value, the more accurate and precise the walls will be.");
|
||||
def->sidetext = L("mm"); // millimeters, CIS languages need translation
|
||||
def->mode = comExpert;
|
||||
def->min = 0.005;
|
||||
def->max = 0.5f;
|
||||
def->set_default_value(new ConfigOptionFloat(0.5f));
|
||||
|
||||
def = this->add("wall_maximum_deviation", coFloat);
|
||||
def->label = L("Maximum wall deviation");
|
||||
def->category = L("Quality");
|
||||
def->tooltip = L("The maximum deviation allowed when reducing the resolution for the 'Maximum wall resolution' setting. If you increase this, "
|
||||
"the print will be less accurate, but the G-Code will be smaller. 'Maximum wall deviation' limits 'Maximum wall resolution', "
|
||||
"so if the two conflict, 'Maximum wall deviation' takes precedence.");
|
||||
def->sidetext = L("mm"); // millimeters, CIS languages need translation
|
||||
def->mode = comExpert;
|
||||
def->min = 0.005f;
|
||||
def->max = 0.05f;
|
||||
def->set_default_value(new ConfigOptionFloat(0.025f));
|
||||
|
||||
def = this->add("initial_layer_min_bead_width", coPercent);
|
||||
def->label = L("First layer minimum wall width");
|
||||
def->category = L("Quality");
|
||||
@@ -11063,8 +11098,32 @@ bool has_skirt(const DynamicPrintConfig& cfg)
|
||||
|| (opt_draft_shield && opt_draft_shield->getInt() != dsDisabled);
|
||||
}
|
||||
float get_real_skirt_dist(const DynamicPrintConfig& cfg) {
|
||||
return has_skirt(cfg) ? cfg.opt_float("skirt_distance") : 0;
|
||||
if (!has_skirt(cfg)) return 0.f;
|
||||
|
||||
float dist = cfg.opt_float("skirt_distance");
|
||||
|
||||
int loops = cfg.opt_int("skirt_loops");
|
||||
auto opt_draft_shield = cfg.option("draft_shield");
|
||||
if (opt_draft_shield && opt_draft_shield->getInt() != dsDisabled && loops == 0) {
|
||||
loops = 1;
|
||||
}
|
||||
|
||||
float width = cfg.opt_float("initial_layer_line_width");
|
||||
if (width <= 0.f) {
|
||||
width = cfg.opt_float("line_width");
|
||||
}
|
||||
if (width <= 0.f) {
|
||||
auto* nd = cfg.opt<ConfigOptionFloats>("nozzle_diameter");
|
||||
if (nd && !nd->values.empty()) {
|
||||
width = *std::max_element(nd->values.begin(), nd->values.end());
|
||||
} else {
|
||||
width = 0.4f;
|
||||
}
|
||||
}
|
||||
|
||||
return dist + loops * width;
|
||||
}
|
||||
|
||||
static bool is_XL_printer(const std::string& printer_notes)
|
||||
{
|
||||
return boost::algorithm::contains(printer_notes, "PRINTER_VENDOR_PRUSA3D")
|
||||
|
||||
Reference in New Issue
Block a user