diff options
author | bubnikv <bubnikv@gmail.com> | 2018-09-17 12:46:52 +0300 |
---|---|---|
committer | bubnikv <bubnikv@gmail.com> | 2018-09-17 12:46:52 +0300 |
commit | 78e7bb04272fa9a41e7d88c3ae0be60c3446343b (patch) | |
tree | cf8adc79b4561fad9bb2e1c7d64f78df30ff5245 /xs/src/libslic3r | |
parent | 4ec4c9364e9ff4ca689a61433d95bf45d8b49511 (diff) |
Supports - fix of the recent changes: Always generate dense supports
below overhangs, even if the overhangs are steep.
Diffstat (limited to 'xs/src/libslic3r')
-rw-r--r-- | xs/src/libslic3r/PrintConfig.cpp | 21 | ||||
-rw-r--r-- | xs/src/libslic3r/SupportMaterial.cpp | 4 |
2 files changed, 12 insertions, 13 deletions
diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index 32c3f5700..cad23337a 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -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); diff --git a/xs/src/libslic3r/SupportMaterial.cpp b/xs/src/libslic3r/SupportMaterial.cpp index 9019583b9..cc689eaaa 100644 --- a/xs/src/libslic3r/SupportMaterial.cpp +++ b/xs/src/libslic3r/SupportMaterial.cpp @@ -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. |