diff options
Diffstat (limited to 'src/libslic3r/GCode/WipeTower.hpp')
-rw-r--r-- | src/libslic3r/GCode/WipeTower.hpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/libslic3r/GCode/WipeTower.hpp b/src/libslic3r/GCode/WipeTower.hpp index cc870c08a..0f9b0b87d 100644 --- a/src/libslic3r/GCode/WipeTower.hpp +++ b/src/libslic3r/GCode/WipeTower.hpp @@ -21,7 +21,7 @@ enum GCodeFlavor : unsigned char; class WipeTower { public: - static char const* never_skip_tag() { return "_GCODE_WIPE_TOWER_NEVER_SKIP_TAG"; } + static const std::string never_skip_tag() { return "_GCODE_WIPE_TOWER_NEVER_SKIP_TAG"; } struct Extrusion { @@ -57,6 +57,13 @@ public: // Is this a priming extrusion? (If so, the wipe tower rotation & translation will not be applied later) bool priming; + // Pass a polyline so that normal G-code generator can do a wipe for us. + // The wipe cannot be done by the wipe tower because it has to pass back + // a loaded extruder, so it would have to either do a wipe with no retraction + // (leading to https://github.com/prusa3d/PrusaSlicer/issues/2834) or do + // an extra retraction-unretraction pair. + std::vector<Vec2f> wipe_path; + // Initial tool int initial_tool; @@ -77,6 +84,12 @@ public: } }; + // Construct ToolChangeResult from current state of WipeTower and WipeTowerWriter. + // WipeTowerWriter is moved from ! + ToolChangeResult construct_tcr(WipeTowerWriter& writer, + bool priming, + size_t old_tool) const; + // x -- x coordinates of wipe tower in mm ( left bottom corner ) // y -- y coordinates of wipe tower in mm ( left bottom corner ) // width -- width of wipe tower in mm ( default 60 mm - leave as it is ) @@ -154,7 +167,7 @@ public: // Returns gcode for a toolchange and a final print head position. // On the first layer, extrude a brim around the future wipe tower first. - ToolChangeResult tool_change(size_t new_tool, bool last_in_layer); + ToolChangeResult tool_change(size_t new_tool); // Fill the unfilled space with a sparse infill. // Call this method only if layer_finished() is false. @@ -189,8 +202,6 @@ public: }; private: - WipeTower(); - enum wipe_shape // A fill-in direction { SHAPE_NORMAL = 1, |