mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-18 12:17:54 -06:00
Implementing a new switch for the shape of support towers:
expanded to a grid (the old way) vs. snug (like the upstream Slic3r, Cura or Ideamaker). Snug supports suffered from the degeneracies when merging overhang islands over a large number of layers when projecting the support towers down. We borrowed the idea & a bit of code from Cura by simplifying the support polygons by closing the concave cracks, see the smooth_outward() function and the MutablePolygon class. Fixes Support problems with models with hole in the walls. #555 Fixes Support in the Air #740 Fixes [Bug] Supports generated beyond bed edges (X<0 and X>250) and where none are needed. #902 Fixes Unable to remove support material/can't change support "inflation distance" #2708 Fixes FR: support inflation and support conform to boundary #4783 Fixes Support blocker not working on this model #1346 Fixes Unnecessary support material #1993 Fixes support blocker enforcer issue #6240
This commit is contained in:
parent
00295919bf
commit
af9c7c967f
10 changed files with 208 additions and 151 deletions
|
@ -65,6 +65,10 @@ enum SupportMaterialPattern {
|
|||
smpRectilinear, smpRectilinearGrid, smpHoneycomb,
|
||||
};
|
||||
|
||||
enum SupportMaterialStyle {
|
||||
smsGrid, smsSnug,
|
||||
};
|
||||
|
||||
enum SupportMaterialInterfacePattern {
|
||||
smipAuto, smipRectilinear, smipConcentric,
|
||||
};
|
||||
|
@ -211,6 +215,15 @@ template<> inline const t_config_enum_values& ConfigOptionEnum<SupportMaterialPa
|
|||
return keys_map;
|
||||
}
|
||||
|
||||
template<> inline const t_config_enum_values& ConfigOptionEnum<SupportMaterialStyle>::get_enum_values() {
|
||||
static t_config_enum_values keys_map;
|
||||
if (keys_map.empty()) {
|
||||
keys_map["grid"] = smsGrid;
|
||||
keys_map["snug"] = smsSnug;
|
||||
}
|
||||
return keys_map;
|
||||
}
|
||||
|
||||
template<> inline const t_config_enum_values& ConfigOptionEnum<SupportMaterialInterfacePattern>::get_enum_values() {
|
||||
static t_config_enum_values keys_map;
|
||||
if (keys_map.empty()) {
|
||||
|
@ -519,6 +532,7 @@ public:
|
|||
// Spacing between support material lines (the hatching distance).
|
||||
ConfigOptionFloat support_material_spacing;
|
||||
ConfigOptionFloat support_material_speed;
|
||||
ConfigOptionEnum<SupportMaterialStyle> support_material_style;
|
||||
ConfigOptionBool support_material_synchronize_layers;
|
||||
// Overhang angle threshold.
|
||||
ConfigOptionInt support_material_threshold;
|
||||
|
@ -570,6 +584,7 @@ protected:
|
|||
OPT_PTR(support_material_interface_pattern);
|
||||
OPT_PTR(support_material_spacing);
|
||||
OPT_PTR(support_material_speed);
|
||||
OPT_PTR(support_material_style);
|
||||
OPT_PTR(support_material_synchronize_layers);
|
||||
OPT_PTR(support_material_xy_spacing);
|
||||
OPT_PTR(support_material_threshold);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue