FIX: show k value when select default pa profile

jira: STUDIO-8540
Change-Id: I1c92628fa888f935762d31968237e28d65594e51
This commit is contained in:
zhimin.zeng 2024-10-29 10:45:16 +08:00 committed by lane.wei
parent 60cdf3b655
commit 3f791574cd
4 changed files with 16 additions and 28 deletions

View File

@ -13,32 +13,6 @@ namespace Slic3r { namespace GUI {
wxDEFINE_EVENT(EVT_SELECTED_COLOR, wxCommandEvent);
static void get_default_k_n_value(const std::string& filament_id, float& k, float& n)
{
if (filament_id.compare("GFG00") == 0) {
// PETG
k = 0.04;
n = 1.0;
}
else if (filament_id.compare("GFB00") == 0 || filament_id.compare("GFB50") == 0) {
// ABS
k = 0.04;
n = 1.0;
} else if (filament_id.compare("GFU01") == 0) {
// TPU
k = 0.2;
n = 1.0;
} else if (filament_id.compare("GFB01") == 0) {
// ASA
k = 0.04;
n = 1.0;
} else {
// PLA , other
k = 0.02;
n = 1.0;
}
}
static std::string float_to_string_with_precision(float value, int precision = 3)
{
std::stringstream stream;

View File

@ -63,6 +63,8 @@ bool AMSinfo::parse_ams_info(MachineObject *obj, Ams *ams, bool remain_flag, boo
info.can_id = it->second->id;
info.ctype = it->second->ctype;
info.material_name = it->second->get_display_filament_type();
info.cali_idx = it->second->cali_idx;
info.filament_id = it->second->filament_setting_id;
if (!it->second->color.empty()) {
info.material_colour = AmsTray::decode_color(it->second->color);
} else {
@ -91,6 +93,8 @@ bool AMSinfo::parse_ams_info(MachineObject *obj, Ams *ams, bool remain_flag, boo
} else {
info.can_id = it->second->id;
info.material_name = "";
info.cali_idx = -1;
info.filament_id = "";
info.ctype = 0;
info.material_colour = AMS_TRAY_DEFAULT_COL;
info.material_state = AMSCanType::AMS_CAN_TYPE_THIRDBRAND;
@ -130,6 +134,8 @@ void AMSinfo::parse_ext_info(MachineObject* obj, AmsTray tray) {
if (tray.is_tray_info_ready()) {
info.ctype = tray.ctype;
info.material_name = tray.get_display_filament_type();
info.cali_idx = tray.cali_idx;
info.filament_id = tray.filament_setting_id;
if (!tray.color.empty()) {
info.material_colour = AmsTray::decode_color(tray.color);
}
@ -145,6 +151,8 @@ void AMSinfo::parse_ext_info(MachineObject* obj, AmsTray tray) {
}
else {
info.material_name = "";
info.cali_idx = -1;
info.filament_id = "";
info.ctype = 0;
info.material_colour = AMS_TRAY_DEFAULT_COL;
wxColour(255, 255, 255);
@ -1096,9 +1104,12 @@ void AMSLib::render_lite_text(wxDC& dc)
void AMSLib::render_generic_text(wxDC &dc)
{
bool show_k_value = true;
if (m_obj && (m_obj->cali_version >= 0) && (abs(m_info.k - 0) < 1e-3)) {
if (m_info.material_name.empty()) {
show_k_value = false;
}
else if (m_info.cali_idx == -1) {
get_default_k_n_value(m_info.filament_id, m_info.k, m_info.n);
}
auto tmp_lib_colour = m_info.material_colour;
change_the_opacity(tmp_lib_colour);

View File

@ -177,6 +177,8 @@ struct Caninfo
AMSCanType material_state;
int ctype=0;
int material_remain = 100;
int cali_idx = -1;
std::string filament_id;
float k = 0.0f;
float n = 0.0f;
std::vector<wxColour> material_cols;

View File

@ -79,6 +79,7 @@ private:
static void send_to_print(const CalibInfo &calib_info, wxString& error_message, int flow_ratio_mode = 0); // 0: none 1: coarse 2: fine
};
extern void get_default_k_n_value(const std::string &filament_id, float &k, float &n);
}