Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/libslic3r/GCode/WipeTower.hpp')
-rw-r--r--src/libslic3r/GCode/WipeTower.hpp19
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,