Fix of "Strange behavior on bridge detection" #1482

The very first slicing step needs to be invalidated if support is
enabled or disabled while the soluble supports are configured,
as the bridging is disabled for soluble supports, while the bridging
is enabled with supports disabled.
This commit is contained in:
bubnikv 2019-09-09 17:47:29 +02:00
parent ee928f5f4d
commit 5c72eecf26

View File

@ -468,9 +468,17 @@ bool PrintObject::invalidate_state_by_config_options(const std::vector<t_config_
|| opt_key == "support_material_contact_distance" || opt_key == "support_material_contact_distance"
|| opt_key == "xy_size_compensation") { || opt_key == "xy_size_compensation") {
steps.emplace_back(posSlice); steps.emplace_back(posSlice);
} else if (opt_key == "support_material") {
steps.emplace_back(posSupportMaterial);
if (m_config.support_material_contact_distance == 0.) {
// Enabling / disabling supports while soluble support interface is enabled.
// This changes the bridging logic (bridging enabled without supports, disabled with supports).
// Reset everything.
// See GH #1482 for details.
steps.emplace_back(posSlice);
}
} else if ( } else if (
opt_key == "support_material" opt_key == "support_material_auto"
|| opt_key == "support_material_auto"
|| opt_key == "support_material_angle" || opt_key == "support_material_angle"
|| opt_key == "support_material_buildplate_only" || opt_key == "support_material_buildplate_only"
|| opt_key == "support_material_enforce_layers" || opt_key == "support_material_enforce_layers"