diff options
author | supermerill <merill@free.fr> | 2022-08-05 11:14:22 +0300 |
---|---|---|
committer | supermerill <merill@free.fr> | 2022-08-11 00:48:55 +0300 |
commit | f2041cab5670c429a2586a90c9b22fdaf609bdc7 (patch) | |
tree | 59a93eaa8653ed7f9bd00605f29279dbd4ad86d8 | |
parent | 291697b280b585b8b651e408d672a11f874101b1 (diff) |
Fix wipe_tower_brim_width % values
by @Pavulon87
supermerill/SuperSlicer#3031
-rw-r--r-- | src/libslic3r/GCode/WipeTower.cpp | 5 | ||||
-rw-r--r-- | src/libslic3r/GCode/WipeTower.hpp | 1 | ||||
-rw-r--r-- | src/libslic3r/Print.cpp | 2 | ||||
-rw-r--r-- | src/slic3r/GUI/GCodeViewer.cpp | 5 |
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); |