Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions doc/print_settings/support/support_settings_advanced.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
- [Interface layers](#interface-layers)
- [Interface pattern](#interface-pattern)
- [Interface spacing](#interface-spacing)
- [Interface min area](#interface-min-area)
- [Normal support expansion](#normal-support-expansion)
- [Support/object XY distance](#supportobject-xy-distance)
- [Support/object first layer gap](#supportobject-first-layer-gap)
Expand Down Expand Up @@ -46,6 +47,10 @@ The pattern used for the support interface.

Spacing of interface lines. Zero means solid interface.

## Interface min area

Minimum area for support contact surfaces, in square millimeters. Roof polygons smaller than this value fall back to normal support instead of being generated as interface. Lower values generate more contact surfaces; higher values consolidate them. Set to 0 to disable filtering.

## Normal support expansion

Expand (+) or shrink (-) the horizontal span of normal support.
Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/Snapmaker_Orca.pot
Original file line number Diff line number Diff line change
Expand Up @@ -12931,6 +12931,12 @@ msgstr ""
msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr ""

msgid "Minimum Support Contact Area"
msgstr ""

msgid "Lower values generate more support contact surfaces."
msgstr ""

msgid "Speed of support interface."
msgstr ""

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/ca/Snapmaker_Orca_ca.po
Original file line number Diff line number Diff line change
Expand Up @@ -14917,6 +14917,12 @@ msgstr ""
"Espaiat de les línies inferiors de la interfície. Zero significa interfície "
"sòlida"

msgid "Minimum Support Contact Area"
msgstr "Àrea mínima de contacte del suport"

msgid "Lower values generate more support contact surfaces."
msgstr "Els valors més baixos generen més superfícies de contacte del suport."

msgid "Speed of support interface."
msgstr "Velocitat de la interfície de suport"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/cs/Snapmaker_Orca_cs.po
Original file line number Diff line number Diff line change
Expand Up @@ -13908,6 +13908,12 @@ msgstr "Spodní rozestup"
msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr "Rozestup linek spodního. Nula znamená plné rozhraní"

msgid "Minimum Support Contact Area"
msgstr "Minimální kontaktní plocha podpěr"

msgid "Lower values generate more support contact surfaces."
msgstr "Nižší hodnoty generují více kontaktních ploch podpěr."

msgid "Speed of support interface."
msgstr "Rychlost pro kontaktní vrstvy podpěr"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/de/Snapmaker_Orca_de.po
Original file line number Diff line number Diff line change
Expand Up @@ -15197,6 +15197,12 @@ msgstr ""
"Abstand der unteren Trennschichtlinien der Stützstrukturen. Null bedeutet "
"eine solide Schnittstelle."

msgid "Minimum Support Contact Area"
msgstr "Minimale Kontaktfläche der Stützstruktur"

msgid "Lower values generate more support contact surfaces."
msgstr "Niedrigere Werte erzeugen mehr Kontaktflächen der Stützstruktur."

msgid "Speed of support interface."
msgstr "Geschwindigkeit der Stützstruktur-Schnittstellen."

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/en/Snapmaker_Orca_en.po
Original file line number Diff line number Diff line change
Expand Up @@ -13312,6 +13312,12 @@ msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr ""
"This is the spacing of bottom interface lines. 0 means solid interface."

msgid "Minimum Support Contact Area"
msgstr ""

msgid "Lower values generate more support contact surfaces."
msgstr ""

msgid "Speed of support interface."
msgstr "This is the speed for support interfaces."

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/es/Snapmaker_Orca_es.po
Original file line number Diff line number Diff line change
Expand Up @@ -14786,6 +14786,12 @@ msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr ""
"Espaciado de las líneas de interfaz. Cero significa que la interfaz es sólida"

msgid "Minimum Support Contact Area"
msgstr "Área mínima de contacto del soporte"

msgid "Lower values generate more support contact surfaces."
msgstr "Los valores más bajos generan más superficies de contacto del soporte."

msgid "Speed of support interface."
msgstr "Velocidad de la interfaz de soporte"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/fr/Snapmaker_Orca_fr.po
Original file line number Diff line number Diff line change
Expand Up @@ -15110,6 +15110,12 @@ msgstr ""
"Espacement des lignes d'interface inférieures. Zéro signifie une interface "
"solide"

msgid "Minimum Support Contact Area"
msgstr "Surface de contact minimale du support"

msgid "Lower values generate more support contact surfaces."
msgstr "Des valeurs plus basses génèrent davantage de surfaces de contact du support."

msgid "Speed of support interface."
msgstr "Vitesse pour l'interface des supports"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/hu/Snapmaker_Orca_hu.po
Original file line number Diff line number Diff line change
Expand Up @@ -13642,6 +13642,12 @@ msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr ""
"Az érintkező réteg vonalai közötti távolság. A nulla szilárd kitöltést jelent"

msgid "Minimum Support Contact Area"
msgstr "Támasz minimális érintkezési felülete"

msgid "Lower values generate more support contact surfaces."
msgstr "Az alacsonyabb értékek több érintkezési felületet hoznak létre."

msgid "Speed of support interface."
msgstr "Támasz érintkező felületek sebessége"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/it/Snapmaker_Orca_it.po
Original file line number Diff line number Diff line change
Expand Up @@ -15027,6 +15027,12 @@ msgstr ""
"Spaziatura delle linee dell'interfaccia inferiore. 0 equivale ad "
"un'interfaccia solida."

msgid "Minimum Support Contact Area"
msgstr "Area minima di contatto del supporto"

msgid "Lower values generate more support contact surfaces."
msgstr "Valori più bassi generano più superfici di contatto del supporto."

msgid "Speed of support interface."
msgstr "Velocità per le interfacce di supporto."

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/ja/Snapmaker_Orca_ja.po
Original file line number Diff line number Diff line change
Expand Up @@ -13315,6 +13315,12 @@ msgstr "底部接触面間隔"
msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr "底部接触面を造形時に線の距離です。0はソリッド接触面です。"

msgid "Minimum Support Contact Area"
msgstr "サポート接触面積の最小値"

msgid "Lower values generate more support contact surfaces."
msgstr "値を小さくすると、より多くのサポート接触面が生成されます。"

msgid "Speed of support interface."
msgstr "サポート接触面の造形速度です。"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/ko/Snapmaker_Orca_ko.po
Original file line number Diff line number Diff line change
Expand Up @@ -14263,6 +14263,12 @@ msgstr "하단 접점 선 간격"
msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr "하단 접점 선의 간격. 0은 꽉찬 접점을 의미합니다"

msgid "Minimum Support Contact Area"
msgstr "서포트 최소 접촉 면적"

msgid "Lower values generate more support contact surfaces."
msgstr "값이 작을수록 더 많은 서포트 접촉면이 생성됩니다."

msgid "Speed of support interface."
msgstr "서포트 접점 속도"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/lt/Snapmaker_Orca_lt.po
Original file line number Diff line number Diff line change
Expand Up @@ -14728,6 +14728,12 @@ msgstr "Apatinės sąsajos tarpas"
msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr "Atstumas tarp apatinių sąsajos linijų. 0 reiškia vientisą sąsają"

msgid "Minimum Support Contact Area"
msgstr "Minimalus atramos kontaktinis plotas"

msgid "Lower values generate more support contact surfaces."
msgstr "Mažesnės reikšmės sukuria daugiau atramos kontaktinių paviršių."

msgid "Speed of support interface."
msgstr "Atramų sąsajų greitis"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/nl/Snapmaker_Orca_nl.po
Original file line number Diff line number Diff line change
Expand Up @@ -13839,6 +13839,12 @@ msgstr ""
"Dit is de afstand tussen de onderste interfacelijnen. 0 betekent solide "
"interface."

msgid "Minimum Support Contact Area"
msgstr "Minimale contactoppervlak van support"

msgid "Lower values generate more support contact surfaces."
msgstr "Lagere waarden genereren meer contactoppervlakken van de support."

msgid "Speed of support interface."
msgstr "Dit is de snelheid voor het printen van de support interfaces."

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/pl/Snapmaker_Orca_pl.po
Original file line number Diff line number Diff line change
Expand Up @@ -14838,6 +14838,12 @@ msgstr ""
"Odstęp między liniami dolnej powierzchni warstwy łączącej. Wartość zero "
"oznacza, że warstwa łącząca jest jednolita i bez przerw"

msgid "Minimum Support Contact Area"
msgstr "Minimalna powierzchnia kontaktu podpory"

msgid "Lower values generate more support contact surfaces."
msgstr "Niższe wartości generują więcej powierzchni kontaktowych podpory."

msgid "Speed of support interface."
msgstr "Prędkość dla warstw łączących"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/pt_BR/Snapmaker_Orca_pt_BR.po
Original file line number Diff line number Diff line change
Expand Up @@ -15015,6 +15015,12 @@ msgstr ""
"Espaçamento das linhas de interface inferior. Zero significa interface "
"sólida."

msgid "Minimum Support Contact Area"
msgstr "Área mínima de contato do suporte"

msgid "Lower values generate more support contact surfaces."
msgstr "Valores menores geram mais superfícies de contato do suporte."

msgid "Speed of support interface."
msgstr "Velocidade da interface de suporte."

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/ru/Snapmaker_Orca_ru.po
Original file line number Diff line number Diff line change
Expand Up @@ -15136,6 +15136,12 @@ msgstr ""
"Расстояние между линиями связующего слоя снизу. Установите 0, чтобы получить "
"сплошной слой."

msgid "Minimum Support Contact Area"
msgstr "Минимальная площадь контакта поддержки"

msgid "Lower values generate more support contact surfaces."
msgstr "Меньшие значения создают больше площадей контакта поддержки."

msgid "Speed of support interface."
msgstr "Скорость печати связующего слоя поддержки."

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/sv/Snapmaker_Orca_sv.po
Original file line number Diff line number Diff line change
Expand Up @@ -13538,6 +13538,12 @@ msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr ""
"Mellanrummet på botten gränssnittets linjer. 0 betyder solid gränssnitt"

msgid "Minimum Support Contact Area"
msgstr "Supportens minsta kontaktyta"

msgid "Lower values generate more support contact surfaces."
msgstr "Lägre värden genererar fler kontaktytor för supporten."

msgid "Speed of support interface."
msgstr "Support gränssnittets hastighet"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/tr/Snapmaker_Orca_tr.po
Original file line number Diff line number Diff line change
Expand Up @@ -14819,6 +14819,12 @@ msgstr "Alt arayüz aralığı"
msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr "Alt arayüz çizgilerinin aralığı. Sıfır, sağlam arayüz anlamına gelir."

msgid "Minimum Support Contact Area"
msgstr "Minimum destek temas alanı"

msgid "Lower values generate more support contact surfaces."
msgstr "Daha düşük değerler daha fazla destek temas yüzeyi oluşturur."

msgid "Speed of support interface."
msgstr "Destek arayüzünün hızı."

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/uk/Snapmaker_Orca_uk.po
Original file line number Diff line number Diff line change
Expand Up @@ -14826,6 +14826,12 @@ msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr ""
"Відстань між нижніми інтерфейсними лініями. Нуль означає суцільнийінтерфейс"

msgid "Minimum Support Contact Area"
msgstr "Мінімальна площа контакту підтримки"

msgid "Lower values generate more support contact surfaces."
msgstr "Нижчі значення створюють більше контактних поверхонь підтримки."

msgid "Speed of support interface."
msgstr "Швидкість друку підтримки"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/zh_CN/Snapmaker_Orca_zh_CN.po
Original file line number Diff line number Diff line change
Expand Up @@ -11980,6 +11980,12 @@ msgstr "底部接触面线距"
msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr "底部接触面走线的线距。0表示实心接触面。"

msgid "Minimum Support Contact Area"
msgstr "最小支撑接触面面积"

msgid "Lower values generate more support contact surfaces."
msgstr "阈值越小,生成的支撑接触面越多。"

msgid "Speed of support interface."
msgstr "支撑面速度"

Expand Down
6 changes: 6 additions & 0 deletions localization/i18n/zh_TW/Snapmaker_Orca_zh_TW.po
Original file line number Diff line number Diff line change
Expand Up @@ -13753,6 +13753,12 @@ msgstr "底部接觸面間距"
msgid "Spacing of bottom interface lines. Zero means solid interface."
msgstr "底部接觸面走線的線距。0 表示實心接觸面"

msgid "Minimum Support Contact Area"
msgstr "最小支撐接觸面積"

msgid "Lower values generate more support contact surfaces."
msgstr "數值越小,生成的支撐接觸面越多。"

msgid "Speed of support interface."
msgstr "支撐面速度"

Expand Down
1 change: 1 addition & 0 deletions src/libslic3r/Preset.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -891,6 +891,7 @@ static std::vector<std::string> s_Preset_print_options {
"independent_support_layer_height",
"support_angle", "support_interface_top_layers", "support_interface_bottom_layers",
"support_interface_pattern", "support_interface_spacing", "support_interface_loop_pattern",
"support_interface_min_area",
"support_top_z_distance", "support_on_build_plate_only","support_critical_regions_only", "bridge_no_support", "thick_bridges", "thick_internal_bridges","dont_filter_internal_bridges","enable_extra_bridge_layer", "max_bridge_length", "print_sequence", "print_order", "support_remove_small_overhang",
"filename_format", "wall_filament", "support_bottom_z_distance",
"sparse_infill_filament", "solid_infill_filament", "support_filament", "support_interface_filament","support_interface_not_for_body",
Expand Down
18 changes: 18 additions & 0 deletions src/libslic3r/PrintConfig.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5397,6 +5397,24 @@ void PrintConfigDef::init_fff_params()
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(0.5));

def = this->add("support_interface_min_area", coFloat);
def->gui_type = ConfigOptionDef::GUIType::f_enum_open;
def->label = L("Minimum Support Contact Area");
def->category = L("Support");
def->tooltip = L("Lower values generate more support contact surfaces.");
def->sidetext = "mm²"; // square milimeters, don't need translation
def->min = 0;
def->enum_values.push_back("0");
def->enum_values.push_back("0.25");
def->enum_values.push_back("0.64");
def->enum_values.push_back("1");
def->enum_labels.push_back("0");
def->enum_labels.push_back("0.25");
def->enum_labels.push_back("0.64");
def->enum_labels.push_back("1");
def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloat(0.25));

//BBS
def = this->add("support_bottom_interface_spacing", coFloat);
def->label = L("Bottom interface spacing");
Expand Down
1 change: 1 addition & 0 deletions src/libslic3r/PrintConfig.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -868,6 +868,7 @@ PRINT_CONFIG_CLASS_DEFINE(
((ConfigOptionInt, support_interface_bottom_layers))
// Spacing between interface lines (the hatching distance). Set zero to get a solid interface.
((ConfigOptionFloat, support_interface_spacing))
((ConfigOptionFloat, support_interface_min_area))
((ConfigOptionFloat, support_interface_speed))
((ConfigOptionEnum<SupportMaterialPattern>, support_base_pattern))
((ConfigOptionEnum<SupportMaterialInterfacePattern>, support_interface_pattern))
Expand Down
1 change: 1 addition & 0 deletions src/libslic3r/PrintObject.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1027,6 +1027,7 @@ bool PrintObject::invalidate_state_by_config_options(
|| opt_key == "support_interface_filament"
|| opt_key == "support_interface_not_for_body"
|| opt_key == "support_interface_spacing"
|| opt_key == "support_interface_min_area"
|| opt_key == "support_bottom_interface_spacing" //BBS
|| opt_key == "support_base_pattern"
|| opt_key == "support_style"
Expand Down
1 change: 1 addition & 0 deletions src/libslic3r/Support/TreeSupport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,7 @@ TreeSupport::TreeSupport(PrintObject& object, const SlicingParameters &slicing_p
// align with the centered object in current plate (may not be the 1st plate, so need to add the plate offset)
m_machine_border.translate(Point(scale_(plate_offset(0)), scale_(plate_offset(1))) - m_object->instances().front().shift);
top_z_distance = m_object_config->support_top_z_distance.value;
minimum_roof_area = scaled<double>(scaled<double>(m_object_config->support_interface_min_area.value));
if (top_z_distance > EPSILON) top_z_distance = std::max(top_z_distance, float(m_slicing_params.min_layer_height));
#ifdef SUPPORT_TREE_DEBUG_TO_SVG
SVG svg(debug_out_path("machine_boarder.svg"), m_object->bounding_box());
Expand Down
4 changes: 2 additions & 2 deletions src/libslic3r/Support/TreeSupport.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -438,8 +438,8 @@ class TreeSupport
const coordf_t MAX_BRANCH_RADIUS_FIRST_LAYER = 12.0;
const coordf_t MIN_BRANCH_RADIUS_FIRST_LAYER = 2.0;
double diameter_angle_scale_factor = tan(5.0*M_PI/180.0);
// minimum roof area (1 mm^2), area smaller than this value will not have interface
const double minimum_roof_area{SQ(scaled<double>(1.))};
// minimum roof area (default 0.25 mm^2), area smaller than this value will not have interface.
double minimum_roof_area = scaled<double>(scaled<double>(0.25));
float top_z_distance = 0.0;

bool is_strong = false;
Expand Down
3 changes: 2 additions & 1 deletion src/libslic3r/Support/TreeSupportCommon.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ struct TreeSupportMeshGroupSettings {
this->support_tree_branch_diameter = scaled<coord_t>(config.tree_support_branch_diameter_organic.value);
this->support_tree_branch_diameter_angle = std::clamp<double>(config.tree_support_branch_diameter_angle * M_PI / 180., 0., 0.5 * M_PI - EPSILON);
this->support_tree_top_rate = config.tree_support_top_rate.value; // percent
this->minimum_roof_area = scaled<double>(scaled<double>(config.support_interface_min_area.value));
// this->support_tree_tip_diameter = this->support_line_width;
this->support_tree_tip_diameter = std::clamp(scaled<coord_t>(config.tree_support_tip_diameter.value), (coord_t)0, this->support_tree_branch_diameter);
}
Expand Down Expand Up @@ -160,7 +161,7 @@ struct TreeSupportMeshGroupSettings {
coord_t support_floor_layers { 2 };
// Minimum Support Roof Area
// Minimum area size for the roofs of the support. Polygons which have an area smaller than this value will be printed as normal support.
double minimum_roof_area { scaled<double>(scaled<double>(1.)) };
double minimum_roof_area { scaled<double>(scaled<double>(0.25)) };
// A list of integer line directions to use. Elements from the list are used sequentially as the layers progress
// and when the end of the list is reached, it starts at the beginning again. The list items are separated
// by commas and the whole list is contained in square brackets. Default is an empty list which means
Expand Down
3 changes: 2 additions & 1 deletion src/slic3r/GUI/ConfigManipulation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -680,7 +680,8 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
"support_interface_pattern", "support_interface_top_layers", "support_interface_bottom_layers",
"bridge_no_support", "max_bridge_length", "support_top_z_distance", "support_bottom_z_distance",
"support_type", "support_on_build_plate_only", "support_critical_regions_only", "support_interface_not_for_body",
"support_object_xy_distance", "support_object_first_layer_gap"/*, "independent_support_layer_height"*/})
"support_object_xy_distance", "support_object_first_layer_gap",
"support_interface_min_area"/*, "independent_support_layer_height"*/})
toggle_field(el, have_support_material);
toggle_field("support_threshold_angle", have_support_material && is_auto(support_type));
toggle_field("support_threshold_overlap", config->opt_int("support_threshold_angle") == 0 && have_support_material && is_auto(support_type));
Expand Down
2 changes: 1 addition & 1 deletion src/slic3r/GUI/Field.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1314,7 +1314,7 @@ void Choice::BUILD()
opt_height = (double) temp->GetTextCtrl()->GetSize().GetHeight() / m_em_unit;

// BBS
temp->SetTextLabel(m_opt.sidetext);
temp->SetTextLabel(_L(m_opt.sidetext));
m_combine_side_text = true;

#ifdef __WXGTK3__
Expand Down
Loading
Loading