ENH: improve normal support's quality

1. Add a base_interface_layer when using Supp.W
2. Fix a bug where base_angle and interface_angle are wong

jira: STUDIO-5386
Change-Id: I52ab32c63b3cd1e6e2ba6463b01ae26699cf13d3
(cherry picked from commit 92ddd4a10b793572a1fa009da5b9e44fcdf81de2)
This commit is contained in:
Arthur 2023-11-24 20:29:56 +08:00 committed by Lane.Wei
parent d257c0f90d
commit b96f1b333e
2 changed files with 4 additions and 3 deletions

View File

@ -3459,7 +3459,8 @@ std::pair<SupportGeneratorLayersPtr, SupportGeneratorLayersPtr> generate_interfa
bool snug_supports = m_object_config->support_style.value == smsSnug;
// BBS: if support interface and support base do not use the same filament, add a base layer to improve their adhesion
bool differnt_support_interface_filament = m_object_config->support_filament != 0 && m_object_config->support_interface_filament != 0 && m_object_config->support_interface_filament.value != m_object_config->support_filament.value;
// Note: support materials (such as Supp.W) can't be used as support base now, so support interface and base are still using different filaments even if support_filament==0
bool differnt_support_interface_filament = m_object_config->support_interface_filament != 0 && m_object_config->support_interface_filament.value != m_object_config->support_filament.value;
int num_base_interface_layers_top = differnt_support_interface_filament ? 1 : 0;
int num_base_interface_layers_bottom = differnt_support_interface_filament ? 1 : 0;
int num_interface_layers_top = m_object_config->support_interface_top_layers + num_base_interface_layers_top;

View File

@ -84,8 +84,8 @@ struct SupportParameters {
}
this->base_angle = Geometry::deg2rad(float(object_config.support_threshold_angle.value));
this->interface_angle = Geometry::deg2rad(float(object_config.support_threshold_angle.value + 90.));
this->base_angle = Geometry::deg2rad(float(object_config.support_angle.value));
this->interface_angle = Geometry::deg2rad(float(object_config.support_angle.value + 90.));
this->interface_spacing = object_config.support_interface_spacing.value + this->support_material_interface_flow.spacing();
this->interface_density = std::min(1., this->support_material_interface_flow.spacing() / this->interface_spacing);
this->support_spacing = object_config.support_base_pattern_spacing.value + this->support_material_flow.spacing();