diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index ca04b68322..f3181f2c06 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1374,7 +1374,7 @@ void Sidebar::load_ams_list(std::string const &device, std::mapsetting_id}); ams.set_key_value("filament_type", new ConfigOptionStrings{tray.second->type}); ams.set_key_value("tray_name", new ConfigOptionStrings{std::string(1, n) + std::string(1, t)}); - ams.set_key_value("filament_colour", new ConfigOptionStrings{"#" + tray.second->color.substr(0, 6)}); + ams.set_key_value("filament_colour", new ConfigOptionStrings{"#" + tray.second->color.substr(0, 8)}); filament_ams_list.emplace_back(std::move(ams)); } } diff --git a/src/slic3r/GUI/WipeTowerDialog.cpp b/src/slic3r/GUI/WipeTowerDialog.cpp index fbda4b407b..598d777846 100644 --- a/src/slic3r/GUI/WipeTowerDialog.cpp +++ b/src/slic3r/GUI/WipeTowerDialog.cpp @@ -493,8 +493,18 @@ static float calc_triangle_3rd_edge(float edge_a, float edge_b, float degree_ab) return std::sqrt(edge_a * edge_a + edge_b * edge_b - 2 * edge_a * edge_b * std::cos(to_radians(degree_ab))); } -int WipingPanel::calc_flushing_volume(const wxColour& from, const wxColour& to) +int WipingPanel::calc_flushing_volume(const wxColour& from_, const wxColour& to_) { + wxColour from = from_; + wxColour to = to_; + // BBS: Transparent materials are treated as white materials + if (from.Alpha() == 0) { + from.Set(255, 255, 255); + } + if (to.Alpha() == 0) { + to.Set(255, 255, 255); + } + float from_hsv_h, from_hsv_s, from_hsv_v; float to_hsv_h, to_hsv_s, to_hsv_v;