FIX: protect when support_style doesnt match type

jira: STUDIO-8800
Change-Id: I7d42f95ba43b4b3a47a83ae59afaaf9bc94baa5d
This commit is contained in:
jiaxi.chen 2024-11-18 10:29:22 +08:00 committed by Lane.Wei
parent 7e086adf98
commit d4bc450af6
2 changed files with 8 additions and 0 deletions

View File

@ -171,6 +171,12 @@ struct SupportParameters {
std::numeric_limits<double>::max();
support_style = object_config.support_style;
if (support_style != smsDefault) {
if ((support_style == smsSnug || support_style == smsGrid) && is_tree(object_config.support_type)) support_style = smsDefault;
if ((support_style == smsTreeSlim || support_style == smsTreeStrong || support_style == smsTreeHybrid || support_style == smsTreeOrganic) &&
!is_tree(object_config.support_type))
support_style = smsDefault;
}
if (support_style == smsDefault) {
if (is_tree(object_config.support_type)) {
// organic support doesn't work with variable layer heights (including adaptive layer height and height range modifier, see #4313)

View File

@ -1645,6 +1645,8 @@ void TreeSupport::move_bounds_to_contact_nodes(std::vector<TreeSupport3D::Suppor
void TreeSupport::generate()
{
if (!is_tree(m_object_config->support_type.value)) return;
if (m_support_params.support_style == smsTreeOrganic) {
generate_tree_support_3D(*m_object, this, this->throw_on_cancel);
return;