mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-12 09:17:52 -06:00
Handle parameter name change properly.
Fix build break and keep compatibility to existing user preset after #4444 changes
This commit is contained in:
parent
242ad33eb4
commit
cab5fe715d
6 changed files with 14 additions and 11 deletions
|
@ -1922,7 +1922,7 @@ void PerimeterGenerator::add_infill_contour_for_arachne( ExPolygons infil
|
||||||
void PerimeterGenerator::process_no_bridge(Surfaces& all_surfaces, coord_t perimeter_spacing, coord_t ext_perimeter_width)
|
void PerimeterGenerator::process_no_bridge(Surfaces& all_surfaces, coord_t perimeter_spacing, coord_t ext_perimeter_width)
|
||||||
{
|
{
|
||||||
//store surface for bridge infill to avoid unsupported perimeters (but the first one, this one is always good)
|
//store surface for bridge infill to avoid unsupported perimeters (but the first one, this one is always good)
|
||||||
if (this->config->counterbole_hole_bridging != chbNone
|
if (this->config->counterbore_hole_bridging != chbNone
|
||||||
&& this->lower_slices != NULL && !this->lower_slices->empty()) {
|
&& this->lower_slices != NULL && !this->lower_slices->empty()) {
|
||||||
const coordf_t bridged_infill_margin = scale_(BRIDGE_INFILL_MARGIN);
|
const coordf_t bridged_infill_margin = scale_(BRIDGE_INFILL_MARGIN);
|
||||||
|
|
||||||
|
@ -1955,7 +1955,7 @@ void PerimeterGenerator::process_no_bridge(Surfaces& all_surfaces, coord_t perim
|
||||||
}
|
}
|
||||||
if (!bridgeable.empty()) {
|
if (!bridgeable.empty()) {
|
||||||
//check if we get everything or just the bridgeable area
|
//check if we get everything or just the bridgeable area
|
||||||
if (/*this->config->counterbole_hole_bridging.value == chbNoPeri || */this->config->counterbole_hole_bridging.value == chbFilled) {
|
if (/*this->config->counterbore_hole_bridging.value == chbNoPeri || */this->config->counterbore_hole_bridging.value == chbFilled) {
|
||||||
//we bridge everything, even the not-bridgeable bits
|
//we bridge everything, even the not-bridgeable bits
|
||||||
for (size_t i = 0; i < unsupported_filtered.size();) {
|
for (size_t i = 0; i < unsupported_filtered.size();) {
|
||||||
ExPolygon& poly_unsupp = *(unsupported_filtered.begin() + i);
|
ExPolygon& poly_unsupp = *(unsupported_filtered.begin() + i);
|
||||||
|
@ -1977,7 +1977,7 @@ void PerimeterGenerator::process_no_bridge(Surfaces& all_surfaces, coord_t perim
|
||||||
}
|
}
|
||||||
unsupported_filtered = intersection_ex(last,
|
unsupported_filtered = intersection_ex(last,
|
||||||
offset2_ex(unsupported_filtered, double(-perimeter_spacing / 2), double(bridged_infill_margin + perimeter_spacing / 2)));
|
offset2_ex(unsupported_filtered, double(-perimeter_spacing / 2), double(bridged_infill_margin + perimeter_spacing / 2)));
|
||||||
if (this->config->counterbole_hole_bridging.value == chbFilled) {
|
if (this->config->counterbore_hole_bridging.value == chbFilled) {
|
||||||
for (ExPolygon& expol : unsupported_filtered) {
|
for (ExPolygon& expol : unsupported_filtered) {
|
||||||
//check if the holes won't be covered by the upper layer
|
//check if the holes won't be covered by the upper layer
|
||||||
//TODO: if we want to do that, we must modify the geometry before making perimeters.
|
//TODO: if we want to do that, we must modify the geometry before making perimeters.
|
||||||
|
@ -2027,7 +2027,7 @@ void PerimeterGenerator::process_no_bridge(Surfaces& all_surfaces, coord_t perim
|
||||||
|
|
||||||
}
|
}
|
||||||
//TODO: add other polys as holes inside this one (-margin)
|
//TODO: add other polys as holes inside this one (-margin)
|
||||||
} else if (/*this->config->counterbole_hole_bridging.value == chbBridgesOverhangs || */this->config->counterbole_hole_bridging.value == chbBridges) {
|
} else if (/*this->config->counterbore_hole_bridging.value == chbBridgesOverhangs || */this->config->counterbore_hole_bridging.value == chbBridges) {
|
||||||
//simplify to avoid most of artefacts from printing lines.
|
//simplify to avoid most of artefacts from printing lines.
|
||||||
ExPolygons bridgeable_simplified;
|
ExPolygons bridgeable_simplified;
|
||||||
for (ExPolygon& poly : bridgeable) {
|
for (ExPolygon& poly : bridgeable) {
|
||||||
|
@ -2046,7 +2046,7 @@ void PerimeterGenerator::process_no_bridge(Surfaces& all_surfaces, coord_t perim
|
||||||
//unbridgeable = offset2_ex(unbridgeable, -ext_perimeter_width, ext_perimeter_width);
|
//unbridgeable = offset2_ex(unbridgeable, -ext_perimeter_width, ext_perimeter_width);
|
||||||
|
|
||||||
|
|
||||||
// if (this->config->counterbole_hole_bridging.value == chbBridges) {
|
// if (this->config->counterbore_hole_bridging.value == chbBridges) {
|
||||||
ExPolygons unbridgeable = unsupported_filtered;
|
ExPolygons unbridgeable = unsupported_filtered;
|
||||||
for (ExPolygon& expol : unbridgeable)
|
for (ExPolygon& expol : unbridgeable)
|
||||||
expol.holes.clear();
|
expol.holes.clear();
|
||||||
|
|
|
@ -772,7 +772,7 @@ static std::vector<std::string> s_Preset_print_options {
|
||||||
"top_shell_layers", "top_shell_thickness", "bottom_shell_layers", "bottom_shell_thickness",
|
"top_shell_layers", "top_shell_thickness", "bottom_shell_layers", "bottom_shell_thickness",
|
||||||
"extra_perimeters_on_overhangs", "ensure_vertical_shell_thickness", "reduce_crossing_wall", "detect_thin_wall", "detect_overhang_wall", "overhang_reverse", "overhang_reverse_threshold","overhang_reverse_internal_only", "wall_direction",
|
"extra_perimeters_on_overhangs", "ensure_vertical_shell_thickness", "reduce_crossing_wall", "detect_thin_wall", "detect_overhang_wall", "overhang_reverse", "overhang_reverse_threshold","overhang_reverse_internal_only", "wall_direction",
|
||||||
"seam_position", "staggered_inner_seams", "wall_sequence", "is_infill_first", "sparse_infill_density", "sparse_infill_pattern", "top_surface_pattern", "bottom_surface_pattern",
|
"seam_position", "staggered_inner_seams", "wall_sequence", "is_infill_first", "sparse_infill_density", "sparse_infill_pattern", "top_surface_pattern", "bottom_surface_pattern",
|
||||||
"infill_direction", "counterbole_hole_bridging",
|
"infill_direction", "counterbore_hole_bridging",
|
||||||
"minimum_sparse_infill_area", "reduce_infill_retraction","internal_solid_infill_pattern","gap_fill_target",
|
"minimum_sparse_infill_area", "reduce_infill_retraction","internal_solid_infill_pattern","gap_fill_target",
|
||||||
"ironing_type", "ironing_pattern", "ironing_flow", "ironing_speed", "ironing_spacing", "ironing_angle",
|
"ironing_type", "ironing_pattern", "ironing_flow", "ironing_speed", "ironing_spacing", "ironing_angle",
|
||||||
"max_travel_detour_distance",
|
"max_travel_detour_distance",
|
||||||
|
|
|
@ -5750,6 +5750,9 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
|
||||||
else if(opt_key == "ironing_direction") {
|
else if(opt_key == "ironing_direction") {
|
||||||
opt_key = "ironing_angle";
|
opt_key = "ironing_angle";
|
||||||
}
|
}
|
||||||
|
else if(opt_key == "counterbole_hole_bridging"){
|
||||||
|
opt_key = "counterbore_hole_bridging";
|
||||||
|
}
|
||||||
|
|
||||||
// Ignore the following obsolete configuration keys:
|
// Ignore the following obsolete configuration keys:
|
||||||
static std::set<std::string> ignore = {
|
static std::set<std::string> ignore = {
|
||||||
|
|
|
@ -318,7 +318,7 @@ enum class GCodeThumbnailsFormat {
|
||||||
PNG, JPG, QOI, BTT_TFT, ColPic
|
PNG, JPG, QOI, BTT_TFT, ColPic
|
||||||
};
|
};
|
||||||
|
|
||||||
enum CounterboleHoleBridgingOption {
|
enum CounterboreHoleBridgingOption {
|
||||||
chbNone, chbBridges, chbFilled
|
chbNone, chbBridges, chbFilled
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -406,7 +406,7 @@ CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(BedType)
|
||||||
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(DraftShield)
|
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(DraftShield)
|
||||||
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(ForwardCompatibilitySubstitutionRule)
|
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(ForwardCompatibilitySubstitutionRule)
|
||||||
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(GCodeThumbnailsFormat)
|
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(GCodeThumbnailsFormat)
|
||||||
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(CounterboleHoleBridgingOption)
|
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(CounterboreHoleBridgingOption)
|
||||||
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(PrintHostType)
|
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(PrintHostType)
|
||||||
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(AuthorizationType)
|
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(AuthorizationType)
|
||||||
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(PerimeterGeneratorType)
|
CONFIG_OPTION_ENUM_DECLARE_STATIC_MAPS(PerimeterGeneratorType)
|
||||||
|
@ -952,7 +952,7 @@ PRINT_CONFIG_CLASS_DEFINE(
|
||||||
((ConfigOptionBool, overhang_reverse))
|
((ConfigOptionBool, overhang_reverse))
|
||||||
((ConfigOptionBool, overhang_reverse_internal_only))
|
((ConfigOptionBool, overhang_reverse_internal_only))
|
||||||
((ConfigOptionFloatOrPercent, overhang_reverse_threshold))
|
((ConfigOptionFloatOrPercent, overhang_reverse_threshold))
|
||||||
((ConfigOptionEnum<CounterboleHoleBridgingOption>, counterbole_hole_bridging))
|
((ConfigOptionEnum<CounterboreHoleBridgingOption>, counterbore_hole_bridging))
|
||||||
((ConfigOptionEnum<WallSequence>, wall_sequence))
|
((ConfigOptionEnum<WallSequence>, wall_sequence))
|
||||||
((ConfigOptionBool, is_infill_first))
|
((ConfigOptionBool, is_infill_first))
|
||||||
((ConfigOptionBool, small_area_infill_flow_compensation))
|
((ConfigOptionBool, small_area_infill_flow_compensation))
|
||||||
|
|
|
@ -1302,7 +1302,7 @@ void PrintObject::detect_surfaces_type()
|
||||||
|
|
||||||
ExPolygons layerm_slices_surfaces = to_expolygons(layerm->slices.surfaces);
|
ExPolygons layerm_slices_surfaces = to_expolygons(layerm->slices.surfaces);
|
||||||
// no_perimeter_full_bridge allow to put bridges where there are nothing, hence adding area to slice, that's why we need to start from the result of PerimeterGenerator.
|
// no_perimeter_full_bridge allow to put bridges where there are nothing, hence adding area to slice, that's why we need to start from the result of PerimeterGenerator.
|
||||||
if (layerm->region().config().counterbole_hole_bridging.value == chbFilled) {
|
if (layerm->region().config().counterbore_hole_bridging.value == chbFilled) {
|
||||||
layerm_slices_surfaces = union_ex(layerm_slices_surfaces, to_expolygons(layerm->fill_surfaces.surfaces));
|
layerm_slices_surfaces = union_ex(layerm_slices_surfaces, to_expolygons(layerm->fill_surfaces.surfaces));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2051,7 +2051,7 @@ void TabPrint::build()
|
||||||
optgroup->append_single_option_line("thick_bridges");
|
optgroup->append_single_option_line("thick_bridges");
|
||||||
optgroup->append_single_option_line("thick_internal_bridges");
|
optgroup->append_single_option_line("thick_internal_bridges");
|
||||||
optgroup->append_single_option_line("dont_filter_internal_bridges");
|
optgroup->append_single_option_line("dont_filter_internal_bridges");
|
||||||
optgroup->append_single_option_line("counterbole_hole_bridging","counterbole-hole-bridging");
|
optgroup->append_single_option_line("counterbore_hole_bridging","counterbore-hole-bridging");
|
||||||
|
|
||||||
optgroup = page->new_optgroup(L("Overhangs"), L"param_advanced");
|
optgroup = page->new_optgroup(L("Overhangs"), L"param_advanced");
|
||||||
optgroup->append_single_option_line("detect_overhang_wall");
|
optgroup->append_single_option_line("detect_overhang_wall");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue