mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-14 07:25:53 +08:00
gap fill option (instead of 0% infill)
This commit is contained in:
parent
86323a6b73
commit
8b9fb5b654
@ -293,7 +293,7 @@ void PerimeterGenerator::process()
|
||||
next_onion = offset_ex(last, -(float)(distance));
|
||||
}
|
||||
// look for gaps
|
||||
if (this->config->gap_fill_speed.value > 0 && this->config->fill_density.value > 0)
|
||||
if (this->config->gap_fill_speed.value > 0 && this->config->gap_fill)
|
||||
// not using safety offset here would "detect" very narrow gaps
|
||||
// (but still long enough to escape the area threshold) that gap fill
|
||||
// won't be able to fill but we'd still remove from infill area
|
||||
|
@ -871,13 +871,21 @@ PrintConfigDef::PrintConfigDef()
|
||||
def->cli = "first-layer-temperature=i@";
|
||||
def->min = 0;
|
||||
def->max = max_temp;
|
||||
def->default_value = new ConfigOptionInts { 200 };
|
||||
|
||||
def->default_value = new ConfigOptionInts{ 200 };
|
||||
|
||||
def = this->add("gap_fill", coBool);
|
||||
def->label = L("Gap fill");
|
||||
def->category = L("Advanced");
|
||||
def->tooltip = L("Enable gap fill algorithm. It will extrude small lines between perimeter "
|
||||
"when there are not enough space for an other perimeter or an infill.");
|
||||
def->cli = "gap-fill!";
|
||||
def->default_value = new ConfigOptionBool(true);
|
||||
|
||||
def = this->add("gap_fill_speed", coFloat);
|
||||
def->label = L("Gap fill");
|
||||
def->category = L("Speed");
|
||||
def->tooltip = L("Speed for filling small gaps using short zigzag moves. Keep this reasonably low "
|
||||
"to avoid too much shaking and resonance issues. Set zero to disable gaps filling.");
|
||||
"to avoid too much shaking and resonance issues. Set zero to disable gaps filling.");
|
||||
def->sidetext = L("mm/s");
|
||||
def->cli = "gap-fill-speed=f";
|
||||
def->min = 0;
|
||||
|
@ -423,6 +423,7 @@ public:
|
||||
ConfigOptionFloat fill_angle;
|
||||
ConfigOptionPercent fill_density;
|
||||
ConfigOptionEnum<InfillPattern> fill_pattern;
|
||||
ConfigOptionBool gap_fill;
|
||||
ConfigOptionFloat gap_fill_speed;
|
||||
ConfigOptionInt infill_extruder;
|
||||
ConfigOptionFloatOrPercent infill_extrusion_width;
|
||||
@ -473,6 +474,7 @@ protected:
|
||||
OPT_PTR(fill_angle);
|
||||
OPT_PTR(fill_density);
|
||||
OPT_PTR(fill_pattern);
|
||||
OPT_PTR(gap_fill);
|
||||
OPT_PTR(gap_fill_speed);
|
||||
OPT_PTR(infill_extruder);
|
||||
OPT_PTR(infill_extrusion_width);
|
||||
|
@ -149,6 +149,7 @@ bool PrintObject::invalidate_state_by_config_options(const std::vector<t_config_
|
||||
for (const t_config_option_key &opt_key : opt_keys) {
|
||||
if ( opt_key == "perimeters"
|
||||
|| opt_key == "extra_perimeters"
|
||||
|| opt_key == "gap_fill"
|
||||
|| opt_key == "gap_fill_speed"
|
||||
|| opt_key == "overhangs"
|
||||
|| opt_key == "first_layer_extrusion_width"
|
||||
|
@ -290,7 +290,7 @@ const std::vector<std::string>& Preset::print_options()
|
||||
"max_volumetric_speed", "max_volumetric_extrusion_rate_slope_positive", "max_volumetric_extrusion_rate_slope_negative",
|
||||
"perimeter_speed", "small_perimeter_speed", "external_perimeter_speed", "infill_speed", "solid_infill_speed",
|
||||
"top_solid_infill_speed", "support_material_speed", "support_material_xy_spacing", "support_material_interface_speed",
|
||||
"bridge_speed", "gap_fill_speed", "travel_speed", "first_layer_speed", "perimeter_acceleration", "infill_acceleration",
|
||||
"bridge_speed", "gap_fill", "gap_fill_speed", "travel_speed", "first_layer_speed", "perimeter_acceleration", "infill_acceleration",
|
||||
"bridge_acceleration", "first_layer_acceleration", "default_acceleration", "skirts", "skirt_distance", "skirt_height",
|
||||
"min_skirt_length", "brim_width", "support_material", "support_material_threshold", "support_material_enforce_layers",
|
||||
"raft_layers", "support_material_pattern", "support_material_with_sheath", "support_material_spacing",
|
||||
|
@ -850,7 +850,8 @@ void TabPrint::build()
|
||||
line.append_option(optgroup->get_option("bridged_infill_margin"));
|
||||
optgroup->append_line(line);
|
||||
optgroup->append_single_option_line("only_retract_when_crossing_perimeters");
|
||||
optgroup->append_single_option_line("infill_first");
|
||||
optgroup->append_single_option_line("infill_first");
|
||||
optgroup->append_single_option_line("gap_fill");
|
||||
|
||||
page = add_options_page(_(L("Skirt and brim")), "box.png");
|
||||
optgroup = page->new_optgroup(_(L("Skirt")));
|
||||
@ -1212,7 +1213,7 @@ void TabPrint::update()
|
||||
"infill_speed", "bridge_speed" })
|
||||
get_field(el)->toggle(have_infill || have_solid_infill);
|
||||
|
||||
get_field("gap_fill_speed")->toggle(have_perimeters && have_infill);
|
||||
get_field("gap_fill_speed")->toggle(have_perimeters && m_config->option<ConfigOptionPercent>("gap_fill"));
|
||||
|
||||
bool have_top_solid_infill = m_config->opt_int("top_solid_layers") > 0;
|
||||
for (auto el : { "top_infill_extrusion_width", "top_solid_infill_speed" })
|
||||
|
Loading…
x
Reference in New Issue
Block a user