From 1ec051e7708bba2aae86183f1c77e4c9af49a862 Mon Sep 17 00:00:00 2001 From: rtyr <36745189+rtyr@users.noreply.github.com> Date: Wed, 7 Jun 2023 13:24:30 +0200 Subject: [PATCH 1/8] Fixed output file name format for MONO SE. --- resources/profiles/Anycubic.idx | 3 ++- resources/profiles/Anycubic.ini | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/resources/profiles/Anycubic.idx b/resources/profiles/Anycubic.idx index a941cef9c2..24c53137e4 100644 --- a/resources/profiles/Anycubic.idx +++ b/resources/profiles/Anycubic.idx @@ -1,4 +1,5 @@ -min_slic3r_version = 2.6.0-alpha4 +min_slic3r_version = 2.6.0-beta1 +0.2.5 Fixed output file format for MONO SE. 0.2.4 Enable pad for Anycubic SLA profiles 0.2.3 Added Photon Mono printer. 0.2.2 Added Photon Mono SE printer. diff --git a/resources/profiles/Anycubic.ini b/resources/profiles/Anycubic.ini index 771b38d012..46d82cefe6 100644 --- a/resources/profiles/Anycubic.ini +++ b/resources/profiles/Anycubic.ini @@ -5,7 +5,7 @@ name = Anycubic # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 0.2.1 +config_version = 0.2.5 # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Anycubic/ # changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -2386,7 +2386,7 @@ output_filename_format = [input_filename_base].pwmx [sla_print:0.05 Normal @ANYCUBIC MONO SE] inherits = 0.05 Normal @ANYCUBIC ABSTRACT compatible_printers_condition = printer_notes=~/.*PHOTONMONOSE\n.*/ -output_filename_format = [input_filename_base].pwma +output_filename_format = [input_filename_base].pwms ## SLA materials @@ -2497,4 +2497,5 @@ max_initial_exposure_time = 300 printer_correction = 1,1,1 gamma_correction = 1 area_fill = 45 -printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.'\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTONMONOX\nPRINTER_TECHNOLOGY_SLA\n \ No newline at end of file +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.'\nPRINTER_VENDOR_ANYCUBIC\nPRINTER_MODEL_PHOTONMONOX\nPRINTER_TECHNOLOGY_SLA\n + From 4846f8c211515546d441d3305a50138614987b72 Mon Sep 17 00:00:00 2001 From: Robert Schiele Date: Fri, 5 May 2023 20:39:46 +0200 Subject: [PATCH 2/8] add missing includes of (PR #10499) --- deps/OpenEXR/OpenEXR.cmake | 3 ++- deps/OpenEXR/OpenEXR.patch | 36 +++++++++++++++++++++++++++++++++ src/libslic3r/ExtrusionRole.hpp | 1 + src/libslic3r/PNGReadWrite.hpp | 1 + 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 deps/OpenEXR/OpenEXR.patch diff --git a/deps/OpenEXR/OpenEXR.cmake b/deps/OpenEXR/OpenEXR.cmake index 046223fed9..094965d042 100644 --- a/deps/OpenEXR/OpenEXR.cmake +++ b/deps/OpenEXR/OpenEXR.cmake @@ -4,6 +4,7 @@ prusaslicer_add_cmake_project(OpenEXR URL_HASH SHA256=0307a3d7e1fa1e77e9d84d7e9a8694583fbbbfd50bdc6884e2c96b8ef6b902de DEPENDS ${ZLIB_PKG} GIT_TAG v2.5.5 + PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/OpenEXR.patch CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_TESTING=OFF @@ -14,4 +15,4 @@ prusaslicer_add_cmake_project(OpenEXR if (MSVC) add_debug_dep(dep_OpenEXR) -endif () \ No newline at end of file +endif () diff --git a/deps/OpenEXR/OpenEXR.patch b/deps/OpenEXR/OpenEXR.patch new file mode 100644 index 0000000000..22adbd2778 --- /dev/null +++ b/deps/OpenEXR/OpenEXR.patch @@ -0,0 +1,36 @@ +diff --git a/OpenEXR/IlmImf/ImfDwaCompressor.cpp b/OpenEXR/IlmImf/ImfDwaCompressor.cpp +index 59d1d5d1..585a3e65 100644 +--- a/OpenEXR/IlmImf/ImfDwaCompressor.cpp ++++ b/OpenEXR/IlmImf/ImfDwaCompressor.cpp +@@ -159,6 +159,7 @@ + #include + + #include ++#include + + + // Windows specific addition to prevent the indirect import of the redefined min/max macros +diff --git a/OpenEXR/IlmImf/ImfHuf.cpp b/OpenEXR/IlmImf/ImfHuf.cpp +index 271849b7..165fac58 100644 +--- a/OpenEXR/IlmImf/ImfHuf.cpp ++++ b/OpenEXR/IlmImf/ImfHuf.cpp +@@ -53,6 +53,7 @@ + #include + #include + #include ++#include + + + using namespace std; +diff --git a/OpenEXR/IlmImf/ImfMisc.cpp b/OpenEXR/IlmImf/ImfMisc.cpp +index d2c84787..4b487940 100644 +--- a/OpenEXR/IlmImf/ImfMisc.cpp ++++ b/OpenEXR/IlmImf/ImfMisc.cpp +@@ -40,6 +40,7 @@ + // + //----------------------------------------------------------------------------- + ++#include + #include + #include + #include diff --git a/src/libslic3r/ExtrusionRole.hpp b/src/libslic3r/ExtrusionRole.hpp index 5952d3fc56..986c139a24 100644 --- a/src/libslic3r/ExtrusionRole.hpp +++ b/src/libslic3r/ExtrusionRole.hpp @@ -5,6 +5,7 @@ #include #include +#include namespace Slic3r { diff --git a/src/libslic3r/PNGReadWrite.hpp b/src/libslic3r/PNGReadWrite.hpp index 01e1f47450..399c622438 100644 --- a/src/libslic3r/PNGReadWrite.hpp +++ b/src/libslic3r/PNGReadWrite.hpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace Slic3r { namespace png { From 0bfd95f2df669a50d288b174001f4fcd2adad177 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Thu, 1 Jun 2023 12:14:15 +0200 Subject: [PATCH 3/8] Fixup of previous commit --- deps/OpenEXR/OpenEXR.cmake | 2 +- deps/OpenEXR/OpenEXR.patch | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/deps/OpenEXR/OpenEXR.cmake b/deps/OpenEXR/OpenEXR.cmake index 094965d042..dc1d2fab1a 100644 --- a/deps/OpenEXR/OpenEXR.cmake +++ b/deps/OpenEXR/OpenEXR.cmake @@ -4,7 +4,7 @@ prusaslicer_add_cmake_project(OpenEXR URL_HASH SHA256=0307a3d7e1fa1e77e9d84d7e9a8694583fbbbfd50bdc6884e2c96b8ef6b902de DEPENDS ${ZLIB_PKG} GIT_TAG v2.5.5 - PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_LIST_DIR}/OpenEXR.patch + PATCH_COMMAND COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/OpenEXR.patch CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_TESTING=OFF diff --git a/deps/OpenEXR/OpenEXR.patch b/deps/OpenEXR/OpenEXR.patch index 22adbd2778..b9f9f1c28e 100644 --- a/deps/OpenEXR/OpenEXR.patch +++ b/deps/OpenEXR/OpenEXR.patch @@ -1,7 +1,5 @@ -diff --git a/OpenEXR/IlmImf/ImfDwaCompressor.cpp b/OpenEXR/IlmImf/ImfDwaCompressor.cpp -index 59d1d5d1..585a3e65 100644 ---- a/OpenEXR/IlmImf/ImfDwaCompressor.cpp -+++ b/OpenEXR/IlmImf/ImfDwaCompressor.cpp +--- ../OpenEXR-orig/OpenEXR/IlmImf/ImfDwaCompressor.cpp 2021-02-12 17:56:19.000000000 +0100 ++++ ./OpenEXR/IlmImf/ImfDwaCompressor.cpp 2023-06-01 13:21:32.666695400 +0200 @@ -159,6 +159,7 @@ #include @@ -10,10 +8,8 @@ index 59d1d5d1..585a3e65 100644 // Windows specific addition to prevent the indirect import of the redefined min/max macros -diff --git a/OpenEXR/IlmImf/ImfHuf.cpp b/OpenEXR/IlmImf/ImfHuf.cpp -index 271849b7..165fac58 100644 ---- a/OpenEXR/IlmImf/ImfHuf.cpp -+++ b/OpenEXR/IlmImf/ImfHuf.cpp +--- ../OpenEXR-orig/OpenEXR/IlmImf/ImfHuf.cpp 2021-02-12 17:56:19.000000000 +0100 ++++ ./OpenEXR/IlmImf/ImfHuf.cpp 2023-06-01 13:21:53.018583400 +0200 @@ -53,6 +53,7 @@ #include #include @@ -22,10 +18,8 @@ index 271849b7..165fac58 100644 using namespace std; -diff --git a/OpenEXR/IlmImf/ImfMisc.cpp b/OpenEXR/IlmImf/ImfMisc.cpp -index d2c84787..4b487940 100644 ---- a/OpenEXR/IlmImf/ImfMisc.cpp -+++ b/OpenEXR/IlmImf/ImfMisc.cpp +--- ../OpenEXR-orig/OpenEXR/IlmImf/ImfMisc.cpp 2021-02-12 17:56:19.000000000 +0100 ++++ ./OpenEXR/IlmImf/ImfMisc.cpp 2023-06-01 13:22:15.777480000 +0200 @@ -40,6 +40,7 @@ // //----------------------------------------------------------------------------- From 02f69575ef580ef3dd8ed0ea7a82646157de5335 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Wed, 7 Jun 2023 14:23:56 +0200 Subject: [PATCH 4/8] Fix of SPE-1752, GH #10736: Extended the bridge expansion algorithm to expand into sparse infill by a maximum of 1 perimeter width. This solves a situation, where the "ensure vertical wall thickness" region is filtered out as too narrow to be important for print stability while the bridge expansion only happened into the "ensure vertical wall thickness" regions before. Partial revert of cf6b6ff4e4c47ebbe08f97cf80d923cde81c29af, reverts Fix SPE-1726 - hole between bridges and perimeters caused by thin internal fill surface GithubIssue https://github.com/prusa3d/PrusaSlicer/issues/10231#issuecomment-1546779200 During sorting of surfaces into top, bottom and internal, expand bottom bridges by one spacing unit, to ensure better anchoring --- src/libslic3r/Algorithm/RegionExpansion.cpp | 11 +- src/libslic3r/Algorithm/RegionExpansion.hpp | 4 + src/libslic3r/LayerRegion.cpp | 126 ++++++++++++++------ src/libslic3r/PrintObject.cpp | 11 +- 4 files changed, 110 insertions(+), 42 deletions(-) diff --git a/src/libslic3r/Algorithm/RegionExpansion.cpp b/src/libslic3r/Algorithm/RegionExpansion.cpp index e36f5e62c7..ee2a5aaf2a 100644 --- a/src/libslic3r/Algorithm/RegionExpansion.cpp +++ b/src/libslic3r/Algorithm/RegionExpansion.cpp @@ -480,10 +480,8 @@ std::vector expand_expolygons(const ExPolygons &src, const ExPolygons return out; } -std::vector expand_merge_expolygons(ExPolygons &&src, const ExPolygons &boundary, const RegionExpansionParameters ¶ms) +std::vector merge_expansions_into_expolygons(ExPolygons &&src, std::vector &&expanded) { - // expanded regions are sorted by boundary id and source id - std::vector expanded = propagate_waves(src, boundary, params); // expanded regions will be merged into source regions, thus they will be re-sorted by source id. std::sort(expanded.begin(), expanded.end(), [](const auto &l, const auto &r) { return l.src_id < r.src_id; }); uint32_t last = 0; @@ -535,5 +533,12 @@ std::vector expand_merge_expolygons(ExPolygons &&src, const ExPolygon return out; } +std::vector expand_merge_expolygons(ExPolygons &&src, const ExPolygons &boundary, const RegionExpansionParameters ¶ms) +{ + // expanded regions are sorted by boundary id and source id + std::vector expanded = propagate_waves(src, boundary, params); + return merge_expansions_into_expolygons(std::move(src), std::move(expanded)); +} + } // Algorithm } // Slic3r diff --git a/src/libslic3r/Algorithm/RegionExpansion.hpp b/src/libslic3r/Algorithm/RegionExpansion.hpp index 26aab198a3..eb99674902 100644 --- a/src/libslic3r/Algorithm/RegionExpansion.hpp +++ b/src/libslic3r/Algorithm/RegionExpansion.hpp @@ -72,6 +72,7 @@ struct RegionExpansion }; std::vector propagate_waves(const WaveSeeds &seeds, const ExPolygons &boundary, const RegionExpansionParameters ¶ms); +std::vector propagate_waves(const ExPolygons &src, const ExPolygons &boundary, const RegionExpansionParameters ¶ms); std::vector propagate_waves(const ExPolygons &src, const ExPolygons &boundary, // Scaled expansion value @@ -106,6 +107,9 @@ std::vector expand_expolygons(const ExPolygons &src, const ExPolygons // Don't take more than max_nr_steps for small expansion_step. size_t max_nr_steps); +// Merge src with expansions, return the merged expolygons. +std::vector merge_expansions_into_expolygons(ExPolygons &&src, std::vector &&expanded); + std::vector expand_merge_expolygons(ExPolygons &&src, const ExPolygons &boundary, const RegionExpansionParameters ¶ms); } // Algorithm diff --git a/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp index 9485998dc4..6df0155cf3 100644 --- a/src/libslic3r/LayerRegion.cpp +++ b/src/libslic3r/LayerRegion.cpp @@ -170,7 +170,9 @@ static ExPolygons fill_surfaces_extract_expolygons(Surfaces &surfaces, std::init Surfaces expand_bridges_detect_orientations( Surfaces &surfaces, ExPolygons &shells, - const Algorithm::RegionExpansionParameters &expansion_params, + const Algorithm::RegionExpansionParameters &expansion_params_into_solid_infill, + ExPolygons &sparse, + const Algorithm::RegionExpansionParameters &expansion_params_into_sparse_infill, const float closing_radius) { using namespace Slic3r::Algorithm; @@ -181,8 +183,23 @@ Surfaces expand_bridges_detect_orientations( return {}; // Calculate bridge anchors and their expansions in their respective shell region. - WaveSeeds bridge_anchors = wave_seeds(bridges_ex, shells, expansion_params.tiny_expansion, true); - std::vector bridge_expansions = propagate_waves_ex(bridge_anchors, shells, expansion_params); + WaveSeeds bridge_anchors = wave_seeds(bridges_ex, shells, expansion_params_into_solid_infill.tiny_expansion, true); + std::vector bridge_expansions = propagate_waves_ex(bridge_anchors, shells, expansion_params_into_solid_infill); + bool expanded_into_shells = ! bridge_expansions.empty(); + bool expanded_into_sparse = false; + { + WaveSeeds bridge_anchors_sparse = wave_seeds(bridges_ex, sparse, expansion_params_into_sparse_infill.tiny_expansion, true); + std::vector bridge_expansions_sparse = propagate_waves_ex(bridge_anchors_sparse, sparse, expansion_params_into_sparse_infill); + if (! bridge_expansions_sparse.empty()) { + expanded_into_sparse = true; + for (WaveSeed &seed : bridge_anchors_sparse) + seed.boundary += uint32_t(shells.size()); + for (RegionExpansionEx &expansion : bridge_expansions_sparse) + expansion.boundary_id += uint32_t(shells.size()); + append(bridge_anchors, std::move(bridge_anchors_sparse)); + append(bridge_expansions, std::move(bridge_expansions_sparse)); + } + } // Cache for detecting bridge orientation and merging regions with overlapping expansions. struct Bridge { @@ -259,7 +276,7 @@ Surfaces expand_bridges_detect_orientations( for (; it_bridge_anchor != bridge_anchors.end() && it_bridge_anchor->src == bridge_id; ++ it_bridge_anchor) { if (last_anchor_id != int(it_bridge_anchor->boundary)) { last_anchor_id = int(it_bridge_anchor->boundary); - append(anchor_areas, to_polygons(shells[last_anchor_id])); + append(anchor_areas, to_polygons(last_anchor_id < int32_t(shells.size()) ? shells[last_anchor_id] : sparse[last_anchor_id])); } // if (Points &polyline = it_bridge_anchor->path; polyline.size() >= 2) { // reserve_more_power_of_2(lines, polyline.size() - 1); @@ -270,17 +287,18 @@ Surfaces expand_bridges_detect_orientations( lines = to_lines(diff_pl(to_polylines(bridge.expolygon), expand(anchor_areas, float(SCALED_EPSILON)))); auto [bridging_dir, unsupported_dist] = detect_bridging_direction(lines, to_polygons(bridge.expolygon)); bridge.angle = M_PI + std::atan2(bridging_dir.y(), bridging_dir.x()); - // #if 1 - // coordf_t stroke_width = scale_(0.06); - // BoundingBox bbox = get_extents(initial); - // bbox.offset(scale_(1.)); - // ::Slic3r::SVG - // svg(debug_out_path(("bridge"+std::to_string(bridges[idx_last].bridge_angle)+"_"+std::to_string(this->layer()->bottom_z())).c_str()), - // bbox); - - // svg.draw(initial, "cyan"); - // svg.draw(to_lines(lower_layer->lslices), "green", stroke_width); - // #endif +#if 0 + coordf_t stroke_width = scale_(0.06); + BoundingBox bbox = get_extents(anchor_areas); + bbox.merge(get_extents(bridge.expolygon)); + bbox.offset(scale_(1.)); + ::Slic3r::SVG + svg(debug_out_path(("bridge" + std::to_string(bridge.angle) + "_" /* + std::to_string(this->layer()->bottom_z())*/).c_str()), + bbox); + svg.draw(bridge.expolygon, "cyan"); + svg.draw(lines, "green", stroke_width); + svg.draw(anchor_areas, "red"); +#endif } } @@ -322,8 +340,11 @@ Surfaces expand_bridges_detect_orientations( } } - // Clip the shells by the expanded bridges. - shells = diff_ex(shells, out); + // Clip by the expanded bridges. + if (expanded_into_shells) + shells = diff_ex(shells, out); + if (expanded_into_sparse) + sparse = diff_ex(sparse, out); return out; } @@ -332,23 +353,43 @@ Surfaces expand_bridges_detect_orientations( static Surfaces expand_merge_surfaces( Surfaces &surfaces, SurfaceType surface_type, - ExPolygons &shells, - const Algorithm::RegionExpansionParameters ¶ms, + ExPolygons &shells, + const Algorithm::RegionExpansionParameters &expansion_params_into_solid_infill, + ExPolygons &sparse, + const Algorithm::RegionExpansionParameters &expansion_params_into_sparse_infill, const float closing_radius, const double bridge_angle = -1.) { + using namespace Slic3r::Algorithm; + double thickness; ExPolygons src = fill_surfaces_extract_expolygons(surfaces, {surface_type}, thickness); if (src.empty()) return {}; - std::vector expanded = expand_merge_expolygons(std::move(src), shells, params); + std::vector expansions = propagate_waves(src, shells, expansion_params_into_solid_infill); + bool expanded_into_shells = !expansions.empty(); + bool expanded_into_sparse = false; + { + std::vector expansions2 = propagate_waves(src, sparse, expansion_params_into_sparse_infill); + if (! expansions2.empty()) { + expanded_into_sparse = true; + for (RegionExpansion &expansion : expansions2) + expansion.boundary_id += uint32_t(shells.size()); + append(expansions, std::move(expansions2)); + } + } + + std::vector expanded = merge_expansions_into_expolygons(std::move(src), std::move(expansions)); //NOTE: The current regularization of the shells can create small unasigned regions in the object (E.G. benchy) // without the following closing operation, those regions will stay unfilled and cause small holes in the expanded surface. // look for narrow_ensure_vertical_wall_thickness_region_radius filter. expanded = closing_ex(expanded, closing_radius); // Trim the shells by the expanded expolygons. - shells = diff_ex(shells, expanded); + if (expanded_into_shells) + shells = diff_ex(shells, expanded); + if (expanded_into_sparse) + sparse = diff_ex(sparse, expanded); Surface templ{ surface_type, {} }; templ.bridge_angle = bridge_angle; @@ -361,20 +402,25 @@ static Surfaces expand_merge_surfaces( void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Polygons *lower_layer_covered) { + using namespace Slic3r::Algorithm; + #ifdef SLIC3R_DEBUG_SLICE_PROCESSING export_region_fill_surfaces_to_svg_debug("4_process_external_surfaces-initial"); #endif /* SLIC3R_DEBUG_SLICE_PROCESSING */ // Width of the perimeters. float shell_width = 0; + float expansion_min = 0; if (int num_perimeters = this->region().config().perimeters; num_perimeters > 0) { Flow external_perimeter_flow = this->flow(frExternalPerimeter); Flow perimeter_flow = this->flow(frPerimeter); - shell_width += 0.5f * external_perimeter_flow.scaled_width() + external_perimeter_flow.scaled_spacing(); + shell_width = 0.5f * external_perimeter_flow.scaled_width() + external_perimeter_flow.scaled_spacing(); shell_width += perimeter_flow.scaled_spacing() * (num_perimeters - 1); + expansion_min = perimeter_flow.scaled_spacing(); } else { // TODO: Maybe there is better solution when printing with zero perimeters, but this works reasonably well, given the situation - shell_width = float(SCALED_EPSILON); + shell_width = float(SCALED_EPSILON); + expansion_min = float(SCALED_EPSILON);; } // Scaled expansions of the respective external surfaces. @@ -390,16 +436,18 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly // Expand the top / bottom / bridge surfaces into the shell thickness solid infills. double layer_thickness; - ExPolygons shells = union_ex(fill_surfaces_extract_expolygons(m_fill_surfaces.surfaces, {stInternalSolid}, layer_thickness)); + ExPolygons shells = union_ex(fill_surfaces_extract_expolygons(m_fill_surfaces.surfaces, { stInternalSolid }, layer_thickness)); + ExPolygons sparse = union_ex(fill_surfaces_extract_expolygons(m_fill_surfaces.surfaces, { stInternal }, layer_thickness)); SurfaceCollection bridges; + const auto expansion_params_into_sparse_infill = RegionExpansionParameters::build(expansion_min, expansion_step, max_nr_expansion_steps); { BOOST_LOG_TRIVIAL(trace) << "Processing external surface, detecting bridges. layer" << this->layer()->print_z; const double custom_angle = this->region().config().bridge_angle.value; - const auto params = Algorithm::RegionExpansionParameters::build(expansion_bottom_bridge, expansion_step, max_nr_expansion_steps); + const auto expansion_params_into_solid_infill = RegionExpansionParameters::build(expansion_bottom_bridge, expansion_step, max_nr_expansion_steps); bridges.surfaces = custom_angle > 0 ? - expand_merge_surfaces(m_fill_surfaces.surfaces, stBottomBridge, shells, params, closing_radius, Geometry::deg2rad(custom_angle)) : - expand_bridges_detect_orientations(m_fill_surfaces.surfaces, shells, params, closing_radius); + expand_merge_surfaces(m_fill_surfaces.surfaces, stBottomBridge, shells, expansion_params_into_solid_infill, sparse, expansion_params_into_sparse_infill, closing_radius, Geometry::deg2rad(custom_angle)) : + expand_bridges_detect_orientations(m_fill_surfaces.surfaces, shells, expansion_params_into_solid_infill, sparse, expansion_params_into_sparse_infill, closing_radius); BOOST_LOG_TRIVIAL(trace) << "Processing external surface, detecting bridges - done"; #if 0 { @@ -410,15 +458,25 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly } Surfaces bottoms = expand_merge_surfaces(m_fill_surfaces.surfaces, stBottom, shells, - Algorithm::RegionExpansionParameters::build(expansion_bottom, expansion_step, max_nr_expansion_steps), closing_radius); + RegionExpansionParameters::build(expansion_bottom, expansion_step, max_nr_expansion_steps), + sparse, expansion_params_into_sparse_infill, closing_radius); Surfaces tops = expand_merge_surfaces(m_fill_surfaces.surfaces, stTop, shells, - Algorithm::RegionExpansionParameters::build(expansion_top, expansion_step, max_nr_expansion_steps), closing_radius); + RegionExpansionParameters::build(expansion_top, expansion_step, max_nr_expansion_steps), + sparse, expansion_params_into_sparse_infill, closing_radius); - m_fill_surfaces.remove_types({ stBottomBridge, stBottom, stTop, stInternalSolid }); - reserve_more(m_fill_surfaces.surfaces, shells.size() + bridges.size() + bottoms.size() + tops.size()); - Surface solid_templ(stInternalSolid, {}); - solid_templ.thickness = layer_thickness; - m_fill_surfaces.append(std::move(shells), solid_templ); +// m_fill_surfaces.remove_types({ stBottomBridge, stBottom, stTop, stInternal, stInternalSolid }); + m_fill_surfaces.clear(); + reserve_more(m_fill_surfaces.surfaces, shells.size() + sparse.size() + bridges.size() + bottoms.size() + tops.size()); + { + Surface solid_templ(stInternalSolid, {}); + solid_templ.thickness = layer_thickness; + m_fill_surfaces.append(std::move(shells), solid_templ); + } + { + Surface sparse_templ(stInternal, {}); + sparse_templ.thickness = layer_thickness; + m_fill_surfaces.append(std::move(sparse), sparse_templ); + } m_fill_surfaces.append(std::move(bridges.surfaces)); m_fill_surfaces.append(std::move(bottoms)); m_fill_surfaces.append(std::move(tops)); diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index f9fa624fec..ff7906da07 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -981,11 +981,12 @@ void PrintObject::detect_surfaces_type() surface_type_bottom_other); #else // Any surface lying on the void is a true bottom bridge (an overhang) - ExPolygons true_bridge = diff_ex(layerm->slices().surfaces, lower_layer->lslices, ApplySafetyOffset::Yes); - // expand the bridges by one extrusion width, to ensure reasonable anchoring whenever possible - true_bridge = intersection_ex(layerm->slices().surfaces, - offset_ex(true_bridge, layerm->bridging_flow(frSolidInfill).scaled_spacing())); - surfaces_append(bottom, true_bridge, surface_type_bottom_other); + surfaces_append( + bottom, + opening_ex( + diff_ex(layerm->slices().surfaces, lower_layer->lslices, ApplySafetyOffset::Yes), + offset), + surface_type_bottom_other); // if user requested internal shells, we need to identify surfaces // lying on other slices not belonging to this region if (interface_shells) { From 65d2e8f2994a8df0cd007effd6a7a87e5c181580 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 6 Jun 2023 17:22:46 +0200 Subject: [PATCH 5/8] Fix for #10745 - Using a star (*) in a preset name makes it unusable --- src/slic3r/GUI/PhysicalPrinterDialog.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.cpp b/src/slic3r/GUI/PhysicalPrinterDialog.cpp index f7b632579a..c54cda1202 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.cpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.cpp @@ -116,7 +116,7 @@ void PresetForPrinter::update_full_printer_name() wxString printer_name = m_parent->get_printer_name(); wxString preset_name = m_presets_list->GetString(m_presets_list->GetSelection()); - m_full_printer_name->SetLabelText(printer_name + " * " + preset_name); + m_full_printer_name->SetLabelText(printer_name + from_u8(PhysicalPrinter::separator()) + preset_name); } std::string PresetForPrinter::get_preset_name() @@ -654,6 +654,24 @@ wxString PhysicalPrinterDialog::get_printer_name() void PhysicalPrinterDialog::update_full_printer_names() { + // check input symbols for usability + + const char* unusable_symbols = "<>[]:/\\|?*\""; + + wxString printer_name = m_printer_name->GetValue(); + for (size_t i = 0; i < std::strlen(unusable_symbols); i++) { + size_t pos = printer_name.find_first_of(unusable_symbols[i]); + if (pos != std::string::npos) { + wxString str = printer_name.SubString(pos, 1); + printer_name.Remove(pos, 1); + InfoDialog(this, format_wxstr("%1%: \"%2%\" ", _L("Unexpected character"), str), + _L("The following characters are not allowed in the name") + ": " + unusable_symbols).ShowModal(); + m_printer_name->SetValue(printer_name); + m_printer_name->SetInsertionPointEnd(); + return; + } + } + for (PresetForPrinter* preset : m_presets) preset->update_full_printer_name(); From cbc2becb3bdee78ad3e47bb9938cba4baa1ff657 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Wed, 7 Jun 2023 14:31:36 +0200 Subject: [PATCH 6/8] Localization: Updated MO-file for CS dictionary --- resources/localization/cs/PrusaSlicer.mo | Bin 516816 -> 569957 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/localization/cs/PrusaSlicer.mo b/resources/localization/cs/PrusaSlicer.mo index fa1b4c8fac22359267494f9a7d013f1bd023c5cc..e80adb4755c78f664516a274249dea1eb65639cd 100644 GIT binary patch delta 157954 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 delta 110448 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�kKdC>H@II1D_YZHU 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 From ce1da350d3ecf463fd9436c69b3ba5f52ca857ef Mon Sep 17 00:00:00 2001 From: Pedro Lamas Date: Fri, 26 May 2023 14:59:17 +0100 Subject: [PATCH 7/8] Use Moonraker as Klipper API --- src/libslic3r/PrintConfig.cpp | 4 ++-- src/libslic3r/PrintConfig.hpp | 2 +- src/slic3r/CMakeLists.txt | 4 ++-- .../Utils/{Mainsail.cpp => Moonraker.cpp} | 22 +++++++++---------- .../Utils/{Mainsail.hpp => Moonraker.hpp} | 10 ++++----- src/slic3r/Utils/PrintHost.cpp | 4 ++-- 6 files changed, 23 insertions(+), 23 deletions(-) rename src/slic3r/Utils/{Mainsail.cpp => Moonraker.cpp} (94%) rename src/slic3r/Utils/{Mainsail.hpp => Moonraker.hpp} (91%) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index a8cc410ab7..9eda4078c6 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -68,7 +68,7 @@ static const t_config_enum_values s_keys_map_PrintHostType { { "prusalink", htPrusaLink }, { "prusaconnect", htPrusaConnect }, { "octoprint", htOctoPrint }, - { "mainsail", htMainSail }, + { "moonraker", htMoonraker }, { "duet", htDuet }, { "flashair", htFlashAir }, { "astrobox", htAstroBox }, @@ -1953,7 +1953,7 @@ void PrintConfigDef::init_fff_params() { "prusalink", "PrusaLink" }, { "prusaconnect", "PrusaConnect" }, { "octoprint", "OctoPrint" }, - { "mainsail", "Mainsail/Fluidd" }, + { "moonraker", "Klipper (via Moonraker)" }, { "duet", "Duet" }, { "flashair", "FlashAir" }, { "astrobox", "AstroBox" }, diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 36a63d33d2..54a835fe79 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -44,7 +44,7 @@ enum class MachineLimitsUsage { }; enum PrintHostType { - htPrusaLink, htPrusaConnect, htOctoPrint, htMainSail, htDuet, htFlashAir, htAstroBox, htRepetier, htMKS + htPrusaLink, htPrusaConnect, htOctoPrint, htMoonraker, htDuet, htFlashAir, htAstroBox, htRepetier, htMKS }; enum AuthorizationType { diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 0227cc266c..5d7b2c0ef7 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -251,8 +251,8 @@ set(SLIC3R_GUI_SOURCES Utils/Http.hpp Utils/FixModelByWin10.cpp Utils/FixModelByWin10.hpp - Utils/Mainsail.cpp - Utils/Mainsail.hpp + Utils/Moonraker.cpp + Utils/Moonraker.hpp Utils/OctoPrint.cpp Utils/OctoPrint.hpp Utils/Duet.cpp diff --git a/src/slic3r/Utils/Mainsail.cpp b/src/slic3r/Utils/Moonraker.cpp similarity index 94% rename from src/slic3r/Utils/Mainsail.cpp rename to src/slic3r/Utils/Moonraker.cpp index 303d754e38..53aeb08b02 100644 --- a/src/slic3r/Utils/Mainsail.cpp +++ b/src/slic3r/Utils/Moonraker.cpp @@ -1,4 +1,4 @@ -#include "Mainsail.hpp" +#include "Moonraker.hpp" #include #include @@ -63,28 +63,28 @@ std::string substitute_host(const std::string& orig_addr, std::string sub_addr) } #endif } -Mainsail::Mainsail(DynamicPrintConfig *config) : +Moonraker::Moonraker(DynamicPrintConfig *config) : m_host(config->opt_string("print_host")), m_apikey(config->opt_string("printhost_apikey")), m_cafile(config->opt_string("printhost_cafile")), m_ssl_revoke_best_effort(config->opt_bool("printhost_ssl_ignore_revoke")) {} -const char* Mainsail::get_name() const { return "Mainsail"; } +const char* Moonraker::get_name() const { return "Moonraker"; } -wxString Mainsail::get_test_ok_msg () const +wxString Moonraker::get_test_ok_msg () const { - return _(L("Connection to Mainsail works correctly.")); + return _(L("Connection to Moonraker works correctly.")); } -wxString Mainsail::get_test_failed_msg (wxString &msg) const +wxString Moonraker::get_test_failed_msg (wxString &msg) const { return GUI::format_wxstr("%s: %s" - , _L("Could not connect to Mainsail") + , _L("Could not connect to Moonraker") , msg); } -bool Mainsail::test(wxString& msg) const +bool Moonraker::test(wxString& msg) const { // GET /server/info @@ -142,7 +142,7 @@ bool Mainsail::test(wxString& msg) const return res; } -bool Mainsail::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const +bool Moonraker::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const { // POST /server/files/upload @@ -232,7 +232,7 @@ bool Mainsail::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, Error return res; } -void Mainsail::set_auth(Http &http) const +void Moonraker::set_auth(Http &http) const { if (!m_apikey.empty()) http.header("X-Api-Key", m_apikey); @@ -240,7 +240,7 @@ void Mainsail::set_auth(Http &http) const http.ca_file(m_cafile); } -std::string Mainsail::make_url(const std::string &path) const +std::string Moonraker::make_url(const std::string &path) const { if (m_host.find("http://") == 0 || m_host.find("https://") == 0) { if (m_host.back() == '/') { diff --git a/src/slic3r/Utils/Mainsail.hpp b/src/slic3r/Utils/Moonraker.hpp similarity index 91% rename from src/slic3r/Utils/Mainsail.hpp rename to src/slic3r/Utils/Moonraker.hpp index 136c7dc574..09a231f49f 100644 --- a/src/slic3r/Utils/Mainsail.hpp +++ b/src/slic3r/Utils/Moonraker.hpp @@ -1,5 +1,5 @@ -#ifndef slic3r_Mainsail_hpp_ -#define slic3r_Mainsail_hpp_ +#ifndef slic3r_Moonraker_hpp_ +#define slic3r_Moonraker_hpp_ #include #include @@ -16,11 +16,11 @@ class DynamicPrintConfig; class Http; // https://moonraker.readthedocs.io/en/latest/web_api -class Mainsail : public PrintHost +class Moonraker : public PrintHost { public: - Mainsail(DynamicPrintConfig *config); - ~Mainsail() override = default; + Moonraker(DynamicPrintConfig *config); + ~Moonraker() override = default; const char* get_name() const override; diff --git a/src/slic3r/Utils/PrintHost.cpp b/src/slic3r/Utils/PrintHost.cpp index cddada0680..d9152ef214 100644 --- a/src/slic3r/Utils/PrintHost.cpp +++ b/src/slic3r/Utils/PrintHost.cpp @@ -19,7 +19,7 @@ #include "AstroBox.hpp" #include "Repetier.hpp" #include "MKS.hpp" -#include "Mainsail.hpp" +#include "Moonraker.hpp" #include "../GUI/PrintHostDialogs.hpp" namespace fs = boost::filesystem; @@ -55,7 +55,7 @@ PrintHost* PrintHost::get_print_host(DynamicPrintConfig *config) case htPrusaLink: return new PrusaLink(config); case htPrusaConnect: return new PrusaConnect(config); case htMKS: return new MKS(config); - case htMainSail: return new Mainsail(config); + case htMoonraker: return new Moonraker(config); default: return nullptr; } } else { From d337573efe011d95962fc93a31a4c998f0165d68 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Wed, 7 Jun 2023 13:29:14 +0200 Subject: [PATCH 8/8] Add 'mainsail' -> 'moonraker' substitution so profiles don't break after people upgrade to the new version --- src/libslic3r/PrintConfig.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 9eda4078c6..ca8aa76d35 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -4214,6 +4214,9 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va else if (value == "marlinfirmware") // the "new" marlin firmware flavor used to be called "marlinfirmware" for some time during PrusaSlicer 2.4.0-alpha development. value = "marlin2"; + } else if (opt_key == "host_type" && value == "mainsail") { + // the "mainsail" key (introduced in 2.6.0-alpha6) was renamed to "moonraker" (in 2.6.0-rc1). + value = "moonraker"; } else if (opt_key == "fill_density" && value.find("%") == std::string::npos) { try { // fill_density was turned into a percent value