diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index ddec25c2b8..3d77bee523 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -1103,6 +1103,16 @@ static ExPolygons outer_inner_brim_area(const Print& print, } std::vector filament_map = print.get_filament_maps(); + if (print.has_wipe_tower() && !print.get_fake_wipe_tower().outer_wall.empty()) { + ExPolygons expolyFromLines{}; + for (auto polyline : print.get_fake_wipe_tower().outer_wall.begin()->second) { + polyline.remove_duplicate_points(); + expolyFromLines.emplace_back(polyline.points); + expolyFromLines.back().translate(Point(scale_(print.get_fake_wipe_tower().pos[0]), scale_(print.get_fake_wipe_tower().pos[1]))); + } + expolygons_append(no_brim_area, expolyFromLines); + } + for (const PrintObject* object : print.objects()) { ExPolygons extruder_no_brim_area = no_brim_area; auto iter = std::find_if(objPrintVec.begin(), objPrintVec.end(), [object](const std::pair& item) { diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 4021a8fea0..44598a0a7c 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -2123,6 +2123,11 @@ void Print::process(long long *time_cost_with_cache, bool use_cache) } this->set_done(psWipeTower); } + + if (this->has_wipe_tower()) { + m_fake_wipe_tower.set_pos({ m_config.wipe_tower_x.get_at(m_plate_index), m_config.wipe_tower_y.get_at(m_plate_index) }); + } + if (this->set_started(psSkirtBrim)) { this->set_status(70, L("Generating skirt & brim")); diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index fa5af27fc0..58fc84eccb 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -1048,6 +1048,7 @@ public: float get_wipe_tower_depth() const { return m_wipe_tower_data.depth; } BoundingBoxf get_wipe_tower_bbx() const { return m_wipe_tower_data.bbx; } Vec2f get_rib_offset() const { return m_wipe_tower_data.rib_offset; } + const FakeWipeTower& get_fake_wipe_tower() const { return m_fake_wipe_tower; } void set_check_multi_filaments_compatibility(bool check) { m_need_check_multi_filaments_compatibility = check; } bool need_check_multi_filaments_compatibility() const { return m_need_check_multi_filaments_compatibility; }