FIX: show k value when select default pa profile

jira: STUDIO-8540
Change-Id: I487e740ee7c37e5d8d4c0d9b26984d034ed70347
This commit is contained in:
zhimin.zeng 2024-10-29 15:24:37 +08:00 committed by Lane.Wei
parent a0f63b9a3a
commit 21fa492d8a
5 changed files with 53 additions and 33 deletions

View File

@ -13,31 +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

@ -54,6 +54,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 {
@ -82,6 +84,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;
@ -853,9 +857,12 @@ void AMSLib::render_extra_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);
@ -3366,8 +3373,12 @@ void AMSControl::update_vams_kn_value(AmsTray tray, MachineObject* obj)
m_vams_info.material_name = tray.get_display_filament_type();
m_vams_info.material_colour = tray.get_color();
m_vams_info.cali_idx = tray.cali_idx;
m_vams_info.filament_id = tray.filament_setting_id;
m_vams_lib->m_info.material_name = tray.get_display_filament_type();
m_vams_lib->m_info.material_colour = tray.get_color();
m_vams_lib->m_info.cali_idx = tray.cali_idx;
m_vams_lib->m_info.filament_id = tray.filament_setting_id;
if (last_k_value != m_vams_info.k || last_n_value != m_vams_info.n) {
m_vams_lib->Refresh();
@ -3380,8 +3391,12 @@ void AMSControl::reset_vams()
m_vams_lib->m_info.n = 0;
m_vams_lib->m_info.material_name = wxEmptyString;
m_vams_lib->m_info.material_colour = AMS_CONTROL_WHITE_COLOUR;
m_vams_lib->m_info.cali_idx = -1;
m_vams_lib->m_info.filament_id = "";
m_vams_info.material_name = wxEmptyString;
m_vams_info.material_colour = AMS_CONTROL_WHITE_COLOUR;
m_vams_info.cali_idx = -1;
m_vams_info.filament_id = "";
m_vams_lib->Refresh();
}

View File

@ -142,20 +142,24 @@ 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;
bool operator==(const Caninfo &other) const
{
return can_id == other.can_id &&
material_name == other.material_name &&
material_colour == other.material_colour &&
return can_id == other.can_id &&
material_name == other.material_name &&
material_colour == other.material_colour &&
material_state == other.material_state &&
ctype == other.ctype &&
material_remain == other.material_remain &&
k == other.k &&
n == other.n &&
ctype == other.ctype &&
material_remain == other.material_remain &&
cali_idx == other.cali_idx &&
filament_id == other.filament_id &&
k == other.k &&
n == other.n &&
material_cols == other.material_cols;
}
};

View File

@ -30,6 +30,30 @@ static std::string MachineBedTypeString[6] = {
"pte"
};
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;
}
}
std::string get_calib_mode_name(CalibMode cali_mode, int stage)
{

View File

@ -74,5 +74,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);
}
}