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

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsupermerill <merill@free.fr>2022-08-05 11:14:22 +0300
committersupermerill <merill@free.fr>2022-08-11 00:48:55 +0300
commitf2041cab5670c429a2586a90c9b22fdaf609bdc7 (patch)
tree59a93eaa8653ed7f9bd00605f29279dbd4ad86d8
parent291697b280b585b8b651e408d672a11f874101b1 (diff)
Fix wipe_tower_brim_width % values
by @Pavulon87 supermerill/SuperSlicer#3031
-rw-r--r--src/libslic3r/GCode/WipeTower.cpp5
-rw-r--r--src/libslic3r/GCode/WipeTower.hpp1
-rw-r--r--src/libslic3r/Print.cpp2
-rw-r--r--src/slic3r/GUI/GCodeViewer.cpp5
4 files changed, 6 insertions, 7 deletions
diff --git a/src/libslic3r/GCode/WipeTower.cpp b/src/libslic3r/GCode/WipeTower.cpp
index 815b419e8..2b08d8447 100644
--- a/src/libslic3r/GCode/WipeTower.cpp
+++ b/src/libslic3r/GCode/WipeTower.cpp
@@ -623,7 +623,6 @@ WipeTower::WipeTower(const PrintConfig& config, const PrintObjectConfig& default
m_wipe_tower_pos(config.wipe_tower_x, config.wipe_tower_y),
m_wipe_tower_width(float(config.wipe_tower_width)),
m_wipe_tower_rotation_angle(float(config.wipe_tower_rotation_angle)),
- m_wipe_tower_brim_width(float(config.wipe_tower_brim_width)),
m_y_shift(0.f),
m_z_pos(0.f),
m_bridging(float(config.wipe_tower_bridging)),
@@ -1408,9 +1407,9 @@ WipeTower::ToolChangeResult WipeTower::finish_layer()
(float)m_layer_height,
(m_current_tool < m_config->nozzle_diameter.values.size()) ? m_object_config->get_computed_value("filament_max_overlap", m_current_tool) : 1
);
- const coordf_t spacing = brim_flow.spacing();
+ const double spacing = brim_flow.spacing();
// How many perimeters shall the brim have?
- size_t loops_num = (m_wipe_tower_brim_width + spacing / 2) / spacing;
+ size_t loops_num = (m_config->wipe_tower_brim_width.get_abs_value(m_nozzle_diameter) + spacing / 2) / spacing;
writer.set_extrusion_flow(brim_flow.mm3_per_mm() / filament_area())
diff --git a/src/libslic3r/GCode/WipeTower.hpp b/src/libslic3r/GCode/WipeTower.hpp
index 632fce037..7171e32e1 100644
--- a/src/libslic3r/GCode/WipeTower.hpp
+++ b/src/libslic3r/GCode/WipeTower.hpp
@@ -269,7 +269,6 @@ private:
Vec2f m_wipe_tower_pos; // Left front corner of the wipe tower in mm.
float m_wipe_tower_width; // Width of the wipe tower.
float m_wipe_tower_depth = 0.f; // Depth of the wipe tower
- float m_wipe_tower_brim_width = 0.f; // Width of brim (mm) from config
float m_wipe_tower_brim_width_real = 0.f; // Width of brim (mm) after generation
float m_wipe_tower_rotation_angle = 0.f; // Wipe tower rotation angle in degrees (with respect to x axis)
float m_internal_rotation = 0.f;
diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp
index c405a61c7..8841750db 100644
--- a/src/libslic3r/Print.cpp
+++ b/src/libslic3r/Print.cpp
@@ -1477,7 +1477,7 @@ const WipeTowerData& Print::wipe_tower_data(size_t extruders_cnt, double nozzle_
const_cast<Print*>(this)->m_wipe_tower_data.brim_width = unscaled_brim_width;
}
- return m_wipe_tower_data;
+ return this->m_wipe_tower_data;
}
void Print::_make_wipe_tower()
diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp
index 61bc1b978..5f479236d 100644
--- a/src/slic3r/GUI/GCodeViewer.cpp
+++ b/src/slic3r/GUI/GCodeViewer.cpp
@@ -2224,8 +2224,9 @@ void GCodeViewer::load_shells(const Print& print, bool initialized)
const size_t extruders_count = config.nozzle_diameter.size();
if (extruders_count > 1 && config.wipe_tower && !config.complete_objects) {
//FIXME using first nozzle diameter instead of the "right" one.
- const float depth = print.wipe_tower_data(extruders_count, config.nozzle_diameter.values.front()).depth;
- const float brim_width = print.wipe_tower_data(extruders_count, config.nozzle_diameter.values.front()).brim_width;
+ const WipeTowerData& wipe_tower_data = print.wipe_tower_data(extruders_count, config.nozzle_diameter.values.front());
+ const float depth = wipe_tower_data.depth;
+ const float brim_width = wipe_tower_data.brim_width;
m_shells.volumes.load_wipe_tower_preview(1000, config.wipe_tower_x, config.wipe_tower_y, config.wipe_tower_width, depth, max_z, config.wipe_tower_rotation_angle,
!print.is_step_done(psWipeTower), brim_width, initialized);