fix fill, add prusa ironing to ui.

This commit is contained in:
supermerill 2020-10-26 00:23:54 +01:00
parent 05632802c1
commit c3073c4422
4 changed files with 22 additions and 8 deletions

View File

@ -135,10 +135,19 @@ group:sidetext_width$3:Advanced
end_line
setting:only_retract_when_crossing_perimeters
setting:infill_first
group:Advanced Infill
line:Ironing tuning
setting:label_width$6:width$5:sidetext_width$7:fill_smooth_width
group:Advanced Infill options
line:Ironing infill tuning
setting:label_width$9:width$5:fill_smooth_distribution
setting:label$Spacing between ironing lines:width$5:sidetext_width$7:fill_smooth_width
end_line
group:Ironing post-process (This will go on top of infills and perimeters)
line:Enable ironing post-process
setting:label$_:ironing
setting:label$On:ironing_type
end_line
line:Tuning ironing
setting:ironing_flowrate
setting:ironing_spacing
end_line
page:Skirt & Brim:skirt+brim
@ -211,6 +220,7 @@ group:label_width$8:Speed for print moves
setting:width$4:gap_fill_speed
setting:width$4:thin_walls_speed
end_line
setting:label$Ironing post-process speed:label_width$30:width$4:ironing_speed
group:Speed for non-print moves
setting:travel_speed
group:Modifiers

View File

@ -111,6 +111,7 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
params.extruder = layerm.region()->extruder(extrusion_role);
params.pattern = layerm.region()->config().fill_pattern.value;
params.density = float(layerm.region()->config().fill_density) / 100.f;
params.dont_adjust = false;
if (surface.has_fill_solid()) {
params.density = 1.f;
@ -408,11 +409,11 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive:
// so we can safely ignore the slight variation that might have
// been applied to $f->flow_spacing
} else {
surface_fill.params.flow = Flow::new_from_spacing((float)f->get_spacing(), surface_fill.params.flow.nozzle_diameter, (float)surface_fill.params.flow.height, is_bridge);
surface_fill.params.flow = Flow::new_from_spacing((float)f->get_spacing(), surface_fill.params.flow.nozzle_diameter, (float)surface_fill.params.flow.height, surface_fill.params.flow.bridge);
}
//apply bridge_overlap if needed
if (is_bridge && surface_fill.params.density > 99 && layerm->region()->config().bridge_overlap.get_abs_value(1) != 1) {
if (surface_fill.params.flow.bridge && surface_fill.params.density > 99 && layerm->region()->config().bridge_overlap.get_abs_value(1) != 1) {
surface_fill.params.density *= float(layerm->region()->config().bridge_overlap.get_abs_value(1));
}

View File

@ -131,7 +131,9 @@ namespace Slic3r {
eecroot->no_sort = true;
// first infill
perform_single_fill(0, *eecroot, *surface, params, volumeToOccupy);
FillParams first_pass_params = params;
first_pass_params.role = ExtrusionRole::erSolidInfill;
perform_single_fill(0, *eecroot, *surface, first_pass_params, volumeToOccupy);
//use monotonous for ironing pass
FillParams monotonous_params = params;

View File

@ -1985,7 +1985,8 @@ void PrintConfigDef::init_fff_params()
def = this->add("ironing_flowrate", coPercent);
def->label = L("Flow rate");
def->category = OptionCategory::ironing;
def->tooltip = L("Percent of a flow rate relative to object's normal layer height.");
def->tooltip = L("Percent of a flow rate relative to object's normal layer height."
" It's the percentage of the layer that will be over-extruded on top to do the ironing.");
def->sidetext = L("%");
def->ratio_over = "layer_height";
def->min = 0;
@ -1993,7 +1994,7 @@ void PrintConfigDef::init_fff_params()
def->set_default_value(new ConfigOptionPercent(15));
def = this->add("ironing_spacing", coFloat);
def->label = L("Spacing between ironing passes");
def->label = L("Spacing between ironing lines");
def->category = OptionCategory::ironing;
def->tooltip = L("Distance between ironing lines");
def->sidetext = L("mm");