mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-12 21:29:00 +08:00
Allow autospeed for gap fill. Now gap_fill_speed = 0 enabled autospeed (consistenly with other speed settings) and does not disable gap fill. A new fill_gaps option, defaulting to true, was added for this purpose. #2976
This commit is contained in:
parent
4e586b8eda
commit
5470e89f7a
@ -466,7 +466,7 @@ sub build {
|
||||
top_solid_layers bottom_solid_layers
|
||||
extra_perimeters avoid_crossing_perimeters thin_walls overhangs
|
||||
seam_position external_perimeters_first
|
||||
fill_density fill_pattern external_fill_pattern
|
||||
fill_density fill_pattern external_fill_pattern fill_gaps
|
||||
infill_every_layers infill_only_where_needed
|
||||
solid_infill_every_layers fill_angle solid_infill_below_area
|
||||
only_retract_when_crossing_perimeters infill_first
|
||||
@ -551,6 +551,7 @@ sub build {
|
||||
}
|
||||
{
|
||||
my $optgroup = $page->new_optgroup('Advanced');
|
||||
$optgroup->append_single_option_line('fill_gaps');
|
||||
$optgroup->append_single_option_line('solid_infill_every_layers');
|
||||
$optgroup->append_single_option_line('fill_angle');
|
||||
$optgroup->append_single_option_line('solid_infill_below_area');
|
||||
@ -835,7 +836,8 @@ sub _update {
|
||||
$self->get_field($_)->toggle($have_infill || $have_solid_infill)
|
||||
for qw(fill_angle infill_extrusion_width infill_speed bridge_speed);
|
||||
|
||||
$self->get_field('gap_fill_speed')->toggle($have_perimeters && $have_infill);
|
||||
$self->get_field('fill_gaps')->toggle($have_perimeters && $have_infill);
|
||||
$self->get_field('gap_fill_speed')->toggle($have_perimeters && $have_infill && $config->fill_gaps);
|
||||
|
||||
my $have_top_solid_infill = $config->top_solid_layers > 0;
|
||||
$self->get_field($_)->toggle($have_top_solid_infill)
|
||||
|
@ -329,7 +329,8 @@ sub process_layer {
|
||||
if ($region->config->get_abs_value('infill_speed') == 0
|
||||
|| $region->config->get_abs_value('solid_infill_speed') == 0
|
||||
|| $region->config->get_abs_value('top_solid_infill_speed') == 0
|
||||
|| $region->config->get_abs_value('bridge_speed') == 0) {
|
||||
|| $region->config->get_abs_value('bridge_speed') == 0
|
||||
|| $region->config->get_abs_value('gap_fill_speed') == 0) {
|
||||
push @mm3_per_mm, $layerm->fills->min_mm3_per_mm;
|
||||
}
|
||||
}
|
||||
|
@ -428,6 +428,7 @@ $j
|
||||
--fill-density Infill density (range: 0%-100%, default: $config->{fill_density}%)
|
||||
--fill-angle Infill angle in degrees (range: 0-90, default: $config->{fill_angle})
|
||||
--fill-pattern Pattern to use to fill non-solid layers (default: $config->{fill_pattern})
|
||||
--fill-gaps Fill gaps with single passes (default: yes)
|
||||
--external-fill-pattern Pattern to use to fill solid layers (default: $config->{external_fill_pattern})
|
||||
--start-gcode Load initial G-code from the supplied file. This will overwrite
|
||||
the default command (home all axes [G28]).
|
||||
|
@ -141,7 +141,7 @@ PerimeterGenerator::process()
|
||||
}
|
||||
|
||||
// look for gaps
|
||||
if (this->config->gap_fill_speed.value > 0 && this->config->fill_density.value > 0) {
|
||||
if (this->config->fill_gaps && this->config->fill_density.value > 0) {
|
||||
// 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
|
||||
|
@ -395,6 +395,12 @@ PrintConfigDef::PrintConfigDef()
|
||||
def->enum_labels.push_back("100%");
|
||||
def->default_value = new ConfigOptionPercent(20);
|
||||
|
||||
def = this->add("fill_gaps", coBool);
|
||||
def->label = "Fill gaps";
|
||||
def->tooltip = "If this is enabled, gaps will be filled with single passes. Enable this for better quality, disable it for shorter printing times.";
|
||||
def->cli = "fill-gaps!";
|
||||
def->default_value = new ConfigOptionBool(true);
|
||||
|
||||
def = this->add("fill_pattern", coEnum);
|
||||
def->label = "Fill pattern";
|
||||
def->category = "Infill";
|
||||
@ -484,7 +490,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
def = this->add("gap_fill_speed", coFloat);
|
||||
def->label = "Gap fill";
|
||||
def->category = "Speed";
|
||||
def->tooltip = "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.";
|
||||
def->tooltip = "Speed for filling gaps. Since these are usually single lines you might want to use a low speed for better sticking. Set zero for auto.";
|
||||
def->sidetext = "mm/s";
|
||||
def->cli = "gap-fill-speed=f";
|
||||
def->min = 0;
|
||||
|
@ -212,6 +212,7 @@ class PrintRegionConfig : public virtual StaticPrintConfig
|
||||
ConfigOptionBool extra_perimeters;
|
||||
ConfigOptionFloat fill_angle;
|
||||
ConfigOptionPercent fill_density;
|
||||
ConfigOptionBool fill_gaps;
|
||||
ConfigOptionEnum<InfillPattern> fill_pattern;
|
||||
ConfigOptionFloat gap_fill_speed;
|
||||
ConfigOptionInt infill_extruder;
|
||||
@ -251,6 +252,7 @@ class PrintRegionConfig : public virtual StaticPrintConfig
|
||||
OPT_PTR(extra_perimeters);
|
||||
OPT_PTR(fill_angle);
|
||||
OPT_PTR(fill_density);
|
||||
OPT_PTR(fill_gaps);
|
||||
OPT_PTR(fill_pattern);
|
||||
OPT_PTR(gap_fill_speed);
|
||||
OPT_PTR(infill_extruder);
|
||||
|
Loading…
x
Reference in New Issue
Block a user