Supports - fix of the recent changes: Always generate dense supports
below overhangs, even if the overhangs are steep.
This commit is contained in:
parent
4ec4c9364e
commit
78e7bb0427
@ -123,7 +123,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
def->tooltip = L("Speed for printing bridges.");
|
||||
def->sidetext = L("mm/s");
|
||||
def->cli = "bridge-speed=f";
|
||||
def->aliases.push_back("bridge_feed_rate");
|
||||
def->aliases = { "bridge_feed_rate" };
|
||||
def->min = 0;
|
||||
def->default_value = new ConfigOptionFloat(60);
|
||||
|
||||
@ -236,7 +236,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
def->tooltip = L("Distance used for the auto-arrange feature of the plater.");
|
||||
def->sidetext = L("mm");
|
||||
def->cli = "duplicate-distance=f";
|
||||
def->aliases.push_back("multiply_distance");
|
||||
def->aliases = { "multiply_distance" };
|
||||
def->min = 0;
|
||||
def->default_value = new ConfigOptionFloat(6);
|
||||
|
||||
@ -297,7 +297,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
def->enum_labels.push_back(L("Archimedean Chords"));
|
||||
def->enum_labels.push_back(L("Octagram Spiral"));
|
||||
// solid_fill_pattern is an obsolete equivalent to external_fill_pattern.
|
||||
def->aliases.push_back("solid_fill_pattern");
|
||||
def->aliases = { "solid_fill_pattern" };
|
||||
def->default_value = new ConfigOptionEnum<InfillPattern>(ipRectilinear);
|
||||
|
||||
def = this->add("external_perimeter_extrusion_width", coFloatOrPercent);
|
||||
@ -885,8 +885,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
def->tooltip = L("Speed for printing the internal fill. Set to zero for auto.");
|
||||
def->sidetext = L("mm/s");
|
||||
def->cli = "infill-speed=f";
|
||||
def->aliases.push_back("print_feed_rate");
|
||||
def->aliases.push_back("infill_feed_rate");
|
||||
def->aliases = { "print_feed_rate", "infill_feed_rate" };
|
||||
def->min = 0;
|
||||
def->default_value = new ConfigOptionFloat(80);
|
||||
|
||||
@ -1251,7 +1250,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
def->category = L("Extruders");
|
||||
def->tooltip = L("The extruder to use when printing perimeters and brim. First extruder is 1.");
|
||||
def->cli = "perimeter-extruder=i";
|
||||
def->aliases.push_back("perimeters_extruder");
|
||||
def->aliases = { "perimeters_extruder" };
|
||||
def->min = 1;
|
||||
def->default_value = new ConfigOptionInt(1);
|
||||
|
||||
@ -1264,7 +1263,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
"If expressed as percentage (for example 200%) it will be computed over layer height.");
|
||||
def->sidetext = L("mm or % (leave 0 for default)");
|
||||
def->cli = "perimeter-extrusion-width=s";
|
||||
def->aliases.push_back("perimeters_extrusion_width");
|
||||
def->aliases = { "perimeters_extrusion_width" };
|
||||
def->default_value = new ConfigOptionFloatOrPercent(0, false);
|
||||
|
||||
def = this->add("perimeter_speed", coFloat);
|
||||
@ -1273,7 +1272,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
def->tooltip = L("Speed for perimeters (contours, aka vertical shells). Set to zero for auto.");
|
||||
def->sidetext = L("mm/s");
|
||||
def->cli = "perimeter-speed=f";
|
||||
def->aliases.push_back("perimeter_feed_rate");
|
||||
def->aliases = { "perimeter_feed_rate" };
|
||||
def->min = 0;
|
||||
def->default_value = new ConfigOptionFloat(60);
|
||||
|
||||
@ -1286,7 +1285,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
"if the Extra Perimeters option is enabled.");
|
||||
def->sidetext = L("(minimum)");
|
||||
def->cli = "perimeters=i";
|
||||
def->aliases.push_back("perimeter_offsets");
|
||||
def->aliases = { "perimeter_offsets" };
|
||||
def->min = 0;
|
||||
def->default_value = new ConfigOptionInt(3);
|
||||
|
||||
@ -1614,7 +1613,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
def->sidetext = L("mm/s or %");
|
||||
def->cli = "solid-infill-speed=s";
|
||||
def->ratio_over = "infill_speed";
|
||||
def->aliases.push_back("solid_infill_feed_rate");
|
||||
def->aliases = { "solid_infill_feed_rate" };
|
||||
def->min = 0;
|
||||
def->default_value = new ConfigOptionFloatOrPercent(20, false);
|
||||
|
||||
@ -1968,7 +1967,7 @@ PrintConfigDef::PrintConfigDef()
|
||||
def->tooltip = L("Speed for travel moves (jumps between distant extrusion points).");
|
||||
def->sidetext = L("mm/s");
|
||||
def->cli = "travel-speed=f";
|
||||
def->aliases.push_back("travel_feed_rate");
|
||||
def->aliases = { "travel_feed_rate" };
|
||||
def->min = 1;
|
||||
def->default_value = new ConfigOptionFloat(130);
|
||||
|
||||
|
@ -1107,15 +1107,15 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_
|
||||
// 1) Contact polygons will be projected down. To keep the interface and base layers from growing, return a contour a tiny bit smaller than the grid cells.
|
||||
new_layer.contact_polygons = new Polygons(support_grid_pattern.extract_support(-3, true));
|
||||
// 2) infill polygons, expand them by half the extrusion width + a tiny bit of extra.
|
||||
if (layer_id == 0) {
|
||||
if (layer_id == 0 || m_slicing_params.soluble_interface) {
|
||||
// if (no_interface_offset == 0.f) {
|
||||
new_layer.polygons = support_grid_pattern.extract_support(m_support_material_flow.scaled_spacing()/2 + 5, true);
|
||||
} else {
|
||||
// Reduce the amount of dense interfaces: Do not generate dense interfaces below overhangs with 60% overhang of the extrusions.
|
||||
Polygons dense_interface_polygons = diff(overhang_polygons,
|
||||
offset2(lower_layer_polygons, - no_interface_offset * 0.5f, no_interface_offset * (0.6f + 0.5f), SUPPORT_SURFACES_OFFSET_PARAMETERS));
|
||||
// offset(lower_layer_polygons, no_interface_offset * 0.6f, SUPPORT_SURFACES_OFFSET_PARAMETERS));
|
||||
if (! dense_interface_polygons.empty()) {
|
||||
//FIXME do it for non-soluble support interfaces only.
|
||||
//FIXME do it for the bridges only?
|
||||
SupportGridPattern support_grid_pattern(
|
||||
// Support islands, to be stretched into a grid.
|
||||
|
Loading…
Reference in New Issue
Block a user