mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-13 21:15:51 +08:00
update to infill_anchor integration
This commit is contained in:
parent
48d1f380a8
commit
ab7c688a72
@ -85,7 +85,7 @@ group:Modifying slices
|
||||
setting:width$6:curve_smoothing_precision
|
||||
setting:width$6:curve_smoothing_angle_convex
|
||||
setting:width$6:curve_smoothing_angle_concave
|
||||
setting:label_width$6:width$6:curve_smoothing_cutoff_dist
|
||||
setting:width$6:curve_smoothing_cutoff_dist
|
||||
end_line
|
||||
line:XY compensation
|
||||
setting:width$6:xy_size_compensation
|
||||
@ -107,9 +107,11 @@ group:title_width$8:Infill
|
||||
setting:width$5:label$_:sidetext_width$1:fill_density
|
||||
setting:label_width$1:label$_:fill_pattern
|
||||
setting:label$_:width$18:infill_connection
|
||||
setting:sidetext_width$7:infill_anchor
|
||||
setting:sidetext_width$7:infill_anchor_max
|
||||
end_line
|
||||
line:_
|
||||
setting:label$Connection length:label_width$20:sidetext_width$7:width$12:infill_anchor_max
|
||||
setting:label$Perimeter anchor:sidetext_width$7:width$12:infill_anchor
|
||||
end_line
|
||||
line:Solid
|
||||
setting:label_width$11:label$_:solid_fill_pattern
|
||||
setting:label$_:width$18:infill_connection_solid
|
||||
|
@ -2477,14 +2477,14 @@ void connect_infill(Polylines&& infill_ordered, const std::vector<const Polygon*
|
||||
}
|
||||
|
||||
void Fill::connect_infill(Polylines&& infill_ordered, const ExPolygon& boundary, Polylines& polylines_out, const double spacing, const FillParams& params) {
|
||||
if (params.anchor_length == 0) {
|
||||
if (params.anchor_length_max == 0) {
|
||||
PrusaSimpleConnect::connect_infill(std::move(infill_ordered), boundary, polylines_out, spacing, params);
|
||||
} else {
|
||||
FakePerimeterConnect::connect_infill(std::move(infill_ordered), boundary, polylines_out, spacing, params);
|
||||
}
|
||||
}
|
||||
void Fill::connect_infill(Polylines&& infill_ordered, const ExPolygon& boundary, const Polygons& polygons_src, Polylines& polylines_out, const double spacing, const FillParams& params) {
|
||||
if (params.anchor_length == 0) {
|
||||
if (params.anchor_length_max == 0) {
|
||||
PrusaSimpleConnect::connect_infill(std::move(infill_ordered), boundary, polylines_out, spacing, params);
|
||||
} else {
|
||||
FakePerimeterConnect::connect_infill(std::move(infill_ordered), polygons_src, get_extents(boundary.contour), polylines_out, spacing, params);
|
||||
|
@ -1890,7 +1890,7 @@ void PrintConfigDef::init_fff_params()
|
||||
"PrusaSlicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment "
|
||||
"shorter than infill_anchor_max is found, the infill line is connected to a perimeter segment at just one side "
|
||||
"and the length of the perimeter segment taken is limited to this parameter, but no longer than anchor_length_max. "
|
||||
"\nIf set to 0, it will use a simpler algo that don't try to create a fake perimeter.");
|
||||
"\nSet this parameter to zero to disable anchoring perimeters connected to a single infill line.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "infill_extrusion_width";
|
||||
def->gui_type = "f_enum_open";
|
||||
@ -1900,15 +1900,14 @@ void PrintConfigDef::init_fff_params()
|
||||
def->enum_values.push_back("5");
|
||||
def->enum_values.push_back("10");
|
||||
def->enum_values.push_back("1000");
|
||||
def->enum_labels.push_back(L("0 (Simple connect)"));
|
||||
def->enum_labels.push_back(L("0 (no open anchors)"));
|
||||
def->enum_labels.push_back("1 mm");
|
||||
def->enum_labels.push_back("2 mm");
|
||||
def->enum_labels.push_back("5 mm");
|
||||
def->enum_labels.push_back("10 mm");
|
||||
def->enum_labels.push_back(L("1000 (unlimited)"));
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionFloatOrPercent(1000, false));
|
||||
def->set_default_value(new ConfigOptionFloatOrPercent(0, false));
|
||||
def->mode = comExpert;
|
||||
def->set_default_value(new ConfigOptionFloatOrPercent(600, true));
|
||||
|
||||
def = this->add("infill_anchor_max", coFloatOrPercent);
|
||||
def->label = L("Maximum length of the infill anchor");
|
||||
@ -1918,19 +1917,19 @@ void PrintConfigDef::init_fff_params()
|
||||
"PrusaSlicer tries to connect two close infill lines to a short perimeter segment. If no such perimeter segment "
|
||||
"shorter than this parameter is found, the infill line is connected to a perimeter segment at just one side "
|
||||
"and the length of the perimeter segment taken is limited to infill_anchor, but no longer than this parameter. "
|
||||
"Set this parameter to zero to disable anchoring.");
|
||||
"\nIf set to 0, the old algorithm for infill connection will be used, it should create the same result as with 1000 & 0.");
|
||||
def->sidetext = def_infill_anchor_min->sidetext;
|
||||
def->ratio_over = def_infill_anchor_min->ratio_over;
|
||||
def->gui_type = def_infill_anchor_min->gui_type;
|
||||
def->enum_values = def_infill_anchor_min->enum_values;
|
||||
def->enum_labels.push_back(L("0 (not anchored)"));
|
||||
def->enum_labels.push_back(L("0 (Simple connect)"));
|
||||
def->enum_labels.push_back("1 mm");
|
||||
def->enum_labels.push_back("2 mm");
|
||||
def->enum_labels.push_back("5 mm");
|
||||
def->enum_labels.push_back("10 mm");
|
||||
def->enum_labels.push_back(L("1000 (unlimited)"));
|
||||
def->mode = def_infill_anchor_min->mode;
|
||||
def->set_default_value(new ConfigOptionFloatOrPercent(50, false));
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionFloatOrPercent(0, false));
|
||||
|
||||
def = this->add("infill_dense", coBool);
|
||||
def->label = ("");
|
||||
|
Loading…
x
Reference in New Issue
Block a user