diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index 76ff92fd3..68fc22c56 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -1057,6 +1057,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 e826ec065..865cc7097 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1874,6 +1874,11 @@ void Print::process(std::unordered_map* slice_time, bool } 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 a8ac93f86..6f55cc922 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -954,6 +954,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; }